文档首页/ 云专线 DC/ 常见问题/ 产品咨询/ 专线BFD如何配置?
更新时间:2023-08-14 GMT+08:00

专线BFD如何配置?

什么是BFD

BFD,双向转发检测(Bidirectional Forwarding Detection),是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。

BFD缺省配置

表1 BFD参数缺省值

参数

缺省值

全局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时收敛速度的数据。

表2 BGP协议收敛速度的数据

是否绑定BFD

链路故障检测机制

收敛速度

未绑定BFD

keepalive报文机制

秒级

绑定BFD

BFD会话Down

毫秒级

图1 BFD与BGP联动

图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-intervalmin-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,但是接口不可转发,排除转发模块的故障。
    1. 执行display bfd session all命令,查看BFD会话的状态。

      如果BFD会话的状态为Down,则转到步骤3

    1. 执行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命令提交配置。