适用场景

两条出口链路,但路由是「谁在前谁生效」,链路断了要等路由超时或人工切换 —— 这是最常见的出口隐患。做法是给主链路加 BFD 会话,链路故障时毫秒级感知并切换到备用路由。本文按真实现场配置讲清写法与验证。

配置步骤(切换演练与回切观察)

# 演练脚本(一次只动一条链路)
T0:记录基线(BFD 状态、路由表、业务连通性、丢包率)
T1:断开主链路(拔纤或 shutdown 端口)
    观察:BFD Down 时间、路由切换时间、业务丢包(持续 ping 统计)
T2:确认业务走备用路径
T3:恢复主链路,观察是否按预期回切(或保持现状,按策略定)
T4:记录全过程时间线与问题

# 关注指标
切换耗时(目标 < 1 秒)、丢包数(目标 < 5 个 ICMP)、回切是否产生二次中断

关键参数与建议

  • BFD 会话:本端/对端鉴别符(discriminator)必须互指且不冲突,绑定源目 IP 与出接口
  • 主备路由:主路由绑定 BFD(track bfd-session),备用路由给更高 preference(数值更大优先级更低)
  • 多分支场景:每个分支链路独立 BFD 会话与路由,避免一断全断
  • 回切策略:主链路恢复后是否自动回切要明确,避免来回抖动
  • 联动范围:默认路由、业务网段路由都要覆盖,只配默认路由会出现「出得去回不来」
  • 验证:真断链路一次,记录切换时间与丢包数,别只看 BFD 状态 Up
  • 告警:BFD 状态变化要接入监控并触发通知
  • 记录:会话编号、对端、备用路由 preference 写成表格便于交接

容易踩的坑

  • 演练时同时断两条链路,问题说不清是哪条导致
  • 只看 BFD 状态,没有业务层持续探测
  • 没记录时间线,汇报时只能「大概几秒」
  • 回切产生二次抖动,用户感知两次断网
  • 演练在生产业务高峰做,被投诉
  • 发现问题不记录、不改进,下次演练重复

验证与巡检

# 演练记录字段
时间 | 动作 | BFD 状态 | 路由状态 | 业务探测结果 | 丢包数 | 备注

# 结论:切换耗时、是否二次中断、改进项
  • 巡检:每次演练有记录、切换耗时达标、改进项闭环

小结

BFD 主备验收:人为断开主链路,业务在秒级内切到备用路径且无感知;主链路恢复后按预期回切;切换过程有记录可查。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。