BFD:Bidirectional Forwarding Detection 双向转发检测
定义:
双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
BFD:原理简介
BFD在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。BFD本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。下面以OSPF与BFD联动为例,简单介绍会话工作流程。
图1 BFD会话建立流程图:
上图所示是一个简单的网络组网,两台设备上同时配置了OSPF与BFD,BFD会话建立过程如下所示:
OSPF通过自己的Hello机制发现邻居并建立连接。
OSPF在建立了新的邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD。
BFD根据收到的邻居信息建立会话。
会话建立以后,BFD开始检测链路故障,并做出快速反应。
图2 BFD故障发现处理流程图:
如上图所示:
被检测链路出现故障。
BFD快速检测到链路故障,BFD会话状态变为Down。
BFD通知本地OSPF进程BFD邻居不可达。
本地OSPF进程中断OSPF邻居关系。
BFD会话建立方式:
BFD会话的建立有两种方式,即静态建立BFD会话和动态建立BFD会话。静态和动态创建BFD会话的主要区别在于本地标识符(Local Discriminator)和远端标识符(Remote Discriminator)的配置方式不同。BFD通过控制报文中的Local Discriminator和Remote Discriminator区分不同的会话。
静态建立BFD会话
静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
动态建立BFD会话
动态建立BFD会话时,系统对本地标识符和远端标识符的处理方式如下:
动态分配本地标识符
当应用程序触发动态创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。
自学习远端标识符
当BFD会话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。
BFD检测机制:
BFD的检测机制是两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障。
BFD提供异步检测模式。在这种模式下,系统之间相互周期性地发送BFD控制报文,如果某个系统连续几个报文都没有接收到,就认为此BFD会话的状态是Down。
BFD会话管理:
BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变。BFD状态机的建立和拆除都采用三次握手机制,以确保两端系统都能知道状态的变化。以BFD会话建立为例,简单介绍状态机的迁移过程。
图3 BFD会话建立流程图:
RouterA和RouterB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;对于动态创建BFD会话,Remote Discriminator的值是0。
RouterB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。
RouterB本地BFD状态为Init后,不再处理接收到的状态为Down的报文。
RouterA的BFD状态变化同RouterB。
RouterB收到状态为Init的BFD报文后,本地状态切换至Up。
RouterA的BFD状态变化同RouterB。
BFD缺省配置:
参数 |
缺省值 |
---|---|
全局BFD功能 |
未使能 |
发送间隔 |
1000毫秒 |
接收间隔 |
1000毫秒 |
本地检测倍数 |
3 |
等待恢复时间 |
0秒钟 |
会话延迟Up时间 |
0秒钟 |
BFD报文优先级 |
7 |
配置单臂回声功能示例:
组网需求
如图1所示,RouterA和RouterB通过直连链路连通,RouterA支持BFD功能,RouterB不支持BFD功能。用户希望实现对链路故障的快速检测。
在RouterA上配置单臂回声功能BFD会话,检测RouterA到RouterB的直连链路。
操作步骤
- 配置RouterA和RouterB的直连接口IP地址
# 配置RouterA的接口IP地址。
<Huawei> system-view [Huawei] sysname RouterA [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] ip address 10.1.1.1 24 [RouterA-GigabitEthernet1/0/0] quit
# 配置RouterB的接口IP地址。
<Huawei> system-view [Huawei] sysname RouterB [RouterB] interface gigabitethernet 1/0/0 [RouterB-GigabitEthernet1/0/0] ip address 10.1.1.2 24 [RouterB-GigabitEthernet1/0/0] quit
- 配置单臂ECHO功能的BFD会话
# 配置RouerA。
[RouterA] bfd [RouterA-bfd] quit [RouterA] bfd atob bind peer-ip 10.1.1.2 interface gigabitEthernet1/0/0 one-arm-echo [RouterA-bfd-session-atob] discriminator local 1 [RouterA-bfd-session-atob] min-echo-rx-interval 100 [RouterA-bfd-session-atob] commit [RouterA-bfd-session-atob] quit
- 验证配置结果
# 配置完成后,在RouterA上执行display bfd session all verbose命令,可以看到建立了一个单跳(one hop)的BFD会话,且状态为Up。
<RouterA> display bfd session all verbose
-------------------------------------------------------------------------------- Session MIndex : 256 (One Hop) State : Up Name : atob --------------------------------------------------------------------------------Local Discriminator : 1 Remote Discriminator : -Session Detect Mode : Asynchronous One-arm-echo ModeBFD Bind Type : Interface(GigabitEthernet1/0/0)Bind Session Type : StaticBind Peer IP Address : 10.1.1.2NextHop Ip Address : 10.1.1.2Bind Interface : GigabitEthernet1/0/0FSM Board Id : 0 TOS-EXP : 7Echo Rx Interval (ms) : 100Actual Tx Interval (ms): 1000 Actual Rx Interval (ms): 1000Local Detect Multi : 3 Detect Interval (ms) : 3000Echo Passive : Disable Acl Number : -Destination Port : 3784 TTL : 255Proc Interface Status : Disable Process PST : DisableWTR Interval (ms) : - Active Multi : 3 Echo Rx Interval(ms) : 10Last Local Diagnostic : No DiagnosticBind Application : No Application BindSession TX TmrID : 87 Session Detect TmrID : 88Session Init TmrID : - Session WTR TmrID : -Session Echo Tx TmrID : -PDT Index : FSM-0 | RCV-0 | IF-0 | TOKEN-0Session Description : - --------------------------------------------------------------------------------Total UP/DOWN Session Number : 1/0
常见配置错误举例:
BFD会话无法UP:
常见原因
本故障的常见原因主要包括:
BFD会话检测的链路存在故障,导致BFD报文无法进行交互。
BFD会话频繁震荡。
- 执行display current-configuration configuration bfd命令查看BFD会话两端的本地标识符和远端标识符是否匹配。
如果会话两端的discriminator local字段和discriminator remote字段匹配,则转到步骤2。
- 如果会话两端的discriminator local字段和discriminator remote字段不匹配,则使用discriminator命令配置BFD会话的本地标识符和远端标识符,然后使用display bfd session all命令查看BFD会话是否Up。
如果State字段的值为Up,则表明BFD会话已经建立。
如果State字段的值为非Up,则请转到步骤2。
- 使用display current-configuration configuration bfd命令,查看BFD会话的min-tx-interval和min-rx-interval信息,检查BFD会话的检测时间是否大于链路的延迟时间。
检测时间 = 接收到的远端Detect Multi × max(本地的RMRI,接收到的DMTI),其中,Detect Mult(Detect time multiplier)是检测倍数,通过detect-multiplier命令配置;RMRI(Required Min Rx Interval)是本端能够支持的最短BFD报文接收间隔,通过min-rx-interval命令配置;DMTI(Desired Min Tx Interval)是本端想要采用的最短BFD报文的发送间隔,通过min-tx-interval命令配置。
链路的延迟时间是指链路的时延,可通过ping或者tracert的方式获取链路的时延。
如果BFD会话的检测时间小于链路的延迟时间,则在BFD会话视图下执行detect-multiplier命令、min-rx-interval命令和min-tx-interval命令调整BFD会话的检测时间,使之大于链路的延迟时间。
BFD会话检测Down影响接口转发:
常见原因
本故障常见的原因主要为配置了BFD会话与接口联动功能。
操作步骤
- 执行display interface interface-type interface-number命令查看BFD会话绑定的接口的状态。
如果Line protocol current state字段的值为UP,表明当前接口的状态受BFD会话的影响,BFD会话检测到链路故障后,会将此接口的状态置为BFD status down,则转到步骤2。
如果Line protocol current state字段的值为UP,但是接口不可转发,排除转发模块的故障。
- 执行display bfd session all命令,查看BFD会话的状态。
如果BFD会话的状态为Down,则转到步骤3。
- 执行display current-configuration configuration bfd-session查看BFD会话的配置信息,检查是否配置了process-interface-status命令。
如果配置了process-interface-status命令,表明此接口的状态是因为BFD会话检测Down,接口被置为DOWN(BFD status down)状态,导致接口不可转发。
修改BFD检测参数不生效:
常见原因
本类故障原因主要为修改BFD会话后,没有提交会话的配置信息。
说明:
请保存以下步骤的执行结果,以便在故障无法解决时快速收集和反馈信息。
- 执行display current-configuration configuration bfd-session查看BFD会话的配置信息,检查是否配置了commit命令。
如果配置了commit命令,表明修改BFD会话的检测参数后已经提交。
如果没有配置commit命令,表明修改BFD会话的检测参数后未提交,用户需要执行commit命令提交配置。
BFD:Bidirectional Forwarding Detection 双向转发检测相关推荐
- 关于BFD(双向转发检测)开发的总结
前一阵子因为业务需要,需要设备提供高可靠性(HA), 高可靠性指的是设备出故障的时候能够不影响业务的运行,我们部门产品的高可靠性的实现方案是双机备份,就是一台机器出故障的时候另一台设备能够接 ...
- Cisco BFD双向转发检测技术部署案例
Technorati 标签: Cisco,BFD,SLA Cisco BFD是一种双向转发检测机制,可以提供毫秒级的检测,可以实现链路的快速检测,BFD通过与上层路由协议联动,可以实现路由的快速收敛, ...
- 华为设备BFD实战,双向转发检测BFD详解,理论+实战+抓包分析
一.BFD 双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制,用于快速检测.监控网络中链路或者IP路由的转发连通状况.[毫秒级] 二. ...
- SBFD(Seamless Bidirectional Forwarding Detection)
SBFD简介:更适合SR隧道 BFD进行大量链路检测时,其状态机的协商时间会变长,不适合Segement Routing. SBFD(Seamless Bidirectional Forwarding ...
- BFD (双向转发检测) 协议简介与开发
之前开发的BFD协议,正好有空介绍一下协议基础内容以及开发时候的注意事项.内容分为如下 1. BFD背景简介 2. BFD特点 3. BFD报文格式 4. BFD 状态机处理 5. 开发注意事项 一. ...
- BFD(双向转发检测)
BFD:用于快速检测,监控网络中的通信故障. 默认报文发送间隔(200ms~1000ms,默认400ms) 1.原理简介: BFD在两台网络设备建立会话,用来检测网络设备间的双向转发路程,为上层应用服 ...
- CVPR2019文章解读 Pyramid Feature Attention Network for Saliency detection 用于显著性检测的金字塔特征注意网络
Pyramid Feature Attention Network for Saliency detection 摘要 显著性检测是计算机视觉领域的基本挑战之一,怎么有效去提取特征非常关键,目前的一些 ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- Vue Angular 双向绑定检测不到对象属性的添加和删除
由于ES5的限制 Vue && Angular 双向绑定检测不到对象属性的添加和删除 还有数组增加索引.这些改变不会触发change事件.Vue是因为实例化的时候已经把各个属性都s ...
- YOLO_ Real-Time Object Detection 实时目标检测
YOLO: Real-Time Object Detection 实时目标检测 You only look once(YOLO)是一种先进的实时目标检测系统.在Pascal Titan X上,它以每秒 ...
最新文章
- Blend for Visual Studio 2013
- 管与c++中容量的重新分配问题
- 那天有个小孩跟我说LINQ(五)转载
- java 单引号的字符串类型_Java程序以字符串形式显示双引号和单引号
- centos非root用户创建用户_CentOS中用户和用户组管理
- keras 多层lstm_《Keras 实现 LSTM》笔记
- Django使用mysql连接池_Django db使用MySQL连接池
- 循环数组中找查找某个数值
- Discuz!NT 模板机制分析
- Ubuntu开启root账户ssh远程登录
- 【赛尔原创】如何自动地向知识图谱中添加属性?
- Google Home其实是个错误
- 【MySQL入门】(一)安装与配置MySQL
- C#获取汉字的区位码的方法
- python(模块)xlsxwriter
- darts.h注释 - 滴水穿石 - 歪酷博客 Ycool Blog
- [从头读历史] 第249节 易经
- 从零开发短视频电商 隐藏业务ID以及缩短业务链接
- 小陈学JS return语句+break,continue,return的区别
- 知名站长工具服务商:爱站网突然关站
热门文章
- 计算机管理主分区改成逻辑分区,Win7将主分区变为逻辑分区的方法
- 单纤双向BIDI光模块常识
- 这有几个常见的电脑故障解决方法,需要的朋友快来
- linux报错Error: /proc must be mounted
- win10网络适配器不见了_win10设备管理器里没有网络适配器的原因及处理方法
- 美国主要经济指标(2)
- dw自动滚动图片_Dreamweaver实现滚动图片文字
- qq 客服 php,QQ支持临时会话设置
- ST-LINKV2仿真器接线、配置、仿真方法
- android 拼音字母语音,拼音发音点读app