双向转发检测(BFD, Bidirectional Forwarding Detection)是一种轻量级、快速的通用故障检测机制,可在毫秒级(通常 10–50ms)内感知链路或邻居故障。在华为 VRP5 平台中,BFD 可与 OSPF、VRRP 等协议联动,显著提升网络收敛速度,避免因协议默认定时器过长(如 OSPF Dead=40s)导致的业务中断。
1. BFD 基本原理
1.1 工作模式
1.2 关键参数(VRP5 默认值)
故障检测时间 ≈ Detect Multiplier × Max(本地Tx, 对端Rx) 示例:双方均设为 100ms + 倍数 3 → 故障检测时间 ≈ 300ms
1.3 BFD 会话类型
静态 BFD:手动指定对端 IP,适用于点对点链路
动态 BFD:由上层协议(如 OSPF)自动协商建立(推荐)
2. BFD 联动 OSPF 配置
2.1 配置步骤(动态 BFD)
全局启用 BFD
在 OSPF 进程下启用 BFD
(可选)在接口调整 BFD 参数
2.2 配置示例
R1 与 R2 通过 GE0/0/0 互联,运行 OSPF Area 0
R1 配置
# 步骤1:全局启用 BFD(部分老版本需此命令)
[R1] bfd
[R1-bfd] quit
# 步骤2:在 OSPF 中启用 BFD
[R1] ospf 1
[R1-ospf-1] bfd all-interfaces enable
[R1-ospf-1] quit
# 步骤3:(可选)在接口设置快速检测参数
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ospf bfd enable
[R1-GigabitEthernet0/0/0] ospf bfd min-tx-interval 100
[R1-GigabitEthernet0/0/0] ospf bfd min-rx-interval 100
[R1-GigabitEthernet0/0/0] ospf bfd detect-multiplier 3
[R1-GigabitEthernet0/0/0] quitR2 配置(类似)
[R2] ospf 1
[R2-ospf-1] bfd all-interfaces enable
[R2-ospf-1] quit
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] ospf bfd enable
[R2-GigabitEthernet0/0/0] ospf bfd min-tx-interval 100
[R2-GigabitEthernet0/0/0] ospf bfd min-rx-interval 100
[R2-GigabitEthernet0/0/0] ospf bfd detect-multiplier 3
[R2-GigabitEthernet0/0/0] quit说明:
bfd all-interfaces enable表示在所有 OSPF 接口启用 BFD若仅需特定接口,可省略此命令,在接口下单独启用
2.3 验证命令
[R1] display bfd session all # 查看 BFD 会话状态
[R1] display ospf brief # 查看 OSPF 是否启用 BFD典型 BFD 会话输出:
Local Remote State Type Tx/Rx Multiplier
10.1.1.1 10.1.1.2 Up Auto 100/100 3State = Up 表示 BFD 会话正常
Type = Auto 表示由 OSPF 动态创建
3. BFD 联动 VRRP 配置
3.1 应用场景
当 Master 路由器上行链路故障,但 VRRP 监视接口仍 UP 时,传统 track 机制无法触发切换
通过 BFD 检测上行设备(如 ISP 路由器)可达性,实现更精准的故障感知
3.2 配置步骤(静态 BFD + VRRP track)
创建静态 BFD 会话,检测上行设备
配置 VRRP track BFD 会话,故障时降低优先级
3.3 配置示例
拓扑
R1(VRRP Master)上行连接 ISP 路由器(IP: 203.0.113.1)
通过 BFD 检测 R1 到 203.0.113.1 的连通性
R1 配置
# 步骤1:创建静态 BFD 会话
[R1] bfd ISP_BFD bind peer-ip 203.0.113.1 interface GigabitEthernet0/0/1
[R1-bfd-session-ISP_BFD] discriminator local 10
[R1-bfd-session-ISP_BFD] discriminator remote 20
[R1-bfd-session-ISP_BFD] min-tx-interval 100
[R1-bfd-session-ISP_BFD] min-rx-interval 100
[R1-bfd-session-ISP_BFD] commit
[R1-bfd-session-ISP_BFD] quit
# 步骤2:VRRP track BFD 会话
[R1] interface GigabitEthernet0/0/0 # 内网接口
[R1-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[R1-GigabitEthernet0/0/0] vrrp vrid 1 priority 120
[R1-GigabitEthernet0/0/0] vrrp vrid 1 track bfd-session 10 reduced 30
[R1-GigabitEthernet0/0/0] quit关键参数说明:
discriminator local 10:本地标识符(必须唯一)
track bfd-session 10:关联本地 BFD 会话 ID(即 discriminator local)当 BFD 会话 Down 时,VRRP 优先级从 120 → 90(120–30)
ISP 路由器配置(若可控)
[ISP] bfd R1_BFD bind peer-ip 192.168.100.1 # R1 上行 IP
[ISP-bfd-session-R1_BFD] discriminator local 20
[ISP-bfd-session-R1_BFD] discriminator remote 10
[ISP-bfd-session-R1_BFD] commit注意:若 ISP 设备不可控,可仅在 R1 配置单臂 BFD(部分型号支持),但可靠性较低。
3.4 验证命令
[R1] display bfd session all
[R1] display vrrp当 BFD 会话 Down 时,display vrrp 应显示:
PriorityRun : 90 # 已降低4. 注意事项
BFD 与上层协议解耦
BFD 仅负责故障检测,不执行任何路由动作
动作由 OSPF/VRRP 根据 BFD 状态触发
参数一致性
两端 BFD 参数无需完全一致,但需满足:
本端 Rx ≥ 对端 Tx且本端 Tx ≤ 对端 Rx否则会话可能无法 Up
CPU 负载
毫秒级 BFD 会增加 CPU 开销
建议在核心设备使用 ≥200ms 间隔,接入层可更低
单跳 vs 多跳
VRP5 默认 BFD 为 单跳(Single-hop),使用组播(TTL=1)
多跳 BFD(Multi-hop)需显式配置(本文未涉及)
OSPF BFD 自动协商
动态 BFD 由 OSPF Hello 报文携带能力协商建立,无需手动创建会话
5. 故障排查要点
最佳实践:
OSPF 场景优先使用 动态 BFD(自动管理)
VRRP 上行检测使用 静态 BFD(目标明确)
BFD 间隔建议:核心 200–300ms,接入 50–100ms
所有 BFD 配置后必须通过
display bfd session all验证状态
通过 BFD 与 OSPF/VRRP 联动,可将网络故障收敛时间从秒级缩短至毫秒级,极大提升业务连续性与用户体验。