适用场景
两条出口链路,但路由是「谁在前谁生效」,链路断了要等路由超时或人工切换 —— 这是最常见的出口隐患。做法是给主链路加 BFD 会话,链路故障时毫秒级感知并切换到备用路由。本文按真实现场配置讲清写法与验证。
配置步骤(BFD 与静态路由配置)
# 1) BFD 会话(本端 <-> 对端)
bfd to-core bind peer-ip 100.64.10.2 source-ip 100.64.10.1
discriminator local 300
discriminator remote 301
commit
# 2) 主路由绑定 BFD,备用路由给更大 preference
ip route-static 0.0.0.0 0.0.0.0 100.64.10.2 track bfd-session to-core
ip route-static 0.0.0.0 0.0.0.0 100.64.10.6 preference 70
# 3) 业务网段同样处理(只配默认路由会出问题)
ip route-static 10.20.40.0 255.255.255.0 100.64.10.2 track bfd-session to-core
ip route-static 10.20.40.0 255.255.255.0 100.64.10.6 preference 70
# 4) 查看与验证
display bfd session all
display ip routing-table 0.0.0.0
关键参数与建议
- BFD 会话:本端/对端鉴别符(discriminator)必须互指且不冲突,绑定源目 IP 与出接口
- 主备路由:主路由绑定 BFD(track bfd-session),备用路由给更高 preference(数值更大优先级更低)
- 多分支场景:每个分支链路独立 BFD 会话与路由,避免一断全断
- 回切策略:主链路恢复后是否自动回切要明确,避免来回抖动
- 联动范围:默认路由、业务网段路由都要覆盖,只配默认路由会出现「出得去回不来」
- 验证:真断链路一次,记录切换时间与丢包数,别只看 BFD 状态 Up
- 告警:BFD 状态变化要接入监控并触发通知
- 记录:会话编号、对端、备用路由 preference 写成表格便于交接
容易踩的坑
- 只给默认路由绑 BFD,业务网段静态路由没有冗余
- 两端 discriminator 配成相同值或没互指,会话起不来
- 备用路由 preference 反而更小,主备颠倒
- BFD 起了但对端设备不支持 BFD 联动,切换仍靠超时
- 没做真断线验证,实际切换要 40 秒
- 会话状态没有告警,断了没人知道
验证与巡检
display bfd session all
display ip routing-table 0.0.0.0 0.0.0.0
display ip routing-table 10.20.40.0
# 目标:BFD State Up、主路由 Active、备路由 Inactive;断开主链路后备路由 Active
- 巡检:BFD 会话状态、主备路由状态、切换演练记录(含耗时)、告警可达
小结
BFD 主备验收:人为断开主链路,业务在秒级内切到备用路径且无感知;主链路恢复后按预期回切;切换过程有记录可查。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。