BFD原理

bfd会话建立过程:

1)A、B两站启动BFD,各自初始状态为“down”,发送BFD报文携带状态为“down”;

2)B站收到状态为“down”的BFD报文,本地状态切换至“init”,发送BFD报文携带状态为“init”;

3)B站本地BFD状态为“init”后,再接收到状态为“down”的报文不做处理;

4)A站BFD状态变化过程同上;

5)B站收到状态为“init”的BFD报文,本地状态切换至“up”;

6)A站在BFD状态变化过程同上;

7)A、B两站在发生“down=>init”变化后,会启动一个超时定时器,该定时器的作用是防止本地状态阻塞在“init”(有可能AB连接此时断连,会话不能正常建立),如果在规定的时间内仍未收到状态为“init/up”的BFD报文,则状态自动切换回“down”;

8)本地状态UP标志会话建立成功。


/**************************************************************************************/

* 检测范围包括接口、数据链路以及转发引擎本身。


* bfd控制报文采用udp封装,目的端口号3784,源端口号在49152到65535的范围内。


bfd回声报文(echo)采用udp封装,目的端口号为3785,目的ip地址为发送接口的ip地址(本端

ip),源ip地址由配置产生。

1.png

* bfd报文结构

2.png

3.png

4.png


* bfd有两种工作模式和一种辅助功能

异步模式:交互bfd控制包,检测时间内收不到则宣布down;

查询模式:协议沉默,除非系统显式验证连续性,会发一个短系列的bfd控制包,在检测时间内收

到则继续沉默,收不到则宣布down;

回声功能:本地发送一系列的bfd回声报文,远端系统通过它的转发通道将它们环回回来,如果本

地连续几个回声报文没有收到,会话就会宣布down。

* bfd状态机


5.jpg

* bfd慢启动

协商过程中bfd下dpm动作有三次:第一次是创建会话时候下dpm获得yid,第二次是会话up的时候下dpm更新bfd状态,up后处于慢协商状态,1s钟一个包,第三次是up后5秒钟下dpm更新时间参数,此时fpga发包间隔从1s钟改为10ms(或者业务配置的发包间隔)

* bfd反向会话

对于一些单向的场景(我司lsp tunnel),bfd的控制报文第一个封装在ping包中(icmp的tlv)发出去,对端收到后创建反向会话,并发协商报文,然后两端走正常的协商流程。


BFD

<< 上一篇

VRRP技术详解

下一篇 >>

华为BFD和NQA的简单配置

版权声明

除非注明,文章均由 有意思吧 整理发布,欢迎转载。

转载请注明本文地址:http://u148.cn/?id=20

相关文章

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。