BFD协议是华为私有协议么?不是。BFD是标准协议,各主流厂商之间的互通不存在问题。

BFD协议是华为私有协议么?

BFD协议简介

BFD是Bidirectional Forwarding Detection的缩写,它是一个用于检测两个转发点之间故障的网络协议,在RFC 5880有详细的描述。
BFD是一种双向转发检测机制,可以提供毫秒级的检测,可以实现链路的快速检测,BFD通过与上层路由协议联动,可以实现路由的快速收敛,确保业务的永续性。
BFD Echo报文采用UDP封装,目的端口号为3784,源端口号在49152到65535的范围内。目的IP地址为发送接口的地址,源IP地址由配置产生(配置的源IP地址要避免产生ICMP重定向)

BFD工作过程

1. BFD在两个端点之间的一条链路上先建立一个BFD会话(依靠上层协议建立,例如OSPF的邻居建立时,会将邻居信息告知BFD,BFD根据这个信息再建立BFD邻居),如果两个端点之间存在多条链路,则可以为每条链路建立一个BFD会话。
2. BFD在建立会话的两个网络节点之间进行BFD检测。如果发现链路故障就拆除BFD邻居,并立刻通知上层协议,则上层协议会立刻进行相应的切换。

在BFD会话建立时,有两种建立模式:主动模式和被动模式。

主动模式

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

被动模式

在建立对话前不会主动发送BFD控制报文,直到收到对端发送来的BFD控制报文。
在会话初始化过程中,通信双方至少要有一个运行在主动模式才能成功建立起会话。

BFD在会话建立后有两种操作模式:异步模式和查询模式。

异步模式

在此模式下,网络节点双方会周期性地发送BFD控制报文,如果在检测时间内没有收到对端的BFD控制报文则认为对应的链路出现故障。

查询模式

假定每个系统都有一个独立的方法,确认自己连接到其他系统。这样,只要有一个BFD会话建立,系统就停止发送BFD控制报文,除非某个系统需要显式地验证连接性。如果要显式地验证连接性,系统发送一个短系列的BFD控制包,如果在检测时间内没有收到返回的报文就宣布会话为Down;如果收到对端的回应报文,协议再次保持沉默。
在BFD中还有一个回声功能,回声功能启动后,会话的一端周期性地发送BFD回声报文,对端不对此报文进行处理,而只将此报文转发再发回给发送端。发送端根据是否能收到BFD会话报文来检测会话状态。BFD回声报文只用来检测直连网段的链路状态,而BFD控制报文还可以检测非直连网段的链路状态。

BFD现在越来越多地应用在重要网络、重要链路上,结合路由、MPLS、VPN、流量工程等技术,可以对重点服务流量提供高可靠性,从而保证服务质量。