下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

全面讲解BFD协议

作者:课课家教育     来源: http://www.kokojia.com点击数:16985发布时间: 2017-04-11 11:03:31

标签: BFD通信路由交换

  BFD是BidirectionalForwardingDetection的缩写,它是一个用于检测两个转发点之间故障的网络协议,在RFC5880有详细的描述。

  BFD是一种双向转发检测机制,可以提供毫秒级的检测,可以实现链路的快速检测,BFD通过与上层路由协议联动,可以实现路由的快速收敛,确保业务的永续性。

BFD简介

  BFD(BidirectionalForwardingDetection)BFD(BidirectionalForwardingDetection)双向转发检测

  双向转发检测(BFD)的新协议将帮助解决这个问题,提高故障检测与恢复速度。作为一项IETF草案标准,BFD提供一种检测链路或系统转发传输流能力的简单方法。

  为了减小设备故障对业务的影响、提高网络的可用性,设备需要能够尽快检测到与相邻设备间的通信故障,以便能够及时采取措施,从而保证业务继续进行。

  现有的故障检测方法主要包括以下几种:

  硬件检测:例如通过SDH(SynchronousDigitalHierarchy,同步数字体系)告警检测链路故障。硬件检测的优点是可以很快发现故障,但并不是所有介质都能提供硬件检测。

  慢Hello机制:通常采用路由协议中的Hello报文机制。这种机制检测到故障所需时间为秒级。对于高速数据传输,例如吉比特速率级,超过1秒的检测时间将导致大量数据丢失;对于时延敏感的业务,例如语音业务,超过1秒的延迟也是不能接受的。并且,这种机制依赖于路由协议。

  其他检测机制:不同的协议有时会提供专用的检测机制,但在系统间互联互通时,这样的专用检测机制通常难以部署。

  BFD(BidirectionalForwardingDetection,双向转发检测)就是为了解决上述检测机制的不足而产生的,它是一套全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况,保证邻居之间能够快速检测到通信故障,从而快速建立起备用通道恢复通信。

  工作机制

  BFD提供了一个通用的、标准化的、介质无关、协议无关的快速故障检测机制,可以为各上层协议如路由协议、MPLS等统一地快速检测两台路由器间双向转发路径的故障。

  BFD在两台路由器或路由交换机上建立会话,用来监测两台路由器间的双向转发路径,为上层协议服务。BFD本身并没有发现机制,而是靠被服务的上层协议通知其该与谁建立会话,会话建立后如果在检测时间内没有收到对端的BFD控制报文则认为发生故障,通知被服务的上层协议,上层协议进行相应的处理。

  1.工作流程

全面讲解BFD协议_BFD_通信_路由交换_课课家教育

  BFD-普普通通一通信人-点滴学通讯

  图1BFD会话建立流程图(以OSPF为例)

  BFD会话建立过程:

  (1)上层协议通过自己的Hello机制发现邻居并建立连接;

  (2)上层协议在建立了新的邻居关系时,将邻居的参数及检测参数都(包括目的地址和源地址等)通告给BFD;

  (3)BFD根据收到的参数进行计算并建立邻居。

BFD在两台路由器或路由交换机上建立会话,用来监测两台路由器间的双向转发路径,为上层协议服务。BFD本身并没有发现机制,而是靠被服务的上层协议通知其该与谁建立会话,会话建立后如果在检测时间内没有收到对端的BFD控制报文则认为发生故障,通知被服务的上层协议,上层协议进行相应的处理。

  BFD-普普通通一通信人-点滴学通讯

  图2BFD处理网络故障流程图(以OSPF为例)

  当网络出现故障时:

  (1)BFD检测到链路/网络故障;

  (2)拆除BFD邻居会话;

  (3)BFD通知本地上层协议进程BFD邻居不可达;

  (4)本地上层协议中止上层协议邻居关系;

  (5)如果网络中存在备用路径,路由器将选择备用路径。

  工作原理

  BFD提供的检测机制与所应用的接口介质类型、封装格式、以及关联的上层协议如OSPF、BGP、RIP等无关。BFD在两台路由器之间建立会话,通过快速发送检测故障消息给正在运行的路由协议,以触发路由协议重新计算路由表,大大减少整个网络的收敛时间。BFD本身没有发现邻居的能力,需要上层协议通知与哪个邻居建立会话。

  2.检测方式

  单跳检测:BFD单跳检测是指对两个直连系统进行IP连通性检测,这里所说的“单跳”是IP的一跳。

  多跳检测:BFD可以检测两个系统间的任意路径,这些路径可能跨越很多跳,也可能在某些部分发生重叠。

  双向检测:BFD通过在双向链路两端同时发送检测报文,检测两个方向上的链路状态,实现毫秒级的链路故障检测。(BFD检测LSP是一种特殊情况,只需在一个方向发送BFD控制报文,对端通过其他路径报告链路状况。)

  3.BFD会话工作方式

  BFD会话工作方式:

  控制报文方式:链路两端会话通过控制报文交互监测链路状态。

  Echo报文方式:链路某一端通过发送Echo报文由另一端转发回来,实现对链路的双向监测。

  4.运行模式

  BFD会话建立前模式:主动模式和被动模式。

  主动模式:在建立对话前不管是否收到对端发来的BFD控制报文,都会主动发送BFD控制报文;

  被动模式:在建立对话前不会主动发送BFD控制报文,直到收到对端发送来的控制报文;

  在会话初始化过程中,通信双方至少要有一个运行在主动模式才能成功建立起会话。

  BFD会话建立后模式:异步模式和查询模式。

  异步模式:以异步模式运行的路由器周期性地发送BFD控制报文,如果在检测时间内没有收到BFD控制报文则将会话down。

  查询模式:假定每个系统都有一个独立的方法,确认自己连接到其他系统。这样,只要有一个BFD会话建立,系统停止发送BFD控制报文,除非某个系统需要显式地验证连接性。

  BFD报文格式

  BFD控制报文封装在UDP报文中传送,对于单跳检测其UDP目的端口号为3784,对于多跳检测其UDP目的端口号为4784(也可配置为3784,具体参见配置任务)。BFDecho报文与BFD控制报文格式类似(区别在于字段DesiredMinTXInterval和RequiredMinRXInterval为空),其UDP目的端口号为3785。报文格式如图3所示。

BFD控制报文封装在UDP报文中传送,对于单跳检测其UDP目的端口号为3784,对于多跳检测其UDP目的端口号为4784(也可配置为3784,具体参见配置任务)。BFDecho报文与BFD控制报文格式类似(区别在于字段DesiredMinTXInterval和RequiredMinRXInterval为空),其UDP目的端口号为3785。报文格式如图3所示。

  BFD-普普通通一通信人-点滴学通讯

  图3BFD报文格式图

  Vers:协议的版本号,协议版本为1。

  Diag:本地会话最后一次从up状态转换到其他状态的原因。

  State(Sta):BFD会话当前状态,取值为:0代表AdminDown,1代表Down,2代表Init,3代表Up。

  Poll(P):设置为1,表示发送方请求进行连接确认,或者发送请求参数改变的确认;设置为0,表示发送方不请求确认。

  Final(F):设置为1,表示发送方响应一个接收到P比特为1的BFD控制报文;设置为0,表示发送方不响应一个接收到P比特为1的BFD控制报文。

  ControlPlaneIndependent(C):设置为1,表示发送方的BFD实现不依赖于它的控制平面(即,BFD报文在转发平面传输,即使控制平面失效,BFD仍然能够起作用);设置为0,表示BFD报文在控制平面传输。

  AuthenticationPresent(A):如果设置为1,则表示控制报文包含认证字段,并且会话是被认证的。

  Demand(D):设置为1,表示发送方希望操作在查询模式;设置为0,表示发送方不区分是否操作在查询模式,或者表示发送方不能操作在查询模式。

  Reserved(R):在发送时设置为0,在接收时忽略。

  DetectMult:检测时间倍数。即接收方允许发送方发送报文的最大连续丢包数,用来检测链路是否正常。

  Length:BFD控制报文的长度,单位字节。

  MyDiscriminator:发送方产生的一个唯一的、非0鉴别值,用来区分两个协议之间的多个BFD会话。

  YourDiscriminator:接收方收到的鉴别值“MyDiscriminator”,如果没有收到这个值就返回0。

  DesiredMinTxInterval:发送方发送BFD控制报文时想要采用的最小间隔,单位毫秒。

  RequiredMinRxInterval:发送方能够支持的接收两个BFD控制报文之间的间隔,单位毫秒。

  RequiredMinEchoRxInterval:发送方能够支持的接收两个BFD回声报文之间的间隔,单位毫秒。如果这个值设置为0,则发送不支持接收BFD回声报文。

  AuthType:BFD控制报文使用的认证类型。

  AuthLen:认证字段的长度,包括认证类型与认证长度字段。

  BFD支持的应用

  OSPF与BFD联动

  OSPFv3与BFD联动

  IS-IS与BFD联动

  IPv6IS-IS与BFD联动

  RIP与BFD联动

  静态路由与BFD联动

  BGP与BFD联动

  IPv6BGP与BFD联动

  MPLS与BFD联动

  Track与BFD联动

  IP快速重路由

  BFD即是双向路由检测协议。主要是用来实现好秒级的切换。从而降低业务的故障率。

  而BFD不是单独启用的,通常是和ospfvrrp等这些路由协议和热备份协议一起使用的。

  比如ospf默认情况下,你要等待40秒才能知道邻居down了,但是bfd和OSPF一起使用在毫秒内就能发现邻居down了这样的话路由切换肯定要快很多。

  更多详细内容,尽在课课家教育,我们期待您的咨询!

赞(35)
踩(2)
分享到:
华为认证网络工程师 HCIE直播课视频教程