48小时系统班试听入口

【网工技术详解】BFD协议原理和配置

发布作者:新盟教育 发布日期:2022-12-27 浏览人数:3708人

网工技术详解

资源放送 

↓ 扫一扫 

领取BFD协议录屏资

网页同步文章.png

BFD(Bidirectional Forwarding Detection,双向转发检测)提供了一个通用的、标准化的、介质无关和协议无关的快速故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状态。

链路故障:

1、在无法通过硬件信号检测故障的系统中,应用通常采用上层协议本身的Hello报文机制检测网络故障。

2、常用路由协议的Hello报文机制检测时间较长,检测时间超过1秒钟。当应用在网络中传输的数据超过GB/s时,秒级的检测时间将会导致应用传输的数据大量丢失。

3、在三层网络中,静态路由本身没有故障检查机制。


一、概述


功能:

BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制。

优点:

1、对相邻转发引擎之间的通道提供轻负荷、快速故障检测。

2、用单一的机制对任何介质、任何协议层进行实时检测。

原理:

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

特点:

检测速度快(毫秒级),可以和多个协议进行联合使用。

应用场景:

1.静态路由和BFD联动。2.OSPF和BFD联动。3.其它动态协议和BFD联动。


二、协议原理


2.1 报文结构

强制部分:

  • sta: 本地状态,bfd有四种邻居状态分别是down,init,up,adminDown;

  • detect mult: 检测倍数,默认是3;

  • discriminator: 本地标识符 local , 远端标识符 remote;

  • mim TX: 最小发送间隔时间,默认1000ms;

  • min RX: 最小接收间隔时间,默认1000ms;

  • 可选部分:主要用于认证。


2.2 BFD会话建立

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

动态建立会话:动态建立BFD会话的本地标识符由触发创建BFD会话的系统动态分配,远端标识符从收到对端BFD消息的Local Discriminator的值学习而来。

会话状态:

BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变。

BFD状态机的建立和拆除都采用三次握手机制。

1227-网络-1.png


2.3 BFD检测模式

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

① 异步模式

系统之间相互周期性地发送BFD控制包,如果某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣布会话为Down。

② 查询模式

在需要验证连接性的情况下,系统连续发送多个BFD控制包,如果在检测时间内没有收到返回的报文就宣布会话为Down。

2.4 BFD检测时间

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

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

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


BFD缺省时间参数:

  • BFD报文发送间隔默认1000毫秒,接受间隔默认1000毫秒,本地检测倍数3次。

  • BFD会话等待恢复时间0秒,会话延迟Up时间0秒。

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

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

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


2.5 BFD Echo功能

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

工作原理:

在两台直接相连的设备中,其中一台设备支持BFD功能(R1);另一台设备不支持BFD功能(R2),只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD功能的设备上创建单臂回声。

1227-网络-2.png


2.6 BFD联动功能

联动功能由检测模块、Track和应用模块三部分组成。

① 监测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块。

② Track模块收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。

③ 应用模块根据Track项的状态,进行相应的处理,从而实现联动。


三、配置


3.1 基本配置

bfd     //使能bfd
bfd 名字 bind peer 对端IP interface 本端接口     //配置静态bfd会话
discriminator local 10    // 配置本地标识符
discriminator remote 20     //配置远端标识符
commit            // 提交配置
注意本地标识符和远端标识符要匹配否则无法建立BFD会话
会话验证:display bfd session all  verbose


3.2 BFD和静态路由联动

1227-网络-3.png


实验要求:

如上图组网所示,在R1上配置到达R4的Loopback0:4.4.4.4/32网段的浮动静态路由,正常情况下通过R2访问R4,当R2故障时,自动选路通过R3访问R4的Loopback0。

在R1与R2之间建立BFD会话,并与静态路由绑定,实现故障快速检测和路径快速收敛。

配置:

在R1与R2之间建立静态BFD会话:
[R1]bfd
[R1]bfd 12 bind peer 10.0.12.2 interface GigabitEthernet 0/0/1
[R1-bfd-session-12]discriminator local 10
[R1-bfd-session-12]discriminator remote 20
[R1-bfd-session-12]commit 
[R2]bfd
[R2]bfd 21 bind peer 10.0.12.1 interface GigabitEthernet 0/0/1
[R2-bfd-session-21]discriminator local 20
[R2-bfd-session-21]discriminator remote 10
[R2-bfd-session-21]commit
在R1上配置静态路由并绑定BFD会话:
[R1] ip route-static 4.4.4.4 32 10.0.12.2 track bfd-session 12
[R1] ip route-static 4.4.4.4 32 10.0.13.2 preference 100


3.3 BFD和OSPF联动

1227-网络-4.png


实验要求:

  • R1、R2、R3运行OSPF协议,且都属于Area 0;

  • 配置OSPF与BFD联动,通过设置所有OSPF接口的BFD会话参数进一步提高链路状态变化时OSPF的收敛速度;

  • 将BFD会话的最大发送间隔和最大接受间隔都设置为100ms,检测次数默认不变。


配置:

R1配置如下:

[R1]bfd
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address 10.0.12.1 30
[R1]ospf 1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.3
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]bfd all-interfaces enable 
[R1-ospf-1]bfd all-interfaces min-tx-interval 100 min-rx-interval 100 detect-multiplier 3
R2 R3 配置和R1类似。

1671585dc74035d34ac554d5f2ae42fc.jpg

推荐阅读

>>>【独家首发】新版HCIE考试解读直播回顾
>>> 重磅!华为HCIE认证改版升级通知!
>>>【命令解析】Linux用户行为的常用命令
>>> 网工必备通信基础知识,还不知道你就out了?
>>>【必备干货】网工入门必会桥接教程,外网+GNS3+Vmware
>>>【技术指南】5分钟搞清楚OSPF链路状态路由协议

客服电话 15822722968 邮箱 799830458@qq.com 地址 天津市红桥区光荣道157号宝能创业中心2号楼-1、2门-907号
官方公众号
商务合作