当数据速率到吉比特(Gb)时,故障感应时间代表着大量数据的丢失。相邻的系统间快速侦测通讯失效的需求日益增多,而且也显得越来越重要。在没有硬件信号发送的情况下,以前的路由协议通常采用发送hello报文的侦测机制。Hello报文的侦测时间一般都大于1秒,这个时间对于一些特殊的应用来说太长了,无法侦测和发现在短时间内发生的链路状态。
当路由协议不在运行状态的时候,hello报文机制也没有被支持。于是就产生一种在双向路由引擎之间建立一条路径的检测方法—BFD。
1、BDF定义
BFD(Bidirectional Forwarding Detection)双向转发检测,可以实现链路的快速检测,BFD通过与上层路由协议联动,可以实现链路的快速检测、监控网络中链路或者IP路由的转发连通状况,保证邻居之间能够快速检测到通信故障,从而快速建立起备用通道恢复通信。
BDF之所以称为双向,是因为BFD协议通过三次握手机制,能提供链路来回两个方向的连通性检测。BFD可以快速检测到转发路径上的接口和链路故障、节点的转发引擎故障等,并把故障通知上层协议,使上层协议能够快速收敛。BFD可用于检测任何形式的路径,包括直接相连的物理链路、虚电路、隧道、MPLSLSP乃至多跳的路由通道。甚至对于单向链路(如MPLSTE隧道),只要有回来的路径,都可以检测。
2、BFD的工作机制
BFD提供了一个通用的、标准化的、介质无关、协议无关的快速故障检测机制,可以为各上层协议如路由协议、MPLS等统一地快速检测两台路由器间双向转发路径的故障。
BFD在两台路由器或路由交换机上建立会话,用来监测两台路由器间的双向转发路径,为上层协议服务。BFD本身并没有发现机制,而是靠被服务的上层协议通知其该与谁建立会话,会话建立后如果在检测时间内没有收到对端的BFD控制报文则认为发生故障,通知被服务的上层协议,上层协议进行相应的处理。
3、BDF的特征
1)BGP 是一种增强型距离矢量(distance vector)路由协议
2)传输协议:TCP,端口号:179
3)支持CIDR(无类别域间选路)
4)路由更新只发送增量路由
5)具有丰富的路由过滤和路由策略配置
4、故障检测
1)链路出现故障。
2)BFD检测到故障,BFD邻居撤消。
3)BFD通知其支撑的应用模块连接断链。
4)BFD支撑的应用OSPF通知邻居断链。
5、检测方法
1)硬件检测:例如通过SDH(Synchronous Digital Hierarchy,同步数字体系)告警检测链路故障。硬件检测的优点是可以很快发现故障,但并不是所有介质都能提供硬件检测。
2)慢Hello机制:通常采用路由协议中的Hello报文机制。这种机制检测到故障所需时间为秒级。对于高速数据传输,例如吉比特速率级,超过1秒的检测时间将导致大量数据丢失;对于时延敏感的业务,例如语音业务,超过1秒的延迟也是不能接受的。并且,这种机制依赖于路由协议。
3)其他检测机制:不同的协议有时会提供专用的检测机制,但在系统间互联互通时,这样的专用检测机制通常难以部署。
双向转发检测(BFD)的新协议将帮助解决这个问题,提高故障检测与恢复速度。作为一项IETF草案标准,BFD提供一种检测链路或系统转发传输流能力的简单方法。
6、如何使用
在使用时,要包含bfd.h这个头文件
#include
#include"bfd.h"
int main()
{
const char **t = bfd_target_list();
while(*t)
{
printf("%s\\n",*t);
t++;
}
}
保存为target.c
在Linux下编译时:gcc -o target target.c -lbfd -liberty
对BDF的介绍就简单到这了,如果您有疑问,欢迎登陆课课家教育或关注公众号【课课家IT精品课程】和我们讨论学习!
上一篇:DHCP服务器如何设置?
¥399.00
¥299.00
¥399.00
¥699.00