# BIRD 最小化 RTR 客户端配置

本目录提供最小化 BIRD 配置，用于与本仓库 RTR Server 做黑盒互通测试。

本仓库默认 RTR 监听地址：
- TCP: `0.0.0.0:323`
- SSH: `0.0.0.0:22`（仅在 server SSH 模式启用时）

## 文件说明

- `Dockerfile`: 构建最小 BIRD 运行镜像（包含 SSH transport 支持）。
- `bird.conf.example`: `/etc/bird/bird.conf` 的 TCP 示例。
- `bird.conf.ssh.example`: `/etc/bird/bird.conf` 的 SSH transport 示例。
- `entrypoint.sh`: 前台启动 BIRD，并周期输出协议快照。
- `docker-compose.yml`: TCP 一键启动。
- `docker-compose.ssh.yml`: SSH 覆盖配置。

容器默认每 30 秒向日志输出一次 RPKI 协议状态快照。

## Docker 快速启动（TCP）

在仓库根目录执行：

```bash
docker compose -f deploy/bird/docker-compose.yml up --build
```

另开终端查看日志：

```bash
docker logs -f bird-rpki-client
```

如果协议状态显示 `up`，说明 RTR 客户端链路正常。

后台模式：

```bash
docker compose -f deploy/bird/docker-compose.yml up -d --build
docker logs -f bird-rpki-client
```

停止：

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

## SSH 快速启动

先启动 server 的 SSH 模式：

```bash
docker compose -f deploy/server/docker-compose.ssh.yml up -d --build
```

再启动 BIRD SSH 客户端：

```bash
docker compose \
  -f deploy/bird/docker-compose.yml \
  -f deploy/bird/docker-compose.ssh.yml \
  up --build
```

查看日志：

```bash
docker logs -f bird-rpki-client
```

## 说明

- 当前 compose 使用 `network_mode: host`，默认通过 `host.docker.internal` 访问 server。
- 观测频率由环境变量控制：`OBSERVE_INTERVAL`（秒，默认 `30`）和 `OBSERVE_PROTO`。
- SSH 模式会将 `../../certs` 挂载到容器 `/config/ssh`，并使用：
  `bird-rtr-client.pem`、`ssh_host_rsa_key.pub`。
- 入口脚本会基于 `/config/ssh/ssh_host_rsa_key.pub` 自动生成
  `/run/bird/known_hosts`，用于 BIRD 的 SSH 主机密钥校验。
- 如果你运行在 Docker Desktop（非 Linux 原生 host network 场景），建议改为自定义 bridge 网络并将 `remote` 地址改成可达的 server 容器名或宿主机地址。
