首页 > 其他分享 >02、BFD原理描述

02、BFD原理描述

时间:2024-04-15 17:48:53浏览次数:22  
标签:02 发送 BFD 报文 Down 会话 标识符 描述

BFD原理描述

介绍BFD的实现原理。

原理简介

BFD在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。BFD本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。下面以OSPF与BFD联动为例,简单介绍会话工作流程。

图1 BFD会话建立流程图

上图所示是一个简单的网络组网,两台设备上同时配置了OSPF与BFD,BFD会话建立过程如下所示:

  1. OSPF通过自己的Hello机制发现邻居并建立连接。

  2. OSPF在建立了新的邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD。

  3. BFD根据收到的邻居信息建立会话。

  4. 会话建立以后,BFD开始检测链路故障,并做出快速反应。

图2 BFD故障发现处理流程图

如上图所示:

  1. 被检测链路出现故障。

  2. BFD快速检测到链路故障,BFD会话状态变为Down。

  3. BFD通知本地OSPF进程BFD邻居不可达。

  4. 本地OSPF进程中断OSPF邻居关系。

BFD会话建立方式

BFD会话的建立有两种方式,即静态建立BFD会话和动态建立BFD会话。静态和动态创建BFD会话的主要区别在于本地标识符(Local Discriminator)和远端标识符(Remote Discriminator)的配置方式不同。BFD通过控制报文中的Local Discriminator和Remote Discriminator区分不同的会话。

  • 静态建立BFD会话

    静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。

  • 动态建立BFD会话

    动态建立BFD会话时,系统对本地标识符和远端标识符的处理方式如下:

    • 动态分配本地标识符

      当应用程序触发动态创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。

    • 自学习远端标识符

      当BFD会话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。

BFD检测机制

BFD的检测机制是两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障。

BFD提供异步检测模式。在这种模式下,系统之间相互周期性地发送BFD控制报文,如果某个系统连续几个报文都没有接收到,就认为此BFD会话的状态是Down。

BFD会话管理

BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变。BFD状态机的建立和拆除都采用三次握手机制,以确保两端系统都能知道状态的变化。以BFD会话建立为例,简单介绍状态机的迁移过程。

图3 BFD会话建立流程图

  1. SwitchA和SwitchB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;对于动态创建BFD会话,Remote Discriminator的值是0。

  2. SwitchB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。

  3. SwitchB本地BFD状态为Init后,不再处理接收到的状态为Down的报文。

  4. SwitchA的BFD状态变化同SwitchB。

  5. SwitchB收到状态为Init的BFD报文后,本地状态切换至Up。

  6. SwitchA的BFD状态变化同SwitchB。

BFD协议报文

BFD协议报文的格式如图4所示。

图4 BFD协议报文的格式

字段

长度

含义

Vers (Version)

3 bits

BFD协议版本号,目前为1。

Diag (Diagnostic)

5 bits

诊断字,标明本地BFD系统最近一次会话状态发生变化的原因。

  • 0:表示无诊断信息。

  • 1:表示检测时间超时。
  • 2:表示Echo功能失效。
  • 3:表示邻居会话Down。
  • 4:表示转发面复位。
  • 5:表示路径Down。
  • 6:表示级联路径Down。
  • 7:表示AdminDown。
  • 8:表示反向级联路径Down。
  • 9-31:表示预留后续使用。

Sta (State)

2 bits

BFD本地状态:

  • 0:表示管理状态Down。
  • 1:表示运行状态Down。
  • 2:表示初始状态。
  • 3:表示正常UP状态。

P (Poll)

1 bit

参数发生改变时,发送方在BFD报文中置位该标志,接收方必须立即响应该报文。

  • 0:表示发送系统不请求确认。

  • 1:表示发送系统请求进行连接确认,或者发送请求参数改变的确认。

F (Final)

1 bit

是否发送响应P标志置位的回应报文由F标志的置位状态决定。

  • 0:表示发送系统不响应一个P比特为1的包。

  • 1:表示发送系统响应一个接收到P比特为1的BFD包。

C (Control Plane Independent)

1 bit

转发/控制分离标志,一旦置1,控制平面的业务状态变化不影响BFD检测,如:控制平面为IS-IS,当IS-IS平滑重启(GR)时,BFD可以继续监测链路状态。

  • 0:通过对比本端与对端的C bit位,二者不都为1,表示BFD报文在控制平面传输。这种情况下,GR期间BFD检测往往会误down,其结果是不可信的,业务不需要进行响应。

  • 1:通过对比本端与对端的C bit位,二者都为1,表示发送系统的BFD实现不依赖于控制平面,BFD报文在转发平面传输,即使控制平面失效,BFD仍然能够起作用。这种情况下,GR期间BFD检测down是可信的,业务将响应down消息并改变拓扑和路由,避免流量丢失。

A (Authentication Present)

1 bit

认证标识。

  • 0:表示会话不需要进行验证。
  • 1:表示会话需要进行验证。

D (Demand)

1 bit

查询请求,置位代表发送方期望采用查询模式对链路进行监测。

  • 0:表示发送系统不希望、或不能工作在查询模式。

  • 1:表示发送系统希望工作在查询模式。

M (Multipoint)

1 bit

为BFD将来支持点对多点扩展而设的预留位。

Detect Mult

8 bits

检测超时倍数,用于检测方计算检测超时时间。

  • 查询模式:采用本地检测倍数。

  • 异步模式:采用对端检测倍数。

Length

8 bits

报文长度,单位为字节。

My Discriminator

32 bits

BFD会话连接本地标识符。发送系统产生的一个唯一的、非0鉴别值,用来区分一个系统的多个BFD会话。

Your Discriminator

32 bits

BFD会话连接远端标识符。

  • 0:未知。
  • Non-0:从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”。

Desired Min TX Interval

32 bits

本地支持的最小BFD报文发送间隔,单位为毫秒。

Required Min RX Interval

32 bits

本地支持的最小BFD报文接收间隔,单位为毫秒。

Required Min Echo RX Interval

32 bits

本地支持的最小Echo报文接收间隔,单位为毫秒(如果本地不支持Echo功能,则设置0)。

 

标签:02,发送,BFD,报文,Down,会话,标识符,描述
From: https://www.cnblogs.com/laixufei/p/18136580

相关文章

  • 02、VRRP概述
    VRRP概述如图1所示,HostA通过Switch双归属到SwitchA和SwitchB。在SwitchA和SwitchB上配置VRRP备份组,对外体现为一台虚拟路由器,实现链路冗余备份。图1 VRRP备份组示意图我们可以在如图1所示的网络中部署VRRP协议,下面结合该图介绍VRRP协议的基本概念: VRRP路由器(VRRPRout......
  • 2024小学组AHOI赛后题解
    观看建议调成浅色模式(右下角图标)写前扯一下这次省赛可谓是人才辈出啊。结束前一个半小时就交卷,可见这次考试的难度。后我问他们是不是很有信心AKXX:做了前两题,后两题崩溃了。。。好吧,其实第三题没那么难,不过AK的真没有,听说没有一个人做对。接下来带大家看看这几题。(记得,看......
  • 01、BFD简介
    BFD简介介绍BFD的定义和作用。定义双向转发检测BFD(BidirectionalForwardingDetection)是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。目的为了减小设备故障对业务的影响,提高网络的可靠性,网络设备需要能够尽快检测到与相邻设备间的通......
  • Windows网络桥接:事件无法调用任何订户 (异常来自 HRESULT:0x80040201)异常处理
    开发Windows网络桥接使用接口Com组件:Interop.NETCONLib。设置成X64位时调用EnableSharing。出现一下异常System.Runtime.InteropServices.COMException(0x80040201):事件无法调用任何订户(异常来自HRESULT:0x80040201)在NETCONLib.INetSharingConfiguration.EnableSharin......
  • 02、可靠性技术
    可靠性技术通过提高MTBF或降低MTTR都可以提高网络的可靠性。在实际网络中,各种因素造成的故障难以避免,因此能够让网络从故障中快速恢复的技术就显得非常重要。下面的可靠性技术主要从降低MTTR的角度,为满足第3级别的可靠性需求来提供技术手段。可靠性技术的种类繁多,我们根据其解......
  • 04、NSR原理描述
    NSR原理描述介绍NSR的实现原理。 相关概念HA(HighAvailability):高可靠性/高实用性的简称,这里指主备板间的备份通道。NSF(Non-StopForwarding):不间断转发。NSR(Non-StopRouting):不间断路由,是一种在系统控制平面发生故障且存在备用控制平面的场景下邻居控制平面不感知的技术......
  • 02、M-LAG的基本概念
    M-LAG的基本概念如图1所示,用户侧设备Switch(可以是交换机或主机)通过M-LAG机制与另外两台设备(SwitchA和SwitchB)进行跨设备链路聚合,共同组成一个双活系统。这样可以实现SwitchA和SwitchB共同进行流量转发的功能,保证网络的可靠性。图1 M-LAG基本拓扑下面介绍下M-LAG涉及的相关......
  • 13、BGP与BFD联动
    BGP与BFD联动BGP协议通过周期性的向对等体发送报文来实现邻居检测机制。但这种机制检测到故障所需时间比较长,超过1秒钟。当数据的传输速度达到Gbit/s级别时,这种机制的检测时间将导致大量数据丢失,无法满足网络高可靠性的需求。BGP与BFD(BidirectionalForwardingDetection)联动可......
  • 02、BGP工作原理
    BGP工作原理BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和5个原则。BGP的报文BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:Open报文:用于建立BGP对等体连接。Update报文:用于在对等体之间交换路由信息。......
  • 2024 Apr. 一轮省集
    Day04.2在学校摆了一上午,中午十二点出发去烟台了。居然还是去省选的那辆小车,坐起来很难受,很挤,闷得慌;靠背还没有头枕,睡觉久了脖子疼。总之就是很难受。四个小时左右到了,宾馆反正120一天,环境就那样吧。学校离着就300多米,走路就到了。刚到第一件事当然是打开美团外卖,上面弹出......