BFD (双向转发检测) 协议简介与开发

         之前开发的BFD协议,正好有空介绍一下协议基础内容以及开发时候的注意事项。内容分为如下

1. BFD背景简介

2. BFD特点

3. BFD报文格式

4. BFD 状态机处理

5. 开发注意事项

一. BFD背景简介

          为了保护关键应用,网络中会设计有一定的冗余备份链路,网络发生故障时就要求网络设备能够快速检测出故障并将流量切换至备份链路以加快网络收敛速度,减少故障时间。

二. BFD的特点

1. 提供了一种通用的标准化的介质无关和协议无关的协议,能够在网络设备间任意类型的双向转发路径进行故障检测。

2. 可以为不同的上层应用服务,提供一致的快速故障检测时间。

3. 微秒级的链路检测精度,减少应用中断时间,提高网络的可靠性。

三. BFD报文格式

各字段含义如下图:

 BFD报文

 如果报文加密的话,加密字段格式定义如下:

四. BFD 状态机处理

BFD协议状态机如下图:

初始建立会话前采用三次握手的方式:

5. 开发注意事项

1. BFD会话建立前BFD控制报文以1秒的时间间隔周期发送以减小报文流量。在会话建立后则以协商的时间间隔发送BFD控制报文以实现快速检测。在BFD会话建立的同时,BFD控制报文发送时间间隔以及检测时间也会通过报文交互协商确定。在BFD会话有效期间,这些定时器可以随时协商修改而不影响会话状态。BFD会话不同方向的定时器协商是分别独立进行的,双向定时器时间可以不同。

2. BFD控制报文发送时间间隔为本端Desired Min TX Interval与对端Required Min RX Interval之中的最大值,也就是说比较慢的一方决定了发送频率。

3. 检测时间为对端BFD控制报文中的Detect Mult乘以经过协商的对端BFD控制报文发送时间间隔。

4. 如果加大本端Desired Min TX Interval,那么本端实际发送BFD控制报文的时间间隔必须要等收到对端F字段置位的报文后才能改变,这是为了确保在本端加大BFD控制报文发送时间间隔前对端已经加大了检测时间,否则可能导致对端检测定时器错误超时。BFD控制报文发送时间间隔为本端Desired Min TX Interval与对端Required Min RX Interval之中的最大值,也就是说比较慢的一方决定了发送频率。

5. 如果减小本端Required Min RX Interval,那么本端检测时间必须要等收到对端F字段置位的报文后才能改变,这是为了确保在本端减小检测时间前对端已经减小了BFD控制报文发送间隔时间,否则可能导致本端检测定时器错误超时。

6. 如果减小Desired Min TX Interval,本端BFD控制报文发送时间间隔将会立即减小;加大Required Min RX Interval,本端检测时间将会立即加大。

参考资料:

1. rfc 5880

2. kbfd(BFD的内核实现)

3. OpenBFDD(开源的BFD实现,可以直接在Linux上编译运行,测试对接)

4. OpenBFDD的安装与使用 

またね!

=============================================================================================

  • 3
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
当然可以帮你写一份关于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系统的整体设计框架和工作流程,你可以根据实际情况进行修改和补充。希望对你有所帮助!如果还有其他问题,可以继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值