BGP 基础与邻居89 条

BFD 与 BGP 联动

BFD 提供毫秒级链路检测并联动 BGP 会话撤换:比等 Hold Timer 超时快得多,是亚秒收敛的关键组件。

BGP 与广域网速查网络更新于 2026-10-13

BFD 与 BGP 联动的原理

BGP 默认靠 Hold Timer 判断邻居是否活着,典型的 90 秒 Hold 意味着链路中断后最长要等 3 倍 Keepalive 周期才会断会话。BFD(RFC 5880)用独立的双向探测报文在毫秒级发现链路或转发路径失效,并直接通知 BGP 断开该邻居,把失效检测时间从十几秒压到几百毫秒以内。

基本信息

探测周期min-tx-interval 与 min-rx-interval 协商,取双方较大值
判定条件连续丢失探测报文达到 multiplier 次数即宣告失效
联动配置Cisco 为邻居下 fall-over bfd,华为为 peer x bfd enable
方向性BFD 本身双向检测,两端都要启用并参数匹配
覆盖范围只保证邻居可用性,不替代 BGP 自身的路由收敛

典型使用场景

  • 数据中心与核心之间要求亚秒收敛,用 BFD 替代 Hold Timer 等待
  • 双上行链路做快速切换:主链路故障立即断会话,流量立刻走备用出口
  • 中间存在传输设备(光传输、以太环网)时,物理接口不掉但转发已断,BFD 能捕捉这类隐性故障
  • 配合 iBGP 与 RR 组网,缩短对等失效后的路由撤销时间
  • 验证链路质量时用 BFD 状态与抖动统计作为辅助证据

配置与查看

配置与查看
# Cisco:先定义探测参数,再在邻居下联动
interface GigabitEthernet0/1
 bfd interval 300 min_rx 300 multiplier 3
!
router bgp 65001
 neighbor 10.0.0.2 fall-over bfd
!
show bfd neighbors 10.0.0.2 details
# 关注 Up/Down、检测时间与丢包计数
!
# 华为:全局与接口参数,再按 peer 使能
# bfd
#  peer 10.0.0.2 bfd enable
# display bfd session all

参数与收敛时间

参数含义设置建议
min-tx-interval本端最小发送间隔两端一致或按链路能力设定
min-rx-interval本端能接受的最小接收间隔协商取较大值,实际以协商结果为准
multiplier允许连续丢失的探测报文数过小易误报,过大则收敛变慢
检测时间约等于协商间隔乘以倍数链路抖动多的链路适当放宽

收敛过程观察

收敛过程观察
show bfd neighbors 10.0.0.2 details
show ip bgp neighbors 10.0.0.2 | include BFD
#
# 触发切换时按时间顺序记录:
# 1) BFD 报 Down
# 2) BGP 邻居随之断开并撤销路由
# 3) 备用路径被选为最优并下发转发表
# 用日志时间戳量化实际中断时长
探测间隔设得过小时,链路轻微抖动就会触发邻居断开与重建,反而比不用 BFD 更不稳定。建议先在观测模式下记录抖动情况,再决定间隔与倍数,并对承载控制面的链路留出余量。

易错点

  • 只在一端启用 BFD:另一端没有 BFD 会话,联动不会生效,检测时间仍受 Hold Timer 支配
  • 两端参数不匹配:协商后按较大间隔运行,收敛时间与设计预期相差数倍
  • 间隔与倍数设置过激:链路瞬时不稳导致邻居频繁重建,前缀反复撤销重发
  • 把 BFD 当成完整收敛方案:邻居断开了,远端仍需要时间撤销并重新选路,端到端恢复时间取决于两者之和
  • 忽略中间设备的 BFD 支持情况:隧道或传输设备不透传探测报文时,BFD 会持续报 Down 造成会话无法稳定建立

数据来源与参考

  • RFC 5880: BFD
  • 厂商: BFD 与 BGP 联动指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌