BFD 双向转发检测基础
路由协议靠 Hello 报文感知邻居失效,动辄几十秒;链路直连中断但接口状态没有变化(例如经过传输设备的链路)时,接口 up/down 也发现不了。BFD 用来补这个短板:两端周期性互发检测报文,毫秒级发现转发路径故障,再联动静态路由或动态协议把流量切走。它不是路由协议,只负责快速说「这条路径不通了」。
基本信息
| 适用平台 | 三层设备(华为 VRP、思科 IOS、H3C Comware) |
|---|---|
| 三要素 | 发送间隔、接收间隔、检测倍数(常见默认倍数 3) |
| 华为模型 | 建命名会话并绑定 peer-ip,本地与远端标识符成对配置,最后 commit |
| 思科模型 | 接口下配 bfd interval 等参数,静态路由挂 bfd |
| H3C 模型 | 接口下配最小收发间隔与倍数,路由联动时指定 control-packet 等模式 |
| 联动对象 | 静态路由、OSPF 等动态协议 |
典型使用场景
- 传输链路验证:经过波分或传输设备的长链路,接口状态不随远端故障变化,需要 BFD 探测
- 静态路由快速切换:主备两条链路靠 BFD 联动实现毫秒级切换
- 动态协议加速:OSPF 等协议邻居失效时间从秒级缩短到毫秒级
- 双出口保护:出口专线中断时快速把流量切到备用出口
- 链路质量验证:通过调整检测间隔与倍数观察链路稳定性
华为 VRP
华为 VRP
[Huawei] bfd # 全局开启 BFD(部分版本需要)
[Huawei] bfd abc bind peer-ip 10.0.0.2 # 建立命名会话
[Huawei-bfd-session-abc] discriminator local 1 # 本端标识符
[Huawei-bfd-session-abc] discriminator remote 2 # 对端标识符(须与本端成对)
[Huawei-bfd-session-abc] commit # 提交后会话才生效
[Huawei] ip route-static 0.0.0.0 0.0.0.0 10.0.0.2 track bfd-session abc
<Huawei> display bfd session all # 查看会话状态与统计思科 IOS
思科 IOS
SW-CORE-01(config)# interface GigabitEthernet0/0
SW-CORE-01(config-if)# bfd interval 300 min_rx 300 multiplier 3
SW-CORE-01(config)# ip route 10.1.1.0 255.255.255.0 10.0.0.2
SW-CORE-01(config)# ip route static bfd GigabitEthernet0/0 10.0.0.2
SW-CORE-01# show bfd neighbors # 查看邻居与会话状态
SW-CORE-01# show bfd neighbors details # 详细参数与统计H3C Comware
H3C Comware
[H3C] bfd echo-source-ip 10.0.0.1 # 指定 echo 报文源地址
[H3C] interface GigabitEthernet 1/0/1
[H3C-GigabitEthernet1/0/1] bfd min-transmit-interval 300
[H3C-GigabitEthernet1/0/1] bfd min-receive-interval 300
[H3C-GigabitEthernet1/0/1] bfd detect-multiplier 3
[H3C] ip route-static 10.1.1.0 24 10.0.0.2 bfd control-packet
<H3C> display bfd session # 会话状态与参数参数含义与对照
| 参数 | 作用 | 注意 |
|---|---|---|
| 发送间隔 | 本端发送检测报文的时间间隔 | 过小会增加两端负担 |
| 接收间隔 | 本端期望的接收间隔 | 两端应基本对称 |
| 检测倍数 | 连续丢失多少个报文判定失效 | 常见 3,越小越敏感也越易误报 |
| 标识符(华为) | 会话双方的本地与远端标识 | 必须成对配置,否则会话建不起来 |
| 联动方式 | 路由指向 BFD 会话或指定模式 | 不联动的 BFD 只能看状态,不能切流量 |
BFD 建立的前提是两端参数可协商且标识配对正确(华为场景);只在一端配置参数、对端没有对应会话时,会发现「配置都在但没有会话」,此时应把两端配置一起核对。