双向转发检测BFD

    作者:课课家教育更新于: 2017-05-19 16:41:24

    软考,您想通过吗?一次通过才是硬道理

      当数据速率到吉比特(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、故障检测

    双向转发检测BFD_BDF_通信_路由交换_课课家教育

      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精品课程】和我们讨论学习!

课课家教育

未登录