背景
当前检测链路有硬件检测,报文检测,动态路由自收敛等,但大部分只能做到秒级而BFD可以做到毫秒级,薄纱大部分检测手段。
BFD(Bidirectional Forwarding Detection双向转发检测协议)是一种基于UDP47843,全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
对于不同模式,目的端口有所差异
Echo报文方式的BFD会话
目的端口号:37852
控制报文方式的BFD会话
单跳检测:37842
多跳检测:47843
原理
BFD在两台网络设备之间建立一个用于检测网络设备间的双向转发路径的回话。并周期性地发送BFD报文,检测链路的连通性。如果在检测时间内没有收到BFD报文,BFD会认为该双向转发路径发生了故障,并通知被服务的上层应用进行相应的处理。
报文
Sta:BFD本地状态
Detect Mult:检测超时倍数
My Discriminator:BFD会话本地标识符(Local Discriminator)
Your Discriminator:BFD会话远端标识符(Remote Discriminator) Desired Min TX Interval:本地支持的最小BFD报文发送间隔
Required Min RX Interval:本地支持的最小BFD报文接收间隔
Required Min Echo RX Interval:本地支持的最小Echo报文接收间隔,单位为微秒(本地
状态机
Down、Init、Up和AdminDown
建立会话
init和up两个用来建立会话,down用来断开会话。
检测模式
异步模式,查询模式,单点回声
异步模式
系统之间相互周期性地发送BFD控制包,如果某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣布会话为Down(能收到你的就是你活着)
查询模式
在需要验证连接性的情况下,系统连续发送多个BFD控制包,如果在检测时间内没有收到返回的报文就宣布会话为Down
(我发我的,我检测我的,你发你的,你检测你的)
回声模式
用于对端不支持的场景,支持BFD功能的设备主动发起回声请求功能,不支持BFD功能的设备接收到该报文后直接将其环回,从而实现转发链路的连通性检测功能。(我能发我能收,就是你还活着)
不支持Echo功能,置0)
计算
本地TX=max(本地TX,远端RX)
本地RX=max(本地RX,远端TX)
检测时间
异步模式 本地RX*远端Mult
查询模式 本地RX*本端Mult
实验
浮动静态路由
实验拓扑
实验要求
pc2与pc1互通,且当与交换机相连的链路故障时,能回切到下端链路
配置
实验步骤
1.配置接口ip
由于AR201只有两个路由口,确保数量足够要加接口板(断电下操作)
R1
sys
sys R1
int g2/0/0
ip add 192.168.1.254 24
int g0/0/0
ip add 10.10.12.1 24
int g0/0/1
ip add 10.10.13.1 24
R3
sys
sys R3
int g0/0/1
ip add 10.10.23.3 24
int g0/0/0
ip add 10.10.13.3 24
R2
sys
sys R2
int g2/0/0
ip add 192.168.2.254 24
int g0/0/0
ip add 10.10.12.2 24
int g0/0/1
ip add 10.10.23.2 24
2.配置BFD
R1
bfd//激活功能
quit
bfd 1 bind peer 10.10.12.2 int g0/0/0
discriminator local 10
discriminator remote 20
commit//易忘配置
R2
bfd
quit
bfd 1 bind peer 10.10.12.1 int g0/0/0
discriminator local 20
discriminator remote 10
commit
3.配置静态路由
R1
ip route-static 192.168.2.0 24 10.10.12.2 track bfd-session 1//联动·BFD
ip route-static 192.168.2.0 24 10.10.13.3 preference 100//BFD正常不显示作为备份
R2
ip route-static 192.168.1.0 24 10.10.12.1 track bfd-session 1
ip route-static 192.168.1.0 24 10.10.23.3 preference 100
R3
ip route-static 192.168.1.0 24 10.10.13.1
ip route-static 192.168.2.0 24 10.10.23.2
4.检验效果
BFD会话
PC2pingPC1
追踪路径可发现走R1->R2
把AR1G0/0/0口shutdown,模拟故障
BFD会话显示down状态
再次tracert
路由切换为R1->R3->R2实现浮动路由,再打开g0/0/0口,路由再次选择R1->R2
总结
OSPF联动BFD同理,只是在绑定BFD时,仅仅需要在ospf进程下输入bfd all-interfaces enable即可,以下不做过多演示。OSPF与BFD联动加快OSPF的收敛速度,网络更加稳定可靠。