视频加载失败

BFD技术详解

2144 字
11 分钟
BFD技术详解

BFD 技术详解#

一、BFD概述#

项目说明
协议全称Bidirectional Forwarding Detection(双向转发检测)
协议目的提供毫秒级链路/邻居故障检测机制
协议定位统一的高速检测机制,可与多种上层协议联动
核心价值替代传统协议慢速检测(OSPF Dead Timer 40s、BGP Hold Time 180s)
标准RFC 5880(基础)、RFC 5881(单跳IPv4/IPv6)、RFC 5883(多跳)

BFD本身不发现邻居,它需要通过与上层协议联动来建立会话。BFD在转发平面运行,不依赖控制平面状态,故障检测独立于路由协议收敛。

二、BFD会话类型 🏷️高频考点#

类型检测对象封装方式UDP端口应用场景
单跳BFD(Single-hop)直连链路/邻居IP/UDP封装,一跳可达3784OSPF邻居检测、直连BGP邻居、VRRP联动
多跳BFD(Multi-hop)非直连链路IP/UDP封装,路由可达4784IBGP邻居检测、跨设备链路检测
单臂回声BFD(Single-arm Echo)单跳链路单向检测Echo报文,本端发送对端环回3785对端不支持BFD、降低对端负担

2.1 单跳 vs 多跳对比#

对比项单跳BFD多跳BFD
检测范围直连(一跳)非直连(多跳可达)
TTL255不限制
端口37844784
典型应用OSPF/IS-IS邻居检测IBGP邻居检测
配置复杂度需指定源目IP

三、BFD会话建立方式 🏷️高频考点#

3.1 静态BFD与动态BFD对比#

对比项静态BFD动态BFD
创建方式手动配置BFD会话参数上层协议动态触发创建
优点灵活,不依赖协议自动创建,无需手动维护
缺点配置量大依赖协议支持BFD
适用场景静态路由、VRRP联动OSPF、BGP、IS-IS联动
标志位本地/远端discriminator手动指定discriminator自动协商

3.2 BFD会话状态机#

创建会话

收到对端BFD报文

收到对端状态为Init或Up的报文

收到对端状态为Up的报文

(可能跳过Init)

检测超时

(Detection Time内未收到报文)

检测超时

管理员shutdown

管理员undo shutdown

Down

Init

Up

AdminDown

创建会话

收到对端BFD报文

收到对端状态为Init或Up的报文

收到对端状态为Up的报文

(可能跳过Init)

检测超时

(Detection Time内未收到报文)

检测超时

管理员shutdown

管理员undo shutdown

Down

Init

Up

AdminDown

3.3 报文交互过程#

R1 R2
| |
|--- (State=Down) --------->| R1发送BFD控制报文,状态Down
|<-- (State=Down) ----------| R2回复BFD控制报文,状态Down
|--- (State=Init) --------->| R1收到R2报文,状态变为Init
|<-- (State=Up) ------------| R2收到R1 Init报文,状态变为Up
|--- (State=Up) ----------->| R1收到R2 Up报文,状态变为Up
| |
|==== BFD会话Up,开始检测 ====|

四、BFD检测参数 🏷️高频考点#

4.1 核心参数#

参数说明默认值可配范围
TX Interval本端发送BFD报文的最小间隔1000ms10-10000ms
RX Interval本端期望接收BFD报文的最小间隔1000ms10-10000ms
Detect Multiplier检测倍数33-50
Detection Time实际检测时间 = RX Interval × Detect Multiplier3000ms

4.2 参数协商机制#

双方协商时取较大值作为最终参数:

最终TX = max(本端TX, 对端RX)
最终RX = max(本端RX, 对端TX)

4.3 检测时间计算示例#

场景本端配置对端配置协商后实际检测时间
默认TX=1000, RX=1000, Multi=3TX=1000, RX=1000, Multi=3TX=1000, RX=10003000ms
快速检测TX=100, RX=100, Multi=3TX=100, RX=100, Multi=3TX=100, RX=100300ms
不对称TX=50, RX=100, Multi=3TX=200, RX=50, Multi=5TX=200, RX=100500ms

检测时间 = 协商后RX × min(本端Multi, 对端Multi)

五、BFD与各协议联动 🏷️高频考点#

联动协议检测对象联动效果关键配置
BFD for OSPFOSPF邻居邻居Down立即触发SPF重算,加速路由收敛ospf bfd enable
BFD for BGPBGP邻居BGP邻居Down立即撤销路由peer x.x.x.x bfd enable
BFD for VRRPVRRP Master上行链路上行故障时降低VRRP优先级,触发主备切换vrrp vrid track bfd-session
BFD for 静态路由下一跳可达性下一跳不可达时撤销静态路由ip route-static ... track bfd-session
BFD for IS-ISIS-IS邻居加速邻居故障检测和路由收敛isis bfd enable
BFD for MPLS LSPMPLS LSP连通性LSP故障时自动切换到备份LSPbfd for-lsp

5.1 对比未使用BFD的收敛时间#

协议无BFD故障检测时间有BFD故障检测时间加速倍数
OSPFDead Timer 40s可到300ms~133倍
BGPHold Time 180s可到300ms~600倍
VRRPMaster_Down_Interval ~3s可到300ms~10倍
静态路由无法自动检测可到300ms

六、BFD Echo功能 🏷️高频考点#

6.1 Echo模式原理#

R2 (对端)R1 (BFD本地)R2 (对端)R1 (BFD本地)Echo模式BFD Echo报文(UDP 目的端口3785)直接环回Echo报文(不经过BFD控制平面处理)Echo报文返回R1比较发送和接收报文判断链路状态
R2 (对端)R1 (BFD本地)R2 (对端)R1 (BFD本地)Echo模式BFD Echo报文(UDP 目的端口3785)直接环回Echo报文(不经过BFD控制平面处理)Echo报文返回R1比较发送和接收报文判断链路状态

6.2 Echo模式特点#

特性说明
优点对端不需要配置BFD,降低对端CPU负载
缺点只能检测单跳链路,无法检测多跳
检测方式本地发送Echo报文,对端在转发层面环回
端口UDP 3785
适用场景对端设备不支持BFD或需要降低对端性能开销

6.3 单臂回声(Single-arm Echo)#

单臂回声是Echo模式的一种特例,可用于检测单向链路故障。本端发送Echo报文,对端在数据平面环回,无需对端支持BFD协议。

七、华为设备配置命令示例#

7.1 静态BFD会话配置(单跳)#

Terminal window
# 全局使能BFD
bfd
# 创建单跳BFD会话(多用于VRRP/静态路由联动)
bfd vrrp bind peer-ip 10.1.1.2 interface GigabitEthernet0/0/1 source-ip 10.1.1.1
discriminator local 1
discriminator remote 2
min-tx-interval 100
min-rx-interval 100
detect-multiplier 3
commit

7.2 静态BFD会话配置(多跳)#

Terminal window
# 多跳BFD(用于IBGP等非直连场景)
bfd bgp bind peer-ip 10.10.10.2 source-ip 10.10.10.1
discriminator local 10
discriminator remote 20
min-tx-interval 200
min-rx-interval 200
detect-multiplier 3
commit

7.3 动态BFD配置#

Terminal window
# 全局使能BFD
bfd
# OSPF动态BFD(在OSPF进程下使能)
ospf 1
bfd all-interfaces enable
# 或在接口下使能
interface GigabitEthernet0/0/1
ospf bfd enable

7.4 BFD for OSPF联动配置#

Terminal window
# 方式一:OSPF进程下全局使能
ospf 1
bfd all-interfaces enable
bfd all-interfaces min-tx-interval 100 min-rx-interval 100 detect-multiplier 3
# 方式二:接口下单独使能
interface GigabitEthernet0/0/1
ospf bfd enable
ospf bfd min-tx-interval 100 min-rx-interval 100 detect-multiplier 3

7.5 BFD for BGP联动配置#

Terminal window
bgp 100
peer 10.1.1.2 as-number 100
peer 10.1.1.2 bfd enable
peer 10.1.1.2 bfd min-tx-interval 100 min-rx-interval 100 detect-multiplier 3

7.6 BFD for VRRP联动配置#

Terminal window
# 先创建BFD会话
bfd
bfd vrrp bind peer-ip 10.1.1.2 interface GigabitEthernet0/0/0 source-ip 10.1.1.1
discriminator local 1
discriminator remote 2
commit
# VRRP关联BFD
interface GigabitEthernet0/0/1
vrrp vrid 1 virtual-ip 192.168.1.254
vrrp vrid 1 priority 120
vrrp vrid 1 track bfd-session 1 reduced 40

7.7 BFD for 静态路由联动配置#

Terminal window
# 创建BFD会话
bfd
bfd st bind peer-ip 10.1.1.2 interface GigabitEthernet0/0/0 source-ip 10.1.1.1
discriminator local 1
discriminator remote 2
commit
# 静态路由关联BFD
ip route-static 192.168.2.0 255.255.255.0 10.1.1.2 track bfd-session 1

7.8 BFD Echo模式配置#

Terminal window
# 全局使能BFD Echo
bfd
bfd echo enable
# 接口下配置Echo
interface GigabitEthernet0/0/1
bfd echo-source-ip 10.1.1.1 # 指定Echo报文源IP
bfd min-echo-rx-interval 100 # Echo接收间隔

7.9 BFD参数配置(全局/接口)#

Terminal window
# 全局默认参数
bfd
default min-tx-interval 100
default min-rx-interval 100
default detect-multiplier 3
# 接口下调整BFD参数
interface GigabitEthernet0/0/1
ospf bfd min-tx-interval 50 min-rx-interval 50 detect-multiplier 4

八、常见故障排查#

8.1 故障排查流程#

不可达

可达

不正常

正常

BFD会话Down

对端IP可达?

检查路由/物理链路

BFD报文交互正常?

ACL/防火墙过滤?

放行UDP 3784/3785/4784

检查BFD参数匹配

上层协议关联正确?

检查协议BFD使能配置

检查协议状态

不可达

可达

不正常

正常

BFD会话Down

对端IP可达?

检查路由/物理链路

BFD报文交互正常?

ACL/防火墙过滤?

放行UDP 3784/3785/4784

检查BFD参数匹配

上层协议关联正确?

检查协议BFD使能配置

检查协议状态

8.2 常见问题与排查#

问题可能原因排查方法
BFD会话无法Up对端IP不可达ping 对端IP验证
UDP端口被过滤检查ACL/防火墙规则(端口3784/4784)
本地/远端discriminator不匹配display bfd session all verbose 查看协商状态
BFD参数不匹配检查TX/RX/Detect Multiplier配置
会话频繁震荡检测时间过小增大TX间隔或Detect Multiplier
网络质量不稳定检查链路丢包率、延迟抖动
CPU负载过高display cpu-usage,降低BFD检测频率
联动未生效上层协议BFD未使能OSPF:display ospf bfd session
BFD会话状态非Up先确保BFD会话Up再检查联动
关联的session名称错误检查VRRP track中引用的BFD会话名

8.3 常用排错命令#

Terminal window
display bfd session all # 查看所有BFD会话状态
display bfd session all verbose # 查看详细信息(含参数、统计)
display bfd session discriminator 1 verbose # 查看指定会话
display ospf bfd session all # 查看OSPF BFD会话
display bgp bfd session all # 查看BGP BFD会话
display bfd statistics # 查看BFD统计信息
reset bfd session all # 重置所有BFD会话

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏

评论区

Profile Image of the Author
zs13
Hello, I'm Zs13.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
22
分类
1
标签
46
总字数
64,717
运行时长
0
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.15.10
文章许可
CC BY-NC-SA 4.0