
# 专线BFD如何配置？
#### 什么是BFD
BFD，双向转发检测（Bidirectional Forwarding Detection），是一种全网统一的检测机制，用于快速检测、监控网络中链路或者IP路由的转发连通状况。
#### BFD缺省配置
表1BFD参数缺省值 
| 参数       | 缺省值    |
|:---|:---|
| 全局BFD功能  | 未使能    |
| 发送间隔     | 1000毫秒 |
| 接收间隔     | 1000毫秒 |
| 本地检测倍数   | 3      |
| 等待恢复时间   | 0秒钟    |
| 会话延迟Up时间 | 0秒钟    |
| BFD报文优先级 | 7      |
   
#### BFD与静态路由联动
与动态路由协议不同，静态路由自身没有检测机制，当网络发生故障的时候，需要管理员介入。BFD与静态路由联动特性可为静态路由绑定BFD会话，利用BFD会话来检测静态路由所在链路的状态。
BFD与静态路由联动可为每条静态路由绑定一个BFD会话，当这条静态路由上绑定的BFD会话检测到链路故障（由Up转为Down）后，BFD会将故障上报路由管理系统，由路由管理模块将这条路由设置为"非激活"状态（此条路由不可用，从IP路由表中删除）。当这条静态路由上绑定的BFD会话成功建立或者从故障状态恢复后（由Down转为Up），BFD会上报路由管理模块，由路由管理模块将这条路由设置为"激活"状态（此路由可用，加入IP路由表）。
#### BFD与BGP联动
BGP协议通过周期性的向对等体发送Keepalive报文来实现邻居检测机制，但这种机制检测到故障所需时间比较长，超过1秒钟。当数据达到吉比特速率级别时，将会导致大量的数据丢失。因此，BGP协议通过引入BFD与BGP联动功能，利用BFD的快速检测机制，迅速发现BGP对等体间链路的故障，并报告给BGP协议，从而实现BGP路由的快速收敛。[表2]显示了BGP协议是否绑定BFD时收敛速度的数据。
 表2BGP协议收敛速度的数据 
| 是否绑定BFD | 链路故障检测机制      | 收敛速度 |
|:---|:---|:---|
| 未绑定BFD  | keepalive报文机制 | 秒级   |
| 绑定BFD   | BFD会话Down     | 毫秒级  |
   
图1BFD与BGP联动   
![](https://support.huaweicloud.com/dc_faq/zh-cn_image_0000002521851577.png)
如[图1]所示，RouterA和RouterB分别属于AS100和AS200，两台路由器直接相连并建立EBGP连接。使用BFD检测RouterA和RouterB之间的BGP邻居关系，当RouterA和RouterB之间的链路发生故障时，BFD能够快速检测到故障并通告给BGP协议。
#### 检查配置结果
BFD配置完成以后，可以通过以下命令查看已配置的BFD会话的情况。
- 使用**display bfd interface** \[ *interface-type interface-number* \]命令查看使能BFD的接口信息。
- 使用**display bfd session** { **all** \| **static** \| **discriminator** *discr-value* \| **dynamic** \| **peer-ip** { **default-ip** \| *peer-ip* \[ **vpn-instance** *vpn-instance-name* \] } \| **static-auto** } \[ **verbose** \]命令查看BFD会话信息。
- 使用**display bfd statistics**命令查看BFD全局统计信息。
- 使用**display bfd statistics session** { **all** \| **static** \| **dynamic** \| **discriminator** *discr-value* \| **peer-ip** **default-ip** \| **peer-ip** *peer-ip* \[ **vpn-instance** *vpn-name* \] \| **static-auto** }命令查看BFD会话统计信息。
 
#### BFD常见配置错误
- **BFD会话无法Up**
  **常见原因**
  本故障的常见原因主要包括：
  - BFD会话检测的链路存在故障，导致BFD报文无法进行交互。
  
  - BFD会话频繁震荡。
  
  
  **操作步骤**
  1. 执行**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]。
        
      
  
  2. 使用**display current-configuration** **configuration** **bfd** 命令，查看BFD会话的**min-tx-interval** 和**min-rx-interval** 信息，检查BFD会话的检测时间是否大于链路的延迟时间。
     检测时间 = 接收到的远端Detect Multi × max（本地的RMRI，接收到的DMTI），其中，Detect Multi（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**命令和。
     
   
- **BFD会话检测Down影响接口转发**
  **常见原因**
  本故障常见的原因主要为配置了BFD会话与接口联动功能。
  **操作步骤**
  1. 执行display interface interface-type interface-number命令查看BFD会话绑定的接口的状态。
     - 如果Line protocol current state字段的值为UP，表明当前接口的状态受BFD会话的影响，BFD会话检测到链路故障后，会将此接口的状态置为BFD status down，则转到步骤[2]。
     
     - 如果Line protocol current state字段的值为UP，但是接口不可转发，排除转发模块的故障。
      
  
  
  
  2. 执行display bfd session all命令，查看BFD会话的状态。
     如果BFD会话的状态为Down，则转到步骤[3]。
     
  
  
  
  3. 执行display current-configuration configuration bfd-session查看BFD会话的配置信息，检查是否配置了process-interface-status命令。
     如果配置了process-interface-status命令，表明此接口的状态是因为BFD会话检测Down，接口被置为DOWN(BFD status down)状态，导致接口不可转发。
     
   
- **修改BFD检测参数不生效**
  **常见原因**
  本类故障原因主要为修改BFD会话后，没有提交会话的配置信息。
  ![](https://support.huaweicloud.com/dc_faq/public_sys-resources/note_3.0-zh-cn.png)
  请保存以下步骤的执行结果，以便在故障无法解决时快速收集和反馈信息。
  **操作步骤**
  执行display current-configuration configuration bfd-session查看BFD会话的配置信息，检查是否配置了commit命令。
  如果配置了commit命令，表明修改BFD会话的检测参数后已经提交。
  如果没有配置commit命令，表明修改BFD会话的检测参数后未提交，用户需要执行commit命令提交配置。
  
 
