Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

BFD 故障检测机制详解

2025-10-31

BFD 是什么?

BFD (Bidirectional Forwarding Detection)的是双向转发检测。是一种用于检测两个转发引擎之间路径故障的标准化全网统一检测机制。该机制能够为上层应用提供毫秒级检测服务,并实现链路的快速故障检测。通过BFD检测到链路故障后,上层协议可以采取措施及时纠正故障。

BFD 要解决什么问题?

随着网络应用日益广泛,对网络的可靠性要求越来越高。为减少设备故障对业务的影响,要尽可能缩短故障检测时间,从而触发保护倒换,确保业务快速恢复。现有路由协议(如OSPF、IS-IS)或冗余网关协议(如VRRP)的故障检测时间通常在秒级,难以满足关键业务的高可靠性要求。BFD能提供毫秒级故障检测,并与其他协议联动,实现业务的快速切换。

BFD的工作原理

BFD通过建立会话,在系统之间周期性地发送BFD数据包。若某一方在指定时间内未收到对端响应,即判定会话状态为”Down”(即检测到路径故障)。 本节从三个维度描述BFD的工作原理:BFD会话建立过程、BFD会话建立模式和BFD故障检测机制。

BFD会话建立过程

BFD会话具有以下状态:Down(关闭)、Init(初始化)、Up(已建立)和AdminDown(管理性关闭)。BFD报文中的State字段指示会话状态。系统根据本地会话状态和接收到的对端会话状态来更改会话状态。

  • Down:初始状态或链路故障状态。
  • Init:初始化状态,表示BFD会话正在建立。
  • Up:正常状态,表示链路正常。
  • AdminDown(管理性关闭):BFD会话被管理性关闭。

BFD状态机实现了用于BFD会话建立或删除的三次握手,以确保两个系统检测到状态变化。下图显示了BFD会话的建立过程,以描述状态机的转换过程。

BFD

会话建立过程

BFD会话建立模式

“BFD会话建立模式”指的是在两个设备之间创建和初始化一个BFD会话所采用的具体方法。它主要定义了关键的会话参数(尤其是标识符)是如何被确定和交换的。BFD会话可以通过静态或动态模式建立。静态和动态BFD会话的区别在于本地和远程鉴别符的配置方式不同。

  • 静态建立BFD会话参数,包括本地和远程鉴别符,在CLI上手动指定。BFD会话建立请求手动分发。
  • 动态建立当动态建立BFD会话时,系统按以下方式处理本地和远程鉴别。

动态分配的本地鉴别符:当上层协议(如OSPF)发现邻居并需要BFD进行检测时,它会通知BFD模块,BFD模块自动生成一个本地标识符。

自学习的远程鉴别符:通过自我学习获得。初始建立时,设备发送的BFD报文中“远程标识符”字段为0,表示“请告诉我你的本地标识符”。对端设备收到后,会回复包含自己本地标识符的报文。这样,双方就学习到了对方的标识符。

BFD故障检测机制

两个网络设备建立一个 BFD 会话以监控它们之间的路径并服务于上层应用程序。BFD 不提供邻居发现。相反,BFD 从其服务的上层应用程序获取邻居信息。两个设备建立 BFD 会话后,它们周期性地相互发送 BFD 数据包。如果一个设备在设定的时间限制内未收到响应,则该设备认为转发路径存在故障。然后 BFD 将此故障通知上层协议。

BFD

当 OSPF 和 BFD 一起使用时,BFD会话建立

在上图中,SwitchA 和 SwitchB 上都配置了 OSPF 和 BFD,建立 BFD 会话的过程如下:1OSPF 使用 Hello 机制发现邻居并建立邻居关系。2OSPF 将邻居信息(包括源地址和目的地址)通知给 BFD。3BFD 根据接收到的邻居信息建立会话。4BFD 会话建立后,BFD 开始监控链路并对任何链路故障做出快速响应。

BFD

上图中,1被监控的链路发生故障。2BFD 快速检测到链路故障并将 BFD 会话状态更改为 Down。3BFD 通知本地 OSPF 进程该邻居不可达。4本地 OSPF 进程终止 OSPF 邻居关系。
数据中心和运营商网络中交换机作为核心转发设备,承担着数据包的高速转发、VLAN划分、流量控制等关键功能。它的稳定性和可靠性直接决定了整个网络的性能和业务的连续性。其中支持的高可靠性BFD通过与路由协议(如OSPF、IS-IS)、网关协议(如VRRP)等联动,能够在毫秒级内检测到链路或设备故障,并立即触发保护切换,确保业务流量不会因单点故障而中断。

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2