# FRR 最小化 RTR 客户端配置

本目录提供一个 FRR 最小配置，用于和本仓库 RTR Server 做黑盒互通测试。

本仓库默认 RTR 监听地址：
- TCP：`0.0.0.0:323`
- TLS：`0.0.0.0:324`

参考实现：
- `src/main.rs`

## 文件说明

- `daemons.example`：示例 `/etc/frr/daemons`
- `frr.conf.example`：示例 `/etc/frr/frr.conf`

## 在 FRR 主机上应用

1. 复制 `daemons.example` 到 `/etc/frr/daemons`
2. 复制 `frr.conf.example` 到 `/etc/frr/frr.conf`
3. 重启 FRR：

```bash
sudo systemctl restart frr
```

## 验证命令

```bash
vtysh -c "show rpki configuration"
vtysh -c "show rpki cache-server"
vtysh -c "show rpki cache-connection"
vtysh -c "show rpki prefix-table"
```

当 `show rpki cache-connection` 显示已连接，且 `show rpki prefix-table` 出现 VRP 时，说明 RTR 客户端链路工作正常。

## Docker 快速启动

在仓库根目录执行：

```bash
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"
```

停止：

```bash
docker compose -f deploy/frr/docker-compose.yml down
```

## 可测试范围

- FRR 作为 RTR Client 与本仓库 Server 的 TCP 建链能力
- FRR 侧基础会话状态可见性（`cache-server` / `cache-connection`）
- VRP 下发与导入是否成功（`prefix-table` 是否有条目）
- 基于服务端数据变化触发的前缀表更新（可通过替换 `data` 后观察）
- 黑盒互通回归：用于确认“路由器客户端视角”功能可用

## 不覆盖范围

- 不替代协议级单元测试/集成测试（PDU 细节、异常路径、边界条件）
- 不替代 `src/bin/rtr_debug_client` 的逐报文调试能力
- 默认示例以 TCP 为主，TLS/mTLS 需按你的证书与 FRR 配置单独扩展

## 说明

- 当前示例主要针对 RTR over TCP（`rpki cache tcp`）
- `network_mode: host` 模式下，容器内访问 `127.0.0.1:323` 指向 Docker Host，请确保本机 RTR Server 可达
