适用场景
两条出口链路,但路由是「谁在前谁生效」,链路断了要等路由超时或人工切换 —— 这是最常见的出口隐患。做法是给主链路加 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 主备验收:人为断开主链路,业务在秒级内切到备用路径且无感知;主链路恢复后按预期回切;切换过程有记录可查。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。