BFD — 双向转发检测协议概述

BFD — 双向转发检测协议概述文章目录一 BFG 产生背景二 BFD 概述三 BFD 运行原理 1 BFD 会话建立 2 会话状态 3 BFD 检测模式 4 BFD 检测时间 5 BFDEcho 功能 6 联动功能简介一 BFG 产生背景我们清楚 相邻

大家好,欢迎来到IT知识分享网。

一、BFG产生背景

我们清楚,相邻硬件设备间可以感知到系统是否发生异常,而非相邻硬件检测故障通常是采用交互协议来检测网络故障例如Hello报文。但是这种交互报文检测时间间隔较长,就拿Hello报文来说,检测时间就超过一秒钟,假如传输的数据是GB/s时,在这短短的一秒,一部电影都丢失完了。以上还是可以感知到发生故障,但是如果是静态路由呢,非相邻设备根本没有交互报文检测功能,这是就会产生流量黑洞
出现问题则解决问题,BFD(Bidirectional Forwarding Detection -双向转发检测),就是为我们提供了一个通用的、标准的并且和介质、协议无关单纯的快速故障检测机制,这个协议的作用就是为了检测部署BFD中间链路转发连通状态。

二、BFD概述

BFD(Bidirectional Forwarding Detection -双向转发检测),就是为我们提供了一个通用的、标准的并且和介质、协议无关单纯的快速故障检测机制,它具有以下优点:

  • 报文很小,链路负担很轻
  • 不受任何介质的影响
  • 不受任何协议的影响
  • 在TCP/IP五层间都可以应用

三、BFD运行原理

BFD原理就是在两个系统/设备之间建立一个BFD会话通道,并且连续不断周期性的互相发送BFD检测报文(放心 报文很小),双方有一方在规定时间内没有接收到对端的检测报文就认为这个通道途径的某个部分出现了故障,就会将该通道关闭,并执行删去路由、减少/增加路径优先级等操作,保障流量重新迅速不间断转发

1.BFD会话建立

在这里插入图片描述
会话建立主要分为静态建立BFD会话和动态建立BFD会话两种方式,BFD主要是通过报文中本地标识符和远端标识符来区分不同的会话。

  • 静态建立BFD会话:就是手动对两个系统分别配置本地标识符和远端标识符,注意一系统的本地标识符一定要与另一系统的远端标识符相同
  • 动态建立BFD会话:本地标识符由系统自动分配远端标识符统一为0向外发送,当其他系统看到由远端为0的报文发过来后,会检测是否和自己处于同一个会话通道属于的话就进行学习报文中的本地标识符作为本系统的远端标识符

2.会话状态

在这里插入图片描述
状态机的建立和拆除都采用三次握手的机制,保证两端系统都可以直到状态的变化,接下来我来解读一下。

  • Down状态:收到down状态就变为init状态,收到init状态就直接变为up状态 — 收到比自己高的状态就在收到状态基础上增加一层。
  • Iinit状态:收到down状态保持不变(只接受比自己等级高的),收到init或者up状态就直接变为up。 — 收到状态比自己低级的就保持不变,收到等级或者高级就向上增加一层。
  • Up状态:收到init或者up就保持不变。 — 收到低级或者等级保持不变(down除外)。
  • 无论是init还是up状态只要是收到timer状态就直接变为down状态(因为对端无反应)。

3.BFD检测模式

在这里插入图片描述

  • 异步模式:按照一定规律周期定期发送,已保证会话状态的连通性。
  • 查询模式(蝙蝠雷达):向对端连续发送多个控制包,看是否可以得到回应。 — 一般用在对运营商系统的检测

4.BFD检测时间

在这里插入图片描述

  • 本地BFD报文实际发送时间间隔=MAX { 本地配置的发送时间间隔,对端配置的接收时间间隔 }
  • 本地BFD报文实际接收时间间隔=MAX { 本地配置的接收时间间隔 ,对端配置的发送时间间隔}
    肯定要取最大值,就好比有一个活,A干完需要两天,B干完需要三天,我们设置发送时间(工期)就要取最大值也就是三天。
    本地BFD报文实际检测时间:
  • 异步模式:本地BFD报文实际检测时间=本地BFD报文实际接收时间间隔×对端配置的BFD检测倍数
  • 查询模式:本地BFD报文实际检测时间 = 本地BFD报文实际接收时间间隔×本端配置(因为不知道对端配置 哈哈哈 )的BFD检测倍数
    注:BFD报文发送间隔默认1000毫秒,接受间隔默认1000毫秒,本地检测倍数3次

5.BFD Echo功能

在这里插入图片描述
.BFD Echo功能可以理解为蝙蝠发超声波探路,可以对其中一方不可以使用BFD功能或者其中一方不愿意和你建立BFD会话时使用。不支持BFD功能的设备收到报文后直接将其环回,从而使另外一方收到回复,达到检测链路连通性的目的。

6.联动功能简介

在这里插入图片描述

  • 监测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块 。
  • Track模块收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。
  • 应用模块根据Track项的状态,进行相应的处理,从而实现联动。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/148820.html

(0)
上一篇 2025-03-28 14:33
下一篇 2025-03-28 14:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信