我是靠谱客的博主 机灵柜子,最近开发中收集的这篇文章主要介绍BFD检测技术,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

BFD检测技术

bridrectional forwarding detection 双向转发检测技术
背景:减小链路,设备故障带来的影响,通过检测技术进行监管
传统检测:

  1. 硬件->快速发现,但是通用性不强,比如:这个设备不兼容
  2. 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的结果,做出回应和改动

  1. 单跳:通过绑定接口,用组播地址224.0.0.118来探测
  2. 多跳:通过绑定ip地址
  3. 单臂回声:一方不支持bfd,不支持的一方通过回显发送方的echo报文,来告诉对方自己的状态
  4. 静态路由联动:因为静态路由没有状态检测机制,不向ospf有hello包,所以很难发现,通过和bfd的联动,根据bfd的up->down状态来判断
  5. 此外还可以和ospf,vrrp,bgp等协议联动

最后

以上就是机灵柜子为你收集整理的BFD检测技术的全部内容,希望文章能够帮你解决BFD检测技术所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部