BFD协议原理

news2025/8/7 19:12:00

BFD协议原理

    • 引入背景
    • 不使用BFD带来的问题
      • OSPF感知慢
      • VRRP产生次优路径
    • BFD技术简介
    • BFD会话建立方式和检测机制
    • BFD会话建立过程
    • BFD工作流程
    • BFD的单臂回声
    • BFD默认参数以及调整方法
    • 总结

引入背景

随着网络应用的广泛部署,网络发生中断可能影响业务正常运行并造成重大损失。为了减小链路、设备故障对业务的影响,提高网络的可靠性,网络设备需要尽快检测到与相邻设备间的通信故障,以便及时采取措施,保证业务正常进行。
双向转发检测BFD(Bidirectional Forwarding Detection)提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。

不使用BFD带来的问题

OSPF感知慢

请添加图片描述
现在SWB和SWC之间的链路断裂了,设备环境是OSPF,广播状态下Hello时间是10s,Dead时间是40s,如果要等待40s,那时间就太长了。

VRRP产生次优路径

请添加图片描述
在这里如果不使用BFD可能会导致数据丢包,但是开启BFD之后可以快速切换链路。

BFD技术简介

一种全网统一、检测迅速、监控网络中链路或者IP路由的双向转发连通状况,并为上层应用提供服务的技术。
请添加图片描述

BFD会话建立方式和检测机制

请添加图片描述
分别在本段和对端设置标识符,相互进行设置,然后周期性的发送消息即可。

BFD会话建立过程

请添加图片描述
首先都是在Down状态,然后向对端发送消息,包含自身的Down状态,收到对端含有Down状态的信息之后,就会变为Init状态,当在Init状态收到对端含有Init状态的信息之后就会变为UP状态,然后再进行后续的转发。

BFD工作流程

请添加图片描述

  • OSPF邻居建立->BFD会话建立
  • 链路故障->BFD会话Down->OSPF邻居关系中断

BFD的单臂回声

请添加图片描述
当对端设备不支持BFD的时候,可以开启BFD的单臂回声功能,就好像蝙蝠一样,也就是本应发送给对端的消息,现在发送给了自己,只要自己能够持续的收到自己发送的BFD消息,就可以证明是没有问题的。

BFD默认参数以及调整方法

请添加图片描述

总结

说白了,BFD就是可以和各种各样的协议进行联动,加快感知故障,为什么是BFD呢?因为它独特的机制,毫秒级的收敛,可以加快其它协议的收敛速度,加快感知链路故障,可以算是协议的一个附属品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/393985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git开发常用指令及其使用场景

目录前言一、Git安装1.1 官网安装二、配置Git工具2.1 用户信息配置2.2 查看配置三、初始化仓库3.1 创建仓库四、常用命令4.1 git clone拉取远端仓库4.2 git分支操作4.2.1 查看分支4.2.2 分支操作4.3 撤回操作4.3.1 撤回删错的分支4.3.2 撤回提交4.3 拉取代码操作4.4 贮存操作五…

ChatGPT也有犯晕的时候

前面测试 ChatGPT 进行写代码、优化代码、解释代码、一般问答都表现的很好。偷个懒,用ChatGPT 帮我写段生物信息代码如果 ChatGPT 给出的的代码不太完善,如何请他一步步改好?代码看不懂?ChatGPT 帮你解释,详细到爆&…

详解Redis的主从同步原理

前言 Redis为了保证服务高可用,其中一种实现就是主从模式,即一个Redis服务端作为主节点,若干个Redis服务端作为主节点的从节点,从而实现即使某个服务端不可用时,也不会影响Redis服务的正常使用。本篇文章将对主从模式…

asp.net网站读取app.config配置内容

目录1、情况说明1.1 使用场景1.2 基本概念2、优化1、情况说明 1.1 使用场景 创建了一个网站(项目A),又创建了一个访问数据的项目B。项目A因为是个网站,所有会有web.config文件。项目B是一个读取数据库的类库,会有一个…

小樽C++ 单章④ 字符数组与字符串

目录 一、字符与数组 1.求字符数组的长度 2.查找单词 二、字符串与数组 2.1 字符串倒序输出 2.2 字符串比较 2.3 大写字母输出 ​编辑 三、字符串常用函数 一、初始化字符串: 二、字符串操作:(增删改查) 三、截取与替换字符串 四、替换字符串…

从0开始学python -48

Python MySQL - mysql-connector 驱动 MySQL 是最流行的关系型数据库管理系统,如果你不熟悉 MySQL,可以先学习 MySQL 教程。 本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL, mysql-connector 是 MySQL 官方提供的驱动器。 我…

DoubleAccumulator 源码详解

DoubleAccumulator 简介 这个类是新增的并发统计工具,可以多线程安全计数。 他的构造方法有两个参数,分别是统计方法和初始值。所以具体的统计是加减乘除是由传入的操作方法决定的。 public DoubleAccumulator(DoubleBinaryOperator accumulatorFunct…

​力扣解法汇总1599. 经营摩天轮的最大利润

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 你正在经营一座摩天轮,该摩天轮共有 4 个座舱 ,每个座舱…

Kubernetes调度之Pod亲和性

Kubernetes调度中的Pod亲和性abstract.pngPod亲和性节点亲和性,是基于节点的标签对Pod进行调度。而Pod亲和性则可以实现基于已经在节点上运行Pod的标签来约束新Pod可以调度到的节点。具体地,如果X上已经运行了一个或多个满足规则Y的Pod,则这个…

在ubuntu上(docker虚拟环境)部署完laravel的环境后如何运行一个基础的laravel项目

先测试laravel有没有安装成功 laravel如果报laravel command not found,先测试是否安装成功 find / -name laravel出现结果: 说明已经安装成功只是没有配环境变量 要么进这些文件夹测试那个路径下有真的laravel可执行文件,要么每个分别配置…

MCP2515国产替代DP2515带有SPI 接口的独立CAN 控制器

DP2515是一款独立控制器局域网络(Controller AreaNetwork, CAN)协议控制器,完全支持CAN V2.0B 技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。DP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的…

图像处理--基于像素层面

python 图像锐化 图像锐化可以使图像的边缘更加清晰,增强图像的细节。常见的图像锐化算法有拉普拉斯算子、Sobel算子、Prewitt算子等。下面是使用拉普拉斯算子实现图像锐化的Python代码: import cv2 import numpy as npdef laplacian_sharpen(img, ksi…

MySQL日志文件

文章目录1.MySQL中的日志文件2.bin log的作用3.redo log的作用4.bin log和redo log的区别(1)存储的内容(2)功能(3)写入时间(4)写入方式5.两阶段提交6.undo log的作用1.MySQL中的日志…

springcloud3 fegin实现服务调用1

一 Fegin的作用 1.1 fegin的作用 fegin是一个声明式的web服务客户端,让编写web服务器客户端变得非常容易,只需创建一个接口并在接口中添加FeginClients注解即可。 Fegin的使用方式:使用fegin的注解定义接口,调用这个接口&#…

BI软件工具也有ChatGPT

ChatGPT最近大火,朋友圈、聊天群啊到处都在分享它、讨论它。我也凑了个热闹,先和它聊了一下孩子学习上的困惑,然后用它给孩子出了一套易错题型的练习题,缓解了我做为熊孩子家长的压力。ChatGET能做的可不止这些,还能写…

MTK平台开发入门到精通(休眠唤醒篇)休眠唤醒LPM框架

文章目录 一、lpm驱动源码分析二、设备属性调试文件沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍 lpm 驱动源码分析。 mtk 平台下,其默认的 lpm 机制的源码位置:drivers/misc/mediatek/lpm/ 一、lpm驱动源码分析 目录:drivers/misc/mediatek/lpm/…

aardio 编程语言

今天看到一篇文章《独自坚持 17 年,aardio 作者:“因妻子患癌,再无精力维护项目”》,才知道有个这个项目,也算是很有情怀的一个开发者,对程序有着真挚的热忱,aardio 🔊 专注于桌面软…

Unity Avatar Cover System - 如何实现一个Avatar角色的智能掩体系统

文章目录简介变量说明实现动画准备动画状态机State 状态NoneStand To CoverIs CoveringCover To Stand高度适配高度检测脚部IK简介 本文介绍如何在Unity中实现一个Avatar角色的智能掩体系统,效果如图所示: 初版1.0.0代码已上传至SKFramework框架Package…

数据库系统-关系模式

二、DB的抽象与演变 2.1 DB的标准结构 DBMS管理数据的三个层次 ● (局部模式)Entrenal Level 外部层次 User Level 用户层次 ○ 用户能够看到雨处理的数据,全局数据中的某一部分 ● (全局模式)Conceptual Level 概念层次 Logic Level 逻辑层次 ○ 从全局角度理解…

【Linux】编译器gcc g++和调试器gdb的使用

文章目录1.编译器gcc/g1.1C语言程序的翻译过程1.预处理2.编译3.汇编4. 链接1.2 链接方式与函数库1.动态链接与静态链接2.动态库与静态库1.3 gcc与g的使用2.调试器gdb2.1debug和release2.2gdb的安装2.3gdb的使用2.4gdb的常用指令3.总结1.编译器gcc/g 1.1C语言程序的翻译过程 1…