适用场景

两条出口链路,但路由是「谁在前谁生效」,链路断了要等路由超时或人工切换 —— 这是最常见的出口隐患。做法是给主链路加 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 主备验收:人为断开主链路,业务在秒级内切到备用路径且无感知;主链路恢复后按预期回切;切换过程有记录可查。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。