BFD双向转发检测:是用来实现快速故障检测的标准协议
产生背景
为了保护关键业务应用,网络中采用冗余备份链路,网络发生故障要求快速检测出故障并将流量切换至备份链路以加快网络收敛速度,POS通过硬件检测机制来实现快速故障检测,但是某些链路不具备这样的检测机制,此时依靠上层协议自身的机制来进行故障检测,上层协议都是1s以上,对于某些应用不能容忍,像ospf、lsls的检测时间也只能达到1s的精度
BFD协议提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制,为上层应用提供服务
优点:
1、对网络设备间任意类型的双向转发路径进行故障检测,包括直连链路、隧道等
2、提供小于1s的检测时间,加快网络收敛速度,减少中断时间,提高网络的可靠性
3、可以为不同的上层应用服务,提供一致的快速故障检测时间
BFD没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息建立会话,建立会话会周期性地快速发送BFD报文,如果在检测时间内没收到BFD报文则认为该双向转发路径发生故障,通知被服务的上层应用进行相应的处理
BFD不能建立邻居,而是靠OSPF,形成会话状态,BFD以快速发送报文检测链路,当链路故障,第一时间通知OSPF,并拆散会话状态
如图所示
BFD控制报文采用UDP封装,目的端口号3784,源端口号49152-65535
BFD echo报文采用UDP封装,目的端口号为3785
控制报文方式:链路两端会话通过控制报文交互检测链路状态
Echo报文方式:链路某一端通过发送Echo报文由另一端转发回来,实现对链路的双向检测
BFD会话建立前BFD控制报文以1s的时间间隔发送以减少报文流量,会话建立后,发送BFDecho报文以实现快速检测
BFD检测方式
1、单跳检测:指对两个直连的系统进行IP连通性检测,这“单跳”是IP的一跳
2、多跳检测:检测两个系统间的任意路径,这些路径可能跨越很多跳,也可能在某些部分发送重叠
3、双向检测:两端同时发送检测报文,检测两个方向上的链路状态,实现毫秒级的链路故障检测