维护窗口里的礼貌下线
直接断开邻居时,对端只能被动感知并重新收敛,切换期间可能丢包。优雅关闭(RFC 8326)提供了一种预通知机制:本端在关闭前先把路由的 LOCAL_PREF 降到最低并附加专用的 GRACEFUL_SHUTDOWN 社区,对端看到后立即改用备用路径,等流量切换完成后再真正关闭会话。
基本信息
| 社区值 | 65535:0,即 GRACEFUL_SHUTDOWN |
|---|---|
| 配套动作 | 同时把 LOCAL_PREF 设为 0,让对端尽快改选路径 |
| 适用方向 | 主要用于对端作为接收方的场景,需对端实现该社区处理 |
| 操作方式 | 邻居下执行 shutdown,或手工打社区再撤路由 |
| 验证要点 | 对端是否真的提前切换,而不是等会话断开后才收敛 |
典型使用场景
- 设备升级维护:先让流量切走再重启,减少业务中断
- 割接预操作:在正式切换前引导流量转移,降低切换瞬间的丢包
- 链路停用:按流程优雅下线,避免对端被动收敛造成抖动
- 演练验证:验证对端是否会按社区提前改选路径,为真实维护做准备
- 多点维护:逐个对邻居执行,保持业务始终有可用路径
操作顺序
操作顺序
# 1) 观察当前流量与备用路径状态
show ip bgp summary
# 2) 对目标邻居执行优雅关闭(会通告低优先级与相关社区)
router bgp 65001
neighbor 10.0.0.2 shutdown
# 3) 确认对端已改选路径,业务切换完成
# 4) 执行维护操作
# 5) 维护后恢复邻居
router bgp 65001
no neighbor 10.0.0.2 shutdown与直接断开的对比
| 方式 | 对端感知 | 切换效果 |
|---|---|---|
| 直接断开 | 会话中断后才开始收敛 | 切换期间存在丢包窗口 |
| 优雅关闭 | 通过属性变化提前获知 | 先切流量再断会话,窗口更短 |
| 等待超时 | 靠 Hold Timer 判定失效 | 窗口最长,最不可控 |
上线前的确认
上线前的确认
# 确认对端是否处理该社区(不同厂商实现程度不同)
# 在本端执行优雅关闭后,立即在对端查看路由属性与最优路径
show ip bgp 0.0.0.0/0
# 关注 Community 与 LocPrf 是否出现预期变化
# 若对端无任何反应,说明该机制在其上不生效,需要改用常规割接流程优雅关闭是预通知,能否生效取决于对端实现:部分设备会忽略该社区,退化为普通关闭。上线前建议在实验或备份邻居上做一次验证,确认对端行为符合预期。