【华为数据通信】BFD是什么?

一、概述

BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制,有以下两大优点:

  • 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。
  • 用单一的机制对任何介质、任何协议层进行实时检测。

BFD是一个简单的"Hello"协议。两个系统之间建立BFD会话通道,并周期性发送BFD检测报文,如果某个系统在规定的时间内没有收到对端的检测报文,则认为该通道的某个部分发生了故障。

二、BFD工作原理

报文结构

BFD检测是通过维护在两个系统之间建立的BFD会话来实现的,系统通过发送BFD报文建立会话。

BFD控制报文根据场景不同封装不同,报文结构由强制部分和可选的认证字段组成。

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

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

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

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

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

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

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

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

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

会话建立

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

会话状态

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

想要华为数通配套实验拓扑和配置笔记的朋友们点赞+关注,评论区留下邮箱发给你!

检测模式

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

检测时间

BFD会话检测时长由TX(Desired Min TX Interval),RX(Required Min RX Interval),DM(Detect Multi)三个参数决定。BFD报文的实际发送时间间隔,实际接受时间间隔由BFD会话协商决定。

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

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

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

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

BFD Echo功能

BFD Echo功能也称为BFD回声功能,是由本地发送BFD Echo报文,远端系统将报文环回的一种检测机制。

在两台直接相连的设备中,其中一台设备支持BFD功能(R1);另一台设备不支持BFD功能(R2),只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD功能的设备上创建单臂回声功能的BFD会话。支持BFD功能的设备主动发起回声请求功能,不支持BFD功能的设备接收到该报文后直接将其环回,从而实现转发链路的连通性检测功能。

三、BFD应用场景

静态路由与BFD联动

静态路由自身没有检测机制,如果静态路由存在冗余路径,通过静态路由与BFD联动,当主用路径故障时,实现静态路由的快速切换 。

静态路由与BFD联动应用广泛,如下图中R1是园区网的出口路由器,R1通过两条链路分别连接ISP1和ISP2,正常情况下默认路由经过的链路为指向ISP1的链路,当通往ISP1的链路出现故障的时候,BFD会话能够快速感知,并通知路由器将流量切换到指向ISP2的链路。

OSPF与BFD联动

OSPF在未绑定BFD的情况下,链路故障检测时间由协议Hello机制决定,通常是秒级。通过绑定BFD,可以实现毫秒级故障检测。

BFD与OSPF联动就是将BFD和OSPF协议关联起来, BFD将链路故障的快速检测结果告知OSPF协议。

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

四、BFD基本配置

创建BFD会话绑定信息,并进入BFD会话视图。

Huawei\] bfd session-name bind peer-ip ip-address \[ vpn-instance vpn-name \] interface interface-type interface-number \[ source-ip ip-address

创建使用组播地址作为对端地址的BFD会话,并进入BFD会话视图。

Huawei\] bfd session-name bind peer-ip default-ip interface interface-type interface-number \[ source-ip ip-address

创建BFD for IPv6的绑定信息,并进入BFD会话视图。

Huawei\] bfd session-name bind peer-ipv6 ip-address \[ vpn-instance vpn-name \] interface interface-type interface-number \[ source-ipv6 ip-address

创建静态标识符自协商BFD会话

Huawei bfd session-name bind peer-ip ip-address vpn-instance vpn-name interface interface-type interface-number source-ip ip-address auto

创建单臂Echo功能的BFD会话

Huawei bfd session-name bind peer-ip ip-address vpn-instance vpn-name interface interface-type interface-number source-ip ip-address one-arm-echo

配置BFD会话的本地标识符

Huawei-bfd-session-test discriminator local discr-value

配置BFD会话的远端标识符

Huawei-bfd-session-test discriminator remote discr-value

想要华为数通配套实验拓扑和配置笔记的朋友们点赞+关注,评论区留下邮箱发给你!

相关推荐
酉鬼女又兒12 分钟前
零基础入门计算机网络:网络层核心任务、三大关键问题、两种服务类型与 TCP/IP 网际层协议体系全解析
服务器·网络·网络协议·tcp/ip·计算机网络·php·求职招聘
祭曦念29 分钟前
鸿蒙原生ArkTS布局之RowStart垂直对齐详解
华为·harmonyos
Urbano34 分钟前
工装制作全流程科普:从面料到自动化生产
网络·人工智能
2401_8685347841 分钟前
网规笔记 | 真题解析:2018年11月软考网规-网络安全案例分析
网络
nashane1 小时前
HarmonyOS 6商城开发学习:抢票倒计时与系统日历提醒——票务类场景的完整落地思路
学习·华为·harmonyos
Gauss松鼠会1 小时前
【GaussDB】GaussDB重要通信参数汇总
服务器·网络·数据库·sql·性能优化·gaussdb·经验总结
●VON1 小时前
AtomGit Flutter鸿蒙客户端:主题系统
javascript·flutter·华为·跨平台·harmonyos·鸿蒙
yuegu7771 小时前
HarmonyOS应用<节气通>开发第17篇:意见反馈页面
华为·harmonyos
超级无敌zhq1 小时前
后渗透痕迹清理:攻防对抗中的隐身术
网络·数据库·网络安全
凡人叶枫1 小时前
Effective C++ 条款10:令 operator= 返回一个 reference to *this
java·linux·服务器·开发语言·c++·effective c++