我是靠谱客的博主 清新鸵鸟,最近开发中收集的这篇文章主要介绍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地址由配置产生。











* bfd报文结构




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

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

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

回声功能:本地发送一系列的bfd回声报文,远端系统通过它的转发通道将它们环回回来,如果本
地连续几个回声报文没有收到,会话就会宣布down。


* bfd状态机


* bfd慢启动

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

* bfd反向会话

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

最后

以上就是清新鸵鸟为你收集整理的BFD原理的全部内容,希望文章能够帮你解决BFD原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部