BFD双向转发检测
作用:检测网络故障,实现快速检测/收敛
提供了一个通用的、标准化的、介质无关和协议无关的快速故障检测机制
1.硬件检测,使用同一条链路相连的两个之间可以通过接口硬件检测功能检测故障
1.只能检测接口连接链路,不能实现跨链路检测
2.不同传输介质实现方式不同
3.检测效率更高
2.Keepalive保活机制,通过周期性发送协议报文用于检测故障
1.支持跨链路检测
2.通用性强
3.检测效率低
3.BFD,1.检测效率极高,实现毫秒级检测
2.通用性强,可以和其它协议联动/关联
3.消耗设备资源、网络带宽少
BFD原理:“Hello”机制
BFD会建立会话连接,并周期性1s/次发送控制消息维护会话,制定规定时间内未收到对端的
消息则认为对端故障,将会话连接断开,并通知联动的其它协议
BFD报文格式:基于UDP封装,D.Port 3784
参数: 1.BFD状态 2.检测超时次数 3.本地标识符 4.对端标识符
5.最小传输间隔 6.最小接收间隔 7.最小回波接收间隔
BFD会话建立方式:
静态BFD会话建立:
手工配置BFD会话的参数:本地标识符和对端标识符,手工触发会话建立
动态BFD会话建立:
由协议自动触发建立BFD会话,本地标识符由触发的协议分配,对端标识符
由交互BFD控制消息学习
BFD状态机:
Down:未收到对端BFD控制消息
init:收到对端状态为Down的BFD控制消息,学习到对方标识符
Up:收到对端状态为int的BFD控制消息,消息中携带了本端标识和对端标识符
Admin_Down:管理员手工关闭BFD会话
BFD检测模式:
异步检测:双方周期性发送BFD控制消息进行检测
查询检测:一方按需发送BFD控制消息进行检测
检测时间
1.本地发送报文实际间隔时间:
在本地发送间隔时间和对端设备接收间隔时间中取最大值
2.本地接收报文实际间隔时间:
在本地接收间隔时间和对端设备发送间隔时间中取最大值
异步模式:检测会话超时时间 = 本地实际接收间隔时间 x 对端检测次数
查询模式:检测会话超时时间 = 本地实际接收间隔时间 x 本端检测次数
BFD Echo回声功能
适用场景:一端支持BFD(BFD Echo功能)、另一端不支持BFD
本地发送BFD检测报文 Echo报文,对方收到后将报文进行环回,本地通过是否能够接收
Echo报文来判断网络是否故障
BFD联动组成部分:
1.检测模块:通过BFD检测故障
2.Track模块:将BFD检测模块和应用模块关联到一起
3.应用模块:动态路由协议(OSPF)、VRRP、静态路由......
场景1: 与静态路由联动
手工配置BFD会话与静态路由联动,当BFD会话Down,联动模块将静态路由从路由表 中删除
*手工创建BFD会话
[R1]ip route-static 10.1.23.0 255.255.255.0 10.1.12.2 track bfd-session 1
场景2: 与OSPF协议联动(与ISIS协议、BGP协议联动)
OSPF邻接关系建立成功后,触发建立BFD会话,当BFD会话Down,联动模块通知
OSPF协议将邻居删除
ospf 1 router-id 172.16.1.1
bfd all-interfaces enable
isis 1
bfd all-interfaces enable
bgp 100
peer x.x.x.x bfd enable
场景3:与VRRP联动
[R1-GigabitEthernet0/0/1]vrrp vrid 10 track bfd-session 1 reduced 30
BFD会话Down,该路由器在VRID10中优先级降低30
场景4:单臂回声功能:适用于一端不支持BFD检测场景
bfd 1 bind peer-ip 10.1.12.2 interface GigabitEthernet0/0/0 one-arm-echo
[R1]bfd
[R1]bfd 1 bind peer-ip 10.1.12.2 interface GigabitEthernet0/0/0 one-arm-echo
[R1-bfd-session-1]discriminator local 100
[R1-bfd-session-1]commit
总结