BFD会话动不动就抖?华为检测间隔与倍数按网络状况调

本文整理自华为官方发布的典型配置案例,命令与步骤均按原始文档呈现,供现场实施参考。

BFD会话建起来只是第一步,跑一段时间后发现它动不动就抖:链路明明没断,会话却反复Up/Down,联动的静态路由、VRRP跟着来回切换,业务反而被这套灵敏的检测折腾出问题。原因多半在检测参数上——默认参数是按一般网络状况给的,链路质量差、设备CPU繁忙、BFD还叠加了安全业务时,按默认节奏收发就可能超时误判。

华为把BFD的检测节奏拆成四个可调参数,全部在BFD会话视图下配置:报文期望发送间隔、期望接收间隔、会话UP后的本地检测倍数,以及会话协商过程中的检测倍数。实际检测时间=对端协商出的接收间隔×本地检测倍数,调大其中任何一个,误判概率都会下降。

先进入系统视图,再进入对应BFD会话视图(前提是这个名字的会话已经创建):

system-view
bfd session-name

配置报文期望发送间隔(缺省1000毫秒):

min-tx-interval tx-interval

配置报文期望接收间隔(缺省1000毫秒):

min-rx-interval rx-interval

配置会话UP后的本地检测倍数(缺省3倍):

detect-multiplier multiplier

还有一个容易忽略的参数——协商过程中的本地检测倍数(缺省50)。会话从Down到Up的协商阶段也有超时判定,协商期抖动的场景可以单独调它:

negotiation-detect-multiplier detect-multiplier-value

两条官方给出的调参经验值得记住:一是当BFD与应用识别、安全策略、智能策略路由、入侵防御、URL过滤、反病毒业务叠加使用时,建议发送和接收间隔配在50毫秒以上,防止BFD震荡——安全业务检测开销大,间隔给太紧就是自己找抖;二是发送间隔、接收间隔和本地检测倍数优选默认值,不为调而调,感觉检测太慢时先确认链路质量再动参数。

另外有个省资源的机制要知情:会话一旦Down,系统自动把本端收发间隔调整为大于1000毫秒的随机值,等会话重新Up后再恢复用户配置值——Down态本就不转发业务,把探测节奏放缓,正好把资源留给恢复。

效果怎么验?配置后display bfd session查看会话,verbose信息里能看到实际的收发间隔与检测倍数;观察一段时间,联动业务不再因误判切换,抖动消失即为调对。BFD是一套快系统,快系统忌讳参数拍脑袋——做BFD调优时值得坚持一个原则:先看故障时间的业务容忍度,再反推间隔与倍数,参数表进交付文档,后续接维的人不用猜。欢迎搜索关注贵州诚鑫致达科技,了解更多可靠性调优实战配置。

企业存储选型参考|贵州诚鑫致达

做机房存储、虚拟化或监控归档,群晖机型参考:FS6400(全闪存阵列) · SA3610 · SA3410。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。

服务区域|贵州诚鑫致达

贵州群晖NAS、贵阳存储、数据备份、信创云盘或 IT 集成服务,可联系贵州诚鑫致达科技,服务范围覆盖贵州全省各市州。毕节、铜仁:企业数据备份容灾与网络建设维护。