双向转发侦测

双向转发侦测(英语:Bidirectional Forwarding Detection,缩写为 BFD)是一个用于侦测两个转送引擎之间数据链路错误的网络协议。BFD可做到全程路径的侦测,不管中间经过多少交换器[1]它为不支援任何错误侦测类型的实体媒介(如:以太网路虚电路(Virtual Circuits)、穿隧协议 (Tunnel)和MPLS LSP)提供一种低成本的侦测错误事件的能力。

运作原理

BFD在某个链接的两个端点建立了一个会话,如果超过一个连线存在于两个系统,多重BFD会话也能建立以监视其中的每一个连线。会话使用三路握手(three-way handshake)的方式建立和拆除。会话的建立支持鉴权,鉴权方式可以为较简易的密码方式,或MD5、SHA1安全验证。

BFD不俱备对端发现的机制,必须在通信双方设置对端的信息。BFD可以被多种不同的底层传输机制所承载,因此BFD需要能够被各种传输层封包传输。例如,当其传输层为MPLS,监控MPLS的LSP时,BFD会话的建立要通过LSP-Ping封包捎带(piggybacking)。支持邻接关系建立的通讯协定,如OSPFIS-IS,也可用于建立BFD会话;而这些通讯协议可以使用BFD的链接失败通知来更快捷地确认链路故障(它们自身也有定时保活英语keepalive机制)。

链路状态确认机制

会话有以下2种模式:异步模式(asynchronous mode)和按需模式(demand mode)。

在异步模式中,两端周期性地发送Hello封包。如果无响应次数超过一定限度,会话即判定为中断。

在按需模式中,在会话建立后不需要交换Hello封包。它假设链路的两端有其他的方法来验证彼此之间的可达性。不过任意一端仍可按照自己的需要发送Hello封包。

无论使用哪种模式,两个端点也可以使用Echo功能:当此功能被开启时,一端发送Echo封包流,另一端则透过转发面寄送回寄送者,从而测试对端系统的传送路径。

实际应用

产品功能

网络设备供应商CiscoJuniper的路由器产品都支援BFD。以Cisco的路由器为例,依设备等级不同,BFD可支援的路由协定有所差异:EIGRPOSPFIS-ISBGPMPLS TE。[1]

组网应用

由于BFD能快速的切换网络备援,因此非常适用在大型网络的骨干网络,如学术骨干网络或是Tier1/Tier2的互联网服务供应商(ISP)骨干网络。

下一代网络(Next Generation Network)的Layer 1传输设备大量采用同步光网络(SONET)设备,在Layer 2/3的网络设备也渐渐开始会采用以太网路界面来当骨干网络设备,但以太网路无法像传统的Packet over SONET/SDH或是Serial T1/E1/T3专线可直接快速侦测断线状态,此时就可以利用BFD协助快速侦测网络是否有断线状况。[1]

标准化

BFD通讯协议在2010年6月标准化,定义于RFC 5880。[2]标准中定义了侦测MPLS LSP错误、监视多端网络跳跃(Hop)的连线、与OSPF和IS-IS共用的机制。而其对IPv4IPv6的支持定义于RFC 5881。[3]

参考

  1. ^ 1.0 1.1 1.2 BFD(Bidirectional Forwarding Detection)侦测网络断线应用页面存档备份,存于互联网档案馆), 纪志欣
  2. ^ RFC 5880, Bidirectional Forwarding Detection, D. Katz, D. Ward (June 2010)
  3. ^ RFC 5881, BFD for IPv4 and IPv6 (Single Hop), D. Katz, D. Ward (June 2010)

外部链接