链路闪断毫秒感知:BFD 联动静态路由快速切换

两条运营商线互为主备,主链路的光口悄悄断了,路由器却半分钟才反应过来——静态路由靠路由协议的收敛计时感知故障,秒级到分钟级的黑洞窗口,对支付、ERP 这类业务就是一批超时工单。BFD(双向转发检测)是给链路装上的毫秒级心跳:两端设备间高速互发检测报文,链路一抖立刻报丧,联动静态路由立即切换。与此前写过的浮动路由(A2280)相比,BFD 解决的正是「主备怎么切得快」这后半程。

操作步骤

  1. 摸清适用面:静态路由本身不会检测对端是否可达,BFD 补的就是这一段——两端都支持 BFD 且中间链路能透传检测报文时才可用。直连链路是最典型场景,跨多层交换机的链路要确认中间设备不吞组播。为什么:BFD 的检测报文间隔是毫秒级,中间任何一跳不配合,检测就失真。

  2. 使能 BFD 会话:系统视图 bfd 全局使能,两端分别建会话:bfd <会话名> bind peer-ip <对端IP> source-ip <本端IP> auto,检测倍数与收发间隔按链路质量定(如 100ms 发送、3 倍检测)。为什么:间隔越紧感知越快,但对设备 CPU 与链路质量要求越高,官方默认值之外的参数要实测再定。

  3. 静态路由绑定 BFD:ip route-static <目的网段> <掩码> <下一跳> bfd enable,再把主用路由优先级调低 preference 值(数值小者优先),备用路由配更大的 preference。为什么:BFD 会话 down 等价于「下一跳不可达」,主路由立即从表中撤下,备用路由顶上——切换时间从分钟级压到毫秒级。

  4. 验证会话与路由表:display bfd session all 看 State 应为 Up;display ip routing-table 确认主路由在位。为什么:BFD 会话状态与路由表状态要分开看,会话 Up 不代表路由绑定成功。

  5. 故障演练:拔主链路光纤,观察 bfd session 翻 Down 的时间与路由表切换时间,从终端长 ping 记录丢包数;恢复链路验证回切。为什么:演练数据(切换毫秒数、丢包几个)是给业务方承诺的底气,也是参数调优的依据。

  6. 预案留档:主备两条链路的路由优先级、BFD 参数、演练记录写进交付文档,接手的人按图索骥。

三条边界先知道

  • 别把 BFD 间隔配成极限:毫秒级参数对老旧设备不友好,先查设备规格支持的检测能力,宁稳勿激。
  • 回切同样有窗口:主链路恢复瞬间 BFD 会话重建,回切抖动要纳入业务容忍度评估,必要时配延迟回切。
  • 与 VRRP 划界:VRRP(见前篇)解决的是网关层切换,BFD+静态路由解决的是路由层切换,两者可同时存在于一张网里,各管一段。

链路主备的价值不在「有备份」,而在「切得足够快、业务无感」。你的主备线路,上一次实测切换用了几秒?

企业存储选型参考|贵州诚鑫致达

做核心业务 SAN 存储与高可靠应用,群晖机型参考:UC3400 · UC3200 · SA3600。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。