97 lines
3.0 KiB
Bash
97 lines
3.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
|
|
PRECHECK_WORK_DIR="${PRECHECK_WORK_DIR:-${ROOT_DIR}/.precheck}"
|
|
PRECHECK_PROJECT="${PRECHECK_PROJECT:-rpki-precheck}"
|
|
PRECHECK_ADMIN_TOKEN="${PRECHECK_ADMIN_TOKEN:-rpki-precheck-token}"
|
|
PRECHECK_PROTOCOL_VERSION="${PRECHECK_PROTOCOL_VERSION:-2}"
|
|
PRECHECK_SERVER_IMAGE="${PRECHECK_SERVER_IMAGE:-${RPKI_RTR_SERVER_IMAGE:-rpki-rtr-arm64:v1.2}}"
|
|
PRECHECK_CLIENT_IMAGE="${PRECHECK_CLIENT_IMAGE:-${RPKI_RTR_CLIENT_IMAGE:-rpki-rtr-debug-client-arm64:v1.2}}"
|
|
|
|
log() {
|
|
printf '[00_1_pre_check_prepare] %s\n' "$*"
|
|
}
|
|
|
|
die() {
|
|
printf '[00_1_pre_check_prepare] ERROR: %s\n' "$*" >&2
|
|
exit 1
|
|
}
|
|
|
|
abs_dir() {
|
|
local path="$1"
|
|
mkdir -p "${path}"
|
|
cd "${path}" && pwd -P
|
|
}
|
|
|
|
[ -f "${SCRIPT_DIR}/00_2_generate_ccr.sh" ] || die "missing ${SCRIPT_DIR}/00_2_generate_ccr.sh"
|
|
|
|
rm -rf "${PRECHECK_WORK_DIR}"
|
|
mkdir -p \
|
|
"${PRECHECK_WORK_DIR}/ccr" \
|
|
"${PRECHECK_WORK_DIR}/slurm" \
|
|
"${PRECHECK_WORK_DIR}/db" \
|
|
"${PRECHECK_WORK_DIR}/logs/server" \
|
|
"${PRECHECK_WORK_DIR}/logs/client" \
|
|
"${PRECHECK_WORK_DIR}/report"
|
|
|
|
bash "${SCRIPT_DIR}/00_2_generate_ccr.sh" \
|
|
"${PRECHECK_WORK_DIR}/ccr/20260403T000201Z-precheck.ccr"
|
|
|
|
cat >"${PRECHECK_WORK_DIR}/slurm/precheck.slurm" <<'EOF'
|
|
{
|
|
"slurmVersion": 2,
|
|
"validationOutputFilters": {
|
|
"prefixFilters": [],
|
|
"bgpsecFilters": [],
|
|
"aspaFilters": []
|
|
},
|
|
"locallyAddedAssertions": {
|
|
"prefixAssertions": [
|
|
{
|
|
"prefix": "203.0.113.0/24",
|
|
"maxPrefixLength": 24,
|
|
"asn": 64496,
|
|
"comment": "pre-check local assertion"
|
|
}
|
|
],
|
|
"bgpsecAssertions": [],
|
|
"aspaAssertions": []
|
|
}
|
|
}
|
|
EOF
|
|
|
|
PRECHECK_WORK_DIR_ABS="$(abs_dir "${PRECHECK_WORK_DIR}")"
|
|
cat >"${PRECHECK_WORK_DIR}/precheck.env" <<EOF
|
|
PRECHECK_WORK_DIR=${PRECHECK_WORK_DIR_ABS}
|
|
PRECHECK_PROJECT=${PRECHECK_PROJECT}
|
|
RPKI_RTR_SERVER_IMAGE=${PRECHECK_SERVER_IMAGE}
|
|
RPKI_RTR_CLIENT_IMAGE=${PRECHECK_CLIENT_IMAGE}
|
|
PRECHECK_SERVER_COMPOSE_FILE=${ROOT_DIR}/deploy/server/docker-compose.tcp.yml
|
|
PRECHECK_CLIENT_COMPOSE_FILE=${ROOT_DIR}/deploy/client/docker-compose.tcp.yml
|
|
RPKI_RTR_CCR_HOST_DIR=${PRECHECK_WORK_DIR_ABS}/ccr
|
|
RPKI_RTR_SLURM_HOST_DIR=${PRECHECK_WORK_DIR_ABS}/slurm
|
|
RPKI_RTR_DB_HOST_DIR=${PRECHECK_WORK_DIR_ABS}/db
|
|
RPKI_RTR_LOG_HOST_DIR=${PRECHECK_WORK_DIR_ABS}/logs/server
|
|
RPKI_RTR_CLIENT_LOG_HOST_DIR=${PRECHECK_WORK_DIR_ABS}/logs/client
|
|
RPKI_RTR_REPORT_HOST_DIR=${PRECHECK_WORK_DIR_ABS}/report
|
|
RPKI_RTR_CCR_DIR=/app/data
|
|
RPKI_RTR_SLURM_DIR=/app/slurm
|
|
RPKI_RTR_DB_PATH=/app/rtr-db
|
|
RPKI_RTR_REPORT_DIR=/app/report
|
|
RPKI_RTR_ADMIN_ADDR=0.0.0.0:8323
|
|
RPKI_RTR_ADMIN_TOKEN=${PRECHECK_ADMIN_TOKEN}
|
|
RPKI_RTR_RUNTIME_REPORT_INTERVAL_SECS=5
|
|
RPKI_RTR_REPORT_HISTORY_LIMIT=3
|
|
RPKI_RTR_TIMEZONE=Asia/Shanghai
|
|
RPKI_RTR_SOURCE_REFRESH_INTERVAL_SECS=30
|
|
RPKI_RTR_MAX_DELTA=10
|
|
RPKI_RTR_MAX_CONNECTIONS=32
|
|
RPKI_RTR_MAX_CONCURRENT_HANDSHAKES=8
|
|
RPKI_RTR_TCP_SERVER_ADDR=rpki-rtr:323
|
|
RPKI_RTR_PROTOCOL_VERSION=${PRECHECK_PROTOCOL_VERSION}
|
|
RUST_LOG=info
|
|
EOF
|