隧道上跑 BGP 是什么
IPsec 隧道默认只管「通不通」,两端各自写静态路由指对方网段;当网段多、子网频繁新增、或者同时存在多条隧道时,手工维护静态路由会变成负担。在隧道之上再跑 BGP,把两端变成邻居动态交换路由:新增子网自动同步、链路故障快速收敛、还能用 BGP 属性做主备选路。代价是引入了动态路由的治理复杂度,过滤和优先级必须有明确责任人。
基本信息
| 前提 | 隧道已连通,两端约定 ASN(可用私有 ASN 64512-65534) |
|---|---|
| 邻居关系 | 在网关或路由器上配置邻居地址与对端 AS(eBGP 两端 ASN 必须不同) |
| 互联地址 | 常用链路本地风格的地址段,需与业务网段错开 |
| 检测收敛 | 配合 BFD 或缩短 BGP 计时器降低切换时间 |
| 路由治理 | 用前缀列表与路由策略控制接收与发布范围 |
| 收益 | 网段变更自动同步,故障快速收敛,多线可做主备或负载 |
典型使用场景
- IDC 与云上子网数量多,静态路由表维护成本过高
- 双隧道主备:用 BGP 属性控制流量走向,故障时自动切换
- 云上与本地同时增加新网段,需要自动同步而非逐台改配置
- 多条专线与 VPN 混合组网,希望用同一套路由策略统一调度
- 迁移过渡期:新旧网段并行发布,按需收回
静态路由与 BGP 的选择
| 维度 | 静态路由 | BGP 动态路由 |
|---|---|---|
| 网段规模 | 少量固定网段最省事 | 几十条以上明显更省心 |
| 变更响应 | 手工逐端修改,易漏 | 宣告后自动同步 |
| 故障收敛 | 依赖健康检查或人工切换 | 邻居失效后自动收敛 |
| 风险点 | 配置遗漏导致黑洞 | 误配过滤不当会把错误路由扩散 |
| 排障难度 | 直观 | 需要看邻居状态与路由表 |
设备侧邻居(示意)与云端验证
设备侧邻居(示意)与云端验证
# 设备侧(思科风格,示意)
router bgp 65001
neighbor 169.254.10.2 remote-as 65002
address-family ipv4 unicast
network 192.168.10.0 mask 255.255.255.0
# 云端侧:确认隧道的 BGP 已启用、观察学习到的路由条目
# aliyun vpc DescribeVpnConnections(参数名以当版文档为准)邻居起不来时的排查
邻居起不来时的排查
ping -c 3 169.254.10.2 # 隧道内互联地址是否可达
tcpdump -ni any port 179 | head # BGP 建连报文是否发出/收到
# 常见方向:ASN 冲突、监听地址不对、179 被策略拦截
# 设备侧看邻居与路由:show bgp summary、show ip bgp neighbor引入动态路由后,路由过滤与优先级成为主要风险点:谁负责汇总、谁负责过滤、默认路由由哪侧发布,都要在上线前写清并留档。一次误配可以把错误路由扩散到整条链路。
两端的 ASN、邻居地址、BFD 参数、计时器都要成对约定并记录在案;变更时先改测试环境,再按「先备后主」顺序在生产执行。