概述
BFD检测技术
bridrectional forwarding detection 双向转发检测技术
背景:减小链路,设备故障带来的影响,通过检测技术进行监管
传统检测:
- 硬件->快速发现,但是通用性不强,比如:这个设备不兼容
- hello包->应用普遍,但是收敛慢
bfd是及于优点于一身,既可以发现链路故障,网络的可达性,又可以发现传输层连接状态,应用层的协议状态
bfd本身与介质,协议无关,他是一种机制,运用于协议之上
工作原理:
bfd本身没有检测和发现邻居的机制,只能通过路由协议来获得
ospf的邻居建立后,会把邻居信息发送给bfd,bfd会产生自己的会话表,bfd会检测链路上是否发生故障,一旦出现故障,会立刻把会话表状态变成down,并且在ospf感知到之前通知他,ospf会立刻中断连接
会话标识符:
如果bfd基于不同协议产生了很多会话,通过会话标识符进行区分
local discriminator 本地标识符
remote discriminator 对端标识符
会话建立方式:
手动配置:手工配置bfd的标识符,会话参数,手工发起请求
动态建立:通过应用程序触发,应用程序触发时,会自动分配一个local标识符,并且会发一个remote标识符到对端(remote=0)
对端收到remote=0后,会先判断bfd会话是否与自己匹配,若匹配则自动学习local标识符的值
bfd在协商完成后要进行commit提交,否则不会生效,并且生效后就不能再修改
状态机制:
down:初始状态
init:已经进入想要通信的状态,本段希望up
up:建立会话
admin down:会话别管理员down
三次握手:
报文结构:(使用组播地址224.0.0.184)
控制报文:单跳检测,目的时udp端口号为3784(直连),如果端口号是:3784,4784,说明链路是非直连
echo报文:单臂回声,目标端口号是:3785(对端不支持bfd协议)
bfd检测机制:
会话建立前:
主动模式:不管对方有咩有发送bfd控制报文,都会主动发送bfd控制报文
被动模式:不会主动发送,等待对端发送bfd控制报文
注意:双方要想建立连接,必须有一方处于主动模式
会话建立后:
查询模式:双方会周期性发送报文,若一定时间内没有收到,则认为链路故障
异步模式:双方会周期性发送报文,若连续几个都没有收到,则认为链路故障
bfd应用场景:
联动功能分为三个模块
检测模块:负责对链路,网络性能的检测
track模块:负责监控检测模块,一旦出现问题,立刻通知track模块
应用模块:根据track的结果,做出回应和改动
- 单跳:通过绑定接口,用组播地址224.0.0.118来探测
- 多跳:通过绑定ip地址
- 单臂回声:一方不支持bfd,不支持的一方通过回显发送方的echo报文,来告诉对方自己的状态
- 静态路由联动:因为静态路由没有状态检测机制,不向ospf有hello包,所以很难发现,通过和bfd的联动,根据bfd的up->down状态来判断
- 此外还可以和ospf,vrrp,bgp等协议联动
最后
以上就是机灵柜子为你收集整理的BFD检测技术的全部内容,希望文章能够帮你解决BFD检测技术所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复