目录
BFD技术产生的背景
- 在一些特殊的网络中,设备之间是通过运营商专线互联的,而R1和R2之间可能通过不同的路由协议或者静态路由来实现互联互通,其中运营商A为主线,运营商B为备线。运营商A专线的故障将导致各种问题:
BFD技术原理
BFD工作机制
- BFD提供的检测机制与所应用的接口介质、封装格式、上层协议(如 OSPF、BGP、静态路由)等无关
- BFD在两台路由器之间建立会话,通过快速发送检测故障消息给正在运行的路由协议,以触发路由协议重新计算路由表,大大减少整个网络的收敛时间。
- BFD 本身没有发现邻居的能力,需要上层协议通知与哪个邻居建立会话。以上层协议是OSPF为例:
BFD会话建立过程
- BFD会话建立有两种模式,分别是主动模式和被动模式
---主动模式:不管是否收到对端发来的建立BFD会话的控制报文,都会主动发送建立BFD会话控制报文,(锐捷目前仅支持主动模式)
---被动模式:不会主动发送BFD控制报文,直到对端发来BFD控制报文
·建立过程如下:
---1. Router1和Router2的BFD与上层应用联动之后,分别发送状态为Down的BFD控制报文;
---2. Router2收到对端状态为Down的BFD控制报文后,本地会话功能由Down迁移到Init,随后发 送的BFD控制报文中将Sta字段填为2,表明会话状态为Init .Router1的状态变化同Router2;
---3. Router1收到对端状态为Init的BFD控制报文后,本地会话状态由Init迁移到UP,随后发送的BFD控制报文将Sta字段填为3表明会话状态为UP。Router2的BFD状态变化同Router1;
---4. BFD双方状态都为UP,会话成功建立并开始检测链路状态
BFD会话状态机
- 三种基本状态:Down、 Init、 Up
---BFD会话在处于Down状态时,收到状态为Init的报文,状态切换成UP.收到状态为Down的报文,状态就会切换成Init,收到其余的报文,则保持不变;
---BFD会话在处于Init状态的时候收到的状态为Init或者UP的报文,状态切换成UP。收到的状态为Admin的报文,状态就会切换成Down,收到其余的保文,则状态不变;
---BFD会话在处于Up状态的时候收到的状态为Admin或者Down的报文,状态就会切换成Down,收到其余的报文,则状态不变
BFD故障检测
BFD检测模式
·目前BFD包含如下几种检测模式:
---异步模式:系统之间相互周期性地发送BFD控制报文,如果某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣布会话为Down;(锐捷目前仅支持异步模式)
---查询模式:在查询模式下,假定每个系统都有一个独立的方法用来确认它连接到其他系统. 一旦BFD会话建立起来以后,系统就会停止BFD控制报文
·BFD回声(Echo)功能:本地系统周期性的发送BFD回声报文,远端系统通过它的转发通道将它们环回回来。 采用回声报文的检测功能,不需要远端系统的控制面参与,减少了延迟,相对于发送控制报文可以更快的检测到故障;
·回声功能和异步以及查询模式配合使用:
---异步模式:在异步模式下启用回声功能,由于检测工作由回声功能完成,因此可以减少控制报文
的发送 (锐捷只支持回声与异步模式)
---查询模式:如果在查询模式下启用回声功能,在会话建立后可以完全取消发送控制报文
( 注意:锐捷不支持BFD认证 )
BFD报文的两种不同类型
- BFD报文有两种类型,分别是控制报文和回声报文:
- 回声报文:只有 BFD会话的本端关心, 而远端并不关心,因此协议对BFD回声报文的格式没有规定;
- 控制报文:协议只规定了控制报文的格式, 目前控制报文格式有两个版本(版本 0 和版本 1),BFD 会话建立缺省采用版本 1,版本1的格式如下图所示:
BFD配置和状态查看
BFD和静态路由联动
- R1和R2通过两条运营商专线互联,接口和IP地址信息见下图,有如下需求:
- R1和R2之间运营商A为主线,运营商B为备线
- R1和R2之后的局域网段互联互通,通过静态路由实现;
- 运营商A专线异常后,数据可以切换到备线
BFD和动态路由联动
思路:1.动态路由协议常规配置
2.接口启动BFD,并配置BFD检测参数
3.BFD和动态路由协议联动(RIP、OSPF、BGP和BFD联动方式有所区别)
R1(config)#interface range g0/0
R1(config-if-g0/0)#bfd interval 100 min-rx 100 multiplier 3 --接口启动BFD,100/100/3分别为发送和接收间隔,100ms, 3次超时
R1(config-if-g0/0)#no bfd echo ---关闭BFD回声模式,默认开启
R1(config-if-g0/0)#ip ospf bfd ---BGP和OSPF联动
R1(config-if-g0/0)#ip rip bfd ---BGP和RIP联动
R1(config)#router bgp 1000
R1(config-router)#neighbor 1.1.1.1 fall-over bfd ---BGP关联BFD,1.1.1.1为BGP邻居
BFD状态查看
Ruijie#show bfd neighber ---查看BFD邻居状态
- OurAddr:本端接口地址
- NeighAddr:对端接口地址
- LD/RD:会话本地和远端标识(Local Diag和Remote Diag)
- RH/RS:会话对端的当前状态
- Holdown(mult):会话本地未接收到hello报文的时间即会话超时检测次数
- State:会话本地的当前状态
- Int:会话所在的接口号