BFD 与快速故障切换是什么
BFD(双向转发检测)用高频、轻量的探测报文在两端之间持续心跳,一旦在约定时间内收不到报文就判定链路失效,并通知 BGP 立即撤销邻居,从而把收敛时间从默认的几十秒压到毫秒级。它解决的是「链路坏了但路由不知道」的问题。代价是灵敏度与稳定性需要权衡:检测过于激进时,链路短暂抖动就会触发切换,反而制造了不稳定。
基本信息
| 作用 | 毫秒级探测,缩短路由收敛时间 |
|---|---|
| 配合协议 | 与 BGP 联动做快速切换(按产品支持情况) |
| 关键参数 | 探测间隔与乘法系数,检测时间约等于间隔乘以倍数 |
| 参数取舍 | 越灵敏越容易误判抖动,越保守收敛越慢 |
| 前提条件 | 两端都支持并开启,参数需可匹配 |
| 前置规划 | 备用链路必须能承载切换后的流量 |
典型使用场景
- 双专线主备:故障时希望秒级内完成切换
- 专线质量劣化(丢包、时延突增)需要被快速感知
- 金融类业务对中断时间有明确上限
- 多线路负载分担,需要快速摘除失效路径
- 与 BGP 配合缩短收敛时间,替代仅靠 Hold 计时器的方案
参数与效果对照
| 参数取向 | 检测速度 | 风险 |
|---|---|---|
| 激进 | 毫秒级 | 链路抖动触发频繁切换,路由震荡 |
| 均衡 | 百毫秒到秒级 | 兼顾感知速度与稳定性,多数场景适用 |
| 保守 | 数秒以上 | 接近普通 BGP 收敛,收益有限 |
| 未开启 | 依赖协议默认超时 | 故障感知慢,业务中断时间长 |
BFD 参数示意(设备侧)
BFD 参数示意(设备侧)
# 设备侧示意,语法以厂商文档为准
bfd interval 300 min_rx 300 multiplier 3
# 检测时间约为 间隔 × 倍数(此处约 900ms)
# 与 BGP 联动:邻居失效后立即撤销该路径的路由
# 验证:show bfd neighbors / display bfd session all
# 演练:断开主链路,观察路由切换与实际业务恢复时间只开快速检测不检查备用线路状态,切换可能把问题从一条链路转移到另一条:备用链路要先验证可用、容量足够,并在演练中确认切换后业务指标可接受。
BFD 依赖两端参数匹配:一端激进、一端保守时,实际检测时间由更保守的一侧决定。上线前把参数写进变更文档,避免后续调参时两边越改越不一致。