4.7 KiB
4.7 KiB
Deploy Layout
deploy/ 目录按角色拆分为四套部署与测试入口:
server/: 本仓库 RTR Server(src/main.rs)容器化部署client/: 本仓库rtr_debug_client容器化部署rpki-rs-client/: 基于外部rpki-rsclient API 的测试客户端容器化部署frr/: FRR 作为黑盒 RTR Client 的配置与 compose
1) Server
路径:
deploy/server/Dockerfiledeploy/server/docker-compose.ymldeploy/server/DEPLOYMENT.md
单独 build 镜像:
docker build -f deploy/server/Dockerfile -t rpki-rtr:latest .
启动:
docker compose -f deploy/server/docker-compose.yml up -d --build
停止:
docker compose -f deploy/server/docker-compose.yml down
日志:
docker compose -f deploy/server/docker-compose.yml logs -f rpki-rtr
报告文件:
report/rtr-source-*.json:CCR/SLURM source、fingerprint、refresh 状态、数据质量、cache snapshot/delta 统计。report/rtr-clients-*.json:client 连接数和连接方式统计,启动时和连接变化时写入。report/rtr-runtime-*.json:进程 RSS、服务状态、当前生效 runtime configuration,启动时和周期性写入。
Admin config 接口默认关闭。需要运行中动态修改 max_delta、delta 裁剪策略、refresh/report interval、timezone 或 RTR timing 时,设置:
RPKI_RTR_ADMIN_ADDR=127.0.0.1:8323
RPKI_RTR_ADMIN_TOKEN=change-me
调用示例:
curl -X POST http://127.0.0.1:8323/admin/rtr/config \
-H "Content-Type: application/json" \
-H "Authorization: Bearer change-me" \
-d '{"max_delta": 6, "prune_delta_by_snapshot_size": true}'
完整 API 说明见 docs/rtr-admin-api.md,更完整的 server 配置见 deploy/server/DEPLOYMENT.md。
2) Debug Client
路径:
deploy/client/Dockerfiledeploy/client/docker-compose.ymldeploy/client/docker-compose.clients.yml
单独 build 镜像:
docker build -f deploy/client/Dockerfile -t rpki-rtr-debug-client:latest .
单实例启动(交互调试):
docker compose -f deploy/client/docker-compose.yml up --build
单实例停止:
docker compose -f deploy/client/docker-compose.yml down
单实例日志:
docker compose -f deploy/client/docker-compose.yml logs -f rtr-debug-client
多实例启动(5 个并发 client):
docker compose -f deploy/client/docker-compose.clients.yml up -d
多实例停止:
docker compose -f deploy/client/docker-compose.clients.yml down
多实例日志:
docker compose -f deploy/client/docker-compose.clients.yml logs -f
3) rpki-rs Client
路径:
deploy/rpki-rs-client/Dockerfiledeploy/rpki-rs-client/docker-compose.yml
单独 build 镜像:
docker build -f deploy/rpki-rs-client/Dockerfile -t rpki-rs-test-client:latest .
默认启动(自动 serial 测试):
docker compose -f deploy/rpki-rs-client/docker-compose.yml up --build
覆盖默认参数运行:
docker compose -f deploy/rpki-rs-client/docker-compose.yml run --rm \
rpki-rs-test-client 127.0.0.1:323 2 reset --steps 1 --assert-min-records 1
停止:
docker compose -f deploy/rpki-rs-client/docker-compose.yml down
日志:
docker compose -f deploy/rpki-rs-client/docker-compose.yml logs -f rpki-rs-test-client
4) FRR Client
路径:
deploy/frr/docker-compose.ymldeploy/frr/daemons.exampledeploy/frr/frr.conf.exampledeploy/frr/README.mddeploy/frr/README.zh.md
启动:
docker compose -f deploy/frr/docker-compose.yml up -d
检查连接:
docker exec -it frr-rpki-client vtysh -c "show rpki cache-connection"
docker exec -it frr-rpki-client vtysh -c "show rpki prefix-table"
停止:
docker compose -f deploy/frr/docker-compose.yml down
日志:
docker compose -f deploy/frr/docker-compose.yml logs -f frr-rpki-client
5) BIRD Client
路径:
deploy/bird/Dockerfiledeploy/bird/docker-compose.ymldeploy/bird/docker-compose.tls.ymldeploy/bird/bird.conf.exampledeploy/bird/bird.conf.tls.exampledeploy/bird/README.mddeploy/bird/README.zh.md
启动:
docker compose -f deploy/bird/docker-compose.yml up --build
观察活动:
docker logs -f bird-rpki-client
停止:
docker compose -f deploy/bird/docker-compose.yml down
日志:
docker compose -f deploy/bird/docker-compose.yml logs -f bird-rpki-client
TLS/mTLS:
docker compose -f deploy/bird/docker-compose.yml -f deploy/bird/docker-compose.tls.yml up --build
docker logs -f bird-rpki-client