1.BFD

1.BFD简介

  BFD(Bidirectional Forwarding Detection,双向转发检测)是一个通用的、标准化的、介质无关和协议无关的快速故障检测机制,用于检测IP 网络中链路的连通状况,保证设备之间能够快速检测到通信故障,

  以便能够及时采取措施,保证业务持续运行。

  BFD 可以为各种上层协议(如路由协议等)快速检测两台设备间双向转发路径的故障。上层协议通常采用Hello 报文机制检测故障,所需时间为秒级,而BFD 可以提供毫秒级检测。实际应用中,BFD 可以用来进行单跳和多跳检测:

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

  • 多跳检测:BFD 可以检测两个设备间任意路径的链路情况,这些路径可能跨越很多跳。

  1)BFD会话的建立与拆除

  BFD 本身并没有发现机制,而是靠被服务的上层协议通知来建立会话,具体过程如下:

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

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

  ③ BFD 根据收到的参数建立BFD 会话。

  当网络出现故障时:

  ④ BFD 检测到链路故障后,拆除BFD 会话,通知上层协议邻居不可达;

  ⑤上层协议中止邻居关系;

  ⑥如果网络中存在备用路径,设备将选择备用路径进行通信。

  2)BFD会话的工作方式和检测模式

  BFD 会话通过下面两种报文来实现:

  • echo 报文:封装在UDP 报文中传送,其UDP 目的端口号为3785。

  • 控制报文:封装在UDP 报文中传送,对于单跳检测其UDP 目的端口号为3784,对于多跳检测其UDP 目的端口号为4784。

  ① echo报文方式

  本端发送 echo 报文建立BFD 会话,对链路进行检测。对端不建立BFD 会话,只需把收到的echo报文转发回本端。

  当 BFD 会话工作于echo 报文方式时,仅支持单跳检测,并且不受检测模式的控制。

  ② 控制报文方式

  链路两端通过周期性发送控制报文建立 BFD 会话,对链路进行检测。

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

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

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

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

  • 异步模式:设备周期性发送BFD 控制报文,如果在检测时间内没有收到对端发送的BFD 控制报文,则认为会话down。

  • 查询模式:设备周期性发送 BFD 控制报文,但是对端(缺省为异步模式)会停止周期性发送BFD 控制报文。如果通信双方都是查询模式,则双方都停止周期性发送BFD 控制报文。当需要验证连接性的时候,

  设备会以协商的周期连续发送几个P 比特位置1 的BFD 控制报文。如果在检测时间内没有收到返回的报文,就认为会话down;如果收到对方回应的F 比特位置1的报文,就认为连通,停止发送报文,等待下一次触发查询。

  另外,也可以链路两端通过发送控制报文建立和保持BFD 会话,任意一端通过发送echo 报文检测链路状态。

2. BFD支持的应用

  静态路由、RIP、OSPF、IS-IS、BGP、Track、以太网链路聚合,上述均可与BFD实行联动。

  注:三层聚合接口/子接口和三层以太网子接口不支持与BFD 功能联动。

3.配置命令

  bfd echo-source-ip x.x.x.x:配置echo报文源IP地址,为了避免对端发送大量的ICMP重定向报文造成网络拥塞,建议不要将echo报文的源IP地址配置为属于该设备任何一个接口所在网段。

  端口下,bfd min-echo-receive-interval  xx:配置接收echo报文的最小时间间隔。缺省情况下,接收echo报文的最小时间间隔为400毫秒。

  端口下,bfd detect-multiplier xx:配置单跳BFD检测时间倍数。缺省情况下,单跳BFD检测时间倍数为5。

  display bfd session:显示BFD会话信息

  reset bfd session statistics:清除BFD会话统计信息

看看天上,于是我去了满是风雪的地方
原文地址:https://www.cnblogs.com/xinghen1216/p/15020121.html