BFD协议原理和配置
- 概述
- 协议原理
- 配置
BFD(Bidirectional Forwarding Detection,双向转发检测)提供了一个通用的、标准化的、介质无关和协议无关的快速故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状态
链路故障:
在无法通过硬件信号检测故障的系统中,应用通常采用上层协议本身的Hello报文机制检测网络故障。
2、常用路由协议的Hello报文机制检测时间较长,检测时间超过1秒钟。当应用在网络中传输的数据超过GB/s时,秒级的检测时间将会导致应用传输的数据大量丢失。
3、在三层网络中,静态路由本身没有故障检查机制。
一、概述
功能:BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制
优点:
1、对相邻转发引擎之间的通道提供轻负荷、快速故障检测。
2、用单一的机制对任何介质、任何协议层进行实时检测。
原理:BFD是一个简单的“Hello”协议。两个系统之间建立BFD会话通道,并周期性发送BFD检测报文,如果某个系统在规定的时间内没有收到对端的检测报文,则认为该通道的某个部分发生了故障。
特点: 检测速度快(毫秒级),可以和多个协议进行联合使用。
应用场景:
1.静态路由和BFD联动
2.OSPF和BFD联动
3. 其它动态协议和BFD联动
二、协议原理
1 报文结构
强制部分:
sta: 本地状态,bfd有四种邻居状态分别是down,init,up,adminDown
detect mult: 检测倍数,默认是3
discriminator: 本地标识符 local , 远端标识符 remote
mim TX: 最小发送间隔时间,默认1000ms
min RX: 最小接收间隔时间,默认1000ms
可选部分:主要用于认证
2 BFD会话建立
静态建立会话:静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
动态建立会话:动态建立BFD会话的本地标识符由触发创建BFD会话的系统动态分配,远端标识符从收到对端BFD消息的Local Discriminator的值学习而来。
会话状态:
BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变。
BFD状态机的建立和拆除都采用三次握手机制
3 BFD检测模式
BFD的检测机制:两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障。BFD的检测模式有异步模式和查询模式两种
1、异步模式
系统之间相互周期性地发送BFD控制包,如果某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣布会话为Down。
2、查询模式
在需要验证连接性的情况下,系统连续发送多个BFD控制包,如果在检测时间内没有收到返回的报文就宣布会话为Down。
4 BFD检测时间
BFD会话检测时长由TX(Desired Min TX Interval),RX(Required Min RX Interval),DM(Detect Multi)三个参数决定。BFD报文的实际发送时间间隔,实际接受时间间隔由BFD会话协商决定。
本地BFD报文实际发送时间间隔=MAX { 本地配置的发送时间间隔,对端配置的接收时间间隔 }
本地BFD报文实际接收时间间隔=MAX { 对端配置的发送时间间隔,本地配置的接收时间间隔 }
BFD缺省时间参数 :
BFD报文发送间隔默认1000毫秒,接受间隔默认1000毫秒,本地检测倍数3次。
BFD会话等待恢复时间0秒,会话延迟Up时间0秒。
检测超时倍数,用于检测方计算检测超时时间。
查询模式:采用本地检测倍数。
异步模式:采用对端检测倍数。
5 BFD Echo功能
BFD Echo功能也称为BFD回声功能,是由本地发送BFD Echo报文,远端系统将报文环回的一种检测机制。
工作原理:
在两台直接相连的设备中,其中一台设备支持BFD功能(R1);另一台设备不支持BFD功能(R2),只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD功能的设备上创建单臂回声
2.6 BFD联动功能
联动功能由检测模块、Track和应用模块三部分组成。
监测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块
Track模块收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。
应用模块根据Track项的状态,进行相应的处理,从而实现联动。
三、配置
3.1 基本配置
bfd //使能bfdbfd 名字 bind peer 对端IP interface 本端接口 //配置静态bfd会话discriminator local 10 // 配置本地标识符discriminator remote 20 //配置远端标识符commit// 提交配置注意本地标识符和远端标识符要匹配否则无法建立BFD会话会话验证:display bfd session all verbose
1 BFD和静态路由联动
实验要求:
如上图组网所示,在R1上配置到达R4的Loopback0: 4.4.4.4/32网段的浮动静态路由,正常情况下通过R2访问R4,当R2故障时,自动选路通过R3访问R4的Loopback0;
在R1与R2之间建立BFD会话,并与静态路由绑定,实现故障快速检测和路径快速收敛。
配置:
在R1与R2之间建立静态BFD会话:[R1]bfd[R1]bfd 12 bind peer 10.0.12.2 interface GigabitEthernet 0/0/1[R1-bfd-session-12]discriminator local 10[R1-bfd-session-12]discriminator remote 20[R1-bfd-session-12]commit [R2]bfd[R2]bfd 21 bind peer 10.0.12.1 interface GigabitEthernet 0/0/1[R2-bfd-session-21]discriminator local 20[R2-bfd-session-21]discriminator remote 10[R2-bfd-session-21]commit在R1上配置静态路由并绑定BFD会话:[R1] ip route-static 4.4.4.4 32 10.0.12.2 track bfd-session 12[R1] ip route-static 4.4.4.4 32 10.0.13.2 preference 100
2 BFD和OSPF联动
实验要求:
R1、R2、R3运行OSPF协议,且都属于Area 0;
配置OSPF与BFD联动,通过设置所有OSPF接口的BFD会话参数进一步提高链路状态变化时OSPF的收敛速度;
将BFD会话的最大发送间隔和最大接受间隔都设置为100ms,检测次数默认不变。
配置:
R1配置如下[R1]bfd[R1]interface GigabitEthernet 0/0/1[R1-GigabitEthernet0/0/1]ip address 10.0.12.1 30[R1]ospf 1[R1-ospf-1]area 0[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.3[R1-ospf-1-area-0.0.0.0]quit[R1-ospf-1]bfd all-interfaces enable [R1-ospf-1]bfd all-interfaces min-tx-interval 100 min-rx-interval 100 detect-multiplier 3R2 R3 配置和R1类似
来源地址:https://blog.csdn.net/qq_50929489/article/details/126363838