BFD

BFD协议原理

BFD技术简介

BFD会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到对端BFD报文则认为该双向转发路径发生了故障,通知被服务的相关层应用进行相应的处理。

本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。

不管是物理接口状态、二层链路状态、网络层地址可达性、还是传输层连接状态、应用层协议运行状态,都可以被BFD感知到。

BFD会话建立的方式和检测机制

BFD的标识符

  • BFD建立会话存在标识符的概念,类似于OSPF建立邻居需要一个路由器的Router ID。
  • 标识符分为本地标识符和远端标识符,本地标识符用于表示本端设备,远端标识符用于表示对端设备。
  • 静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
  • 动态建立BFD会话是指由应用程序触发创建BFD会话,当应用程序动态触发创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。当BFD会话的一端收到Remote Discriminator的值为0BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。

BFD的检测机制

  • BFD的检测机制是两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障,BFD控制报文是UDP报文,端口号3784。
  • BFD提供异步检测模式。在这种模式下,系统之间相互周期性地发送BFD控制报文,如果某个系统连续3个报文都没有接收到,就认为此BFD会话的状态是Down。

BFD会话建立过程

 

  • RTA和RTB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;对于动态创建BFD会话,Remote Discriminator的值是0。
  • RTB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。
  • RTB本地BFD状态为Init后,不再处理接收到的状态为Down的报文。
  • RTB收到状态为Init的BFD报文后,本地状态切换至Up。
  • RTA的BFD状态变化同RTB。
  • 邻居会话建立成功后,RTA和RTB周期性的向对方发送状态为Up的控制报文。

 BFD工作流程

OSPF的BFD检测故障发现处理流程。
  • OSPF通过自己的Hello机制发现邻居并建立连接。
  • OSPF在建立了邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD。
  • BFD根据收到的邻居信息建立会话。
  • 被检测链路出现故障。
  • BFD快速发送BFD探测报文检测到链路故障,如果在规定时间内无响应,BFD会话状态变为Down。
  • BFD通知本地OSPF进程BFD邻居不可达。
  • 本地OSPF进程中断OSPF邻居关系。

 联动功能简介

  • 监测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块 。
  • Track模块收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。
  • 应用模块根据Track项的状态,进行相应的处理,从而实现联动。

BFD应用场景

1.BFD与OSPF联动

2.BFD与VRRP联动

3.BFD与静态路由联动

4.BFD与BGP联动

5.单臂回声

 

 

 

 

 

posted @ 2024-12-10 09:16  小蟋帅  阅读(7)  评论(0编辑  收藏  举报