BFD(双向转发检测)原理概述

介绍:本文通过学习华为官方文档-BFD技术对相关概念进行概述及总结。若有兴趣学习其他技术可自行访问华为官网获取相关文档。以下为个人的理论理解,如有错误欢迎指出。

概述:是一种全网统一的检测机制,用于快速检测,监控网络中链路或者IP路由的转发连通情况,提供 一个通用的标准化的与传输介质无关(通用)的检测机制(是一种不同协议都通用的hello报文,适用于拓扑复杂且多协议的大型网络)

背景:网络故障时要求网络设备能够快速的检测出故障,加快网络的收敛速度,目前有些链路具备硬件检测机制来实现快速故障检测(有钱直接上省时省力),但有些链路并不具备该能力,这种情况只能通过上层协议自身的机制来进行故障检测,但是大部分协议如OSPF,BGP等,检测故障的时间都较长,而且这些检测能力只针对本协议有效,无法为其他协议提供检测,这样对于某些收敛速度,实时性要求较高的业务或应用,比如音频,视频等是无法接受的(对客户而言加载太久)

原理:

1.BFD在两台网络设备之间建立会话,用来检测网络设备之间的双向转发路径(物理链路,逻辑链路,隧道等),为上层引用服务

2.会话建立后周期性快速发送BFD报文,如果在检测时间内没有收到BFD报文和认为该双向转发路径出现故障,通知服务的上层应用进行相应处理

BFD报文:BFD报文在传输层通过UDP进行封装,对于单跳检测端口号为3784,多跳检测端口号为3784或4784

BFD报文分为两个部分:强制部分(必须携带)和可选认证字段部分

强制部分:

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

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

Sta:BFD本地状态。

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

F:响应P标志置位的回应报文中必须将F标志置位。

C:转发/控制分离标志,一旦置位,控制平面的变化不影响BFD检测。

A:认证标识,置1代表会话需要进行验证。

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

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

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

Length:报文长度,单位为字节。

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

Your Discriminator:BFD会话连接远端标识符(Remote Discriminator) 。从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”,如果不知道这个值就返回0。

Desired Min TX Interval:本地支持的最小BFD报文发送间隔。

Required Min RX Interval:本地支持的最小BFD报文接收间隔。

Required Min Echo RX Interval:单臂回声,本地支持的最小Echo报文接收间隔,单位为微秒(如[huawei-bfd-session-name] min-echo-rx-interval 100

果本地不支持Echo功能,则设置0)

BFD会话建立方式:

1.静态BFD:是通过管理员手工添加对端的邻居信息来创建会话,静态BFD配置后,会定时发送BFD报文,只有对端接口也开启了BFD会话的情况下并对本端BFD报文做出正确的响应(比较参数来判定,不正确则丢弃,具体如下),双方才会建立邻居关系

2.动态BFD:BFD协议本身不具备邻居发现机制,BFD邻居的建立依赖上层协议,可以通过上层应用(如OSPF等)的邻居发现机制,由上层应用将邻居信息发送到BFD模块,BFD则根据收到的邻居信息建立会话,并建立自己的邻居

BFD会话状态(建立过程):

Down:会话处于down状态或刚刚创建BFD,一个会话会维持在down,直到收到对端发送的down/init包,则将状态进行对应的迁移

Init:处于此状态表示正在与对端进行通信,并且本地会话期望进入up状态,但是还没有收到对端的回应,一个init状态的会话会维持在init,直到收到对端的init/up包,将状态迁移至up

up:在此状态下表示会话建立成功,会话将会保持在此状态直到链路故障或管理down操作,如果收到远端down包或在检测时间超时,会话便会从up状态迁移回down

admindown(管理down):在此状态下意味着会话是被管理员操作配置down的,这会导致远端(对端)会话进入down状态并一直保持在down状态直到退出管理down,此操作导致的该状态并不代表链路故障等情况,是管理员手工操作down

BFD检测模式:异步检测和查询检测

BFD检测时间计算:

BFD缺省时间参数:

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

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

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

缺省的BFD报文的发送/接收时间间隔为1000毫秒,本地检测倍数为3倍,BFD会话等待恢复时间0S,会话延迟up时间0S

协商参数:

本地BFD报文实际发送时间间隔=MAX { 本地配置的发送时间间隔,对端配置的接收时间间隔 }

本地BFD报文实际接收时间间隔=MAX { 对端配置的发送时间间隔,本地配置的接收时间间隔 }

本地BFD报文实际检测时间:

异步模式:本地BFD报文实际检测时间=本地BFD报文实际接收时间间隔×对端配置的BFD检测倍数

查询模式:本地BFD报文实际检测时间 = 本地BFD报文实际接收时间间隔×本端配置的BFD检测倍数

异步检测:系统之间周期性发送BFD控制报文,某个系统在检测时间内没有收到对端发送的BFD报文,则会话down

查询检测:在需要验证连接性的情况下(按需发送检测),系统连续发送多个BFD报文,在检测时间内没有收到回应的BFD报文,则会话down

3.BFD Echo(单臂回声):提供了一种不依赖BFD控制报文的故障检测方式,本端发送本端接收,远端不对报文进行处理,而只是将此报文在反向通道上返回,因此BFD协议并未对BFD echo报文做定义,唯一的要求是发送方能够通过报文的内容区分会话,BFD Echo报文也采用UDP进行封装,传输层端口号为3785,目的IP地址为支持BFD那一方发送了BFD报文的接口的IP地址,源IP地址由配置产生

使用场景:一端支持BFD,另一端不支持BFD功能的情况

[huawei] bfd session-name bind peer-ip ip-address(这里的IP地址配对端的) [ vpn-instance vpn-name ] interface interface-type interface-number [ source-ip ip-address ] one-arm-echo

[huawei-bfd-session-name] min-echo-rx-interval 100

BFD与协议联动(联动功能):

响应层次出现故障 ---->被BFD检测模块检测---->通过track模块告知上层应用---->上层应用进行处理(静态,OSPF,BGP,VRRP等协议)

BFD和静态联动:静态路由本身并不具备故障检测能力,需要配合BFD进行联动,由BFD感知故障,并与静态进行Track绑定(BFD感知故障后,通过Track模块告知上层协议,也就是静态链路出现故障,实现静态路由的故障切换)

BFD与OSPF的联动

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以帮你写一份关于BFD双向转发检测)的概要设计文档。以下是一个参考的模板,你可以根据自己的项目需求进行修改和补充。 1. 引言 1.1 目的 本文档旨在概述BFD双向转发检测)系统的设计和实现,以及其在网络中的应用。 1.2 背景 双向转发检测BFD)是一种网络协议,用于快速检测和通知网络中的链路故障。它能够提供较低的故障检测时间和更高的网络可靠性。 2. 系统概述 2.1 功能 - 实时监测网络链路状态 - 快速检测链路故障并通知相关设备 - 提供灵活的配置选项,以满足不同网络拓扑和需求 2.2 架构 BFD系统由以下组件组成: - BFD会话管理器:负责创建、维护和删除BFD会话 - BFD报文生成器:生成BFD控制报文并发送给其他设备 - BFD报文解析器:解析接收到的BFD控制报文并根据其内容进行相应处理 - 监控与通知模块:监控链路状态,并在检测到故障时通知相关设备 2.3 工作流程 - BFD会话管理器创建BFD会话,并与相邻设备进行协商 - BFD报文生成器发送周期性的BFD控制报文给相邻设备 - BFD报文解析器接收并解析相邻设备发送的BFD控制报文 - 监控与通知模块根据BFD报文解析结果监测链路状态,并在检测到故障时通知相关设备 3. 设计细节 3.1 BFD会话管理器设计 - 会话创建和删除机制 - 会话参数协商和同步机制 3.2 BFD报文生成器设计 - 生成BFD控制报文的格式和内容 - 控制报文发送机制和频率 3.3 BFD报文解析器设计 - 解析BFD控制报文的格式和内容 - 根据解析结果进行相应处理(如状态更新、故障检测) 3.4 监控与通知模块设计 - 监测链路状态的机制和算法 - 故障检测和通知机制 4. 实施计划 4.1 开发阶段划分与时间安排 4.2 测试计划与方法 4.3 部署计划与方法 5. 预期结果 5.1 功能实现 5.2 性能指标达到预期要求 5.3 系统稳定性和可靠性得到验证 这份概要设计文档提供了一个关于BFD系统的整体设计框架和工作流程,你可以根据实际情况进行修改和补充。希望对你有所帮助!如果还有其他问题,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值