优雅重启解决什么问题
BGP 进程重启或控制面切换时,如果邻居立刻撤销从本设备学到的路由,全网都要重新收敛,会造成秒级甚至更长的中断。优雅重启(Graceful Restart,RFC 4724)的做法是:重启方在能力协商中声明支持的地址族与预计重启时间,邻居侧在此期间保留该邻居的路由并标记为过期(stale),等重启方重新建立会话并完成更新后再撤销未被重申的条目。
基本信息
| 协商方式 | Open 报文中按地址族声明 GR 能力与重启时间 |
|---|---|
| 重启方 | 声明重启时间与重启标志,重启后重发全部路由 |
| helper 侧 | 保留 stale 路由,超时后按协商时间清理未重申条目 |
| 结束标志 | 重启方发送 End-of-RIB 表示更新结束,此时才开始清理 |
| 相关机制 | NSF 依赖硬件与邻居配合,NSR 不依赖邻居、由本机双控制面实现 |
典型使用场景
- 计划内升级:进程重启期间数据面继续转发,避免全网重新收敛
- 主备控制面切换:配合硬件能力实现控制面切换不掉会话
- 入口设备维护:结合优雅关闭,让对端先完成路径切换再重启
- 双出口冗余:单侧重启时流量由另一侧承担,减少业务抖动
- 验收测试:在实验环境模拟进程重启,测量业务中断时长为零的条件是否成立
查看协商结果
查看协商结果
show ip bgp neighbors 10.0.0.2
# 关注段落:
# Graceful Restart Capability: advertised and received
# Restart Time: 120(协商值)
# Address families: ipv4 unicast
# 只有双方都声明支持时,能力才显示为同时具备
!
show ip bgp neighbors 10.0.0.2 | include Graceful三种保护机制对比
| 机制 | 依赖条件 | 覆盖场景 |
|---|---|---|
| GR | 两端都支持并协商该能力 | 控制面重启,如进程重启与主备倒换 |
| NSF | 硬件转发面独立于控制面 | 与 GR 配合应对控制面故障 |
| NSR | 本机双控制面,邻居无需支持 | 本机控制面切换,不涉及邻居行为 |
重启前后的观察点
重启前后的观察点
# 重启前记录基线
show ip bgp summary
show ip bgp neighbors 10.0.0.2 | include Graceful
#
# 重启过程中观察是否出现 stale 标记
show ip bgp 10.100.0.0/16
#
# 重启后确认条目被重申且 stale 清除
show ip bgp summary
show logging | include BGPGR 只保护控制面重启这一类场景:设备硬断电、转发面失效或链路中断时,路由仍然会立即撤销。把 GR 当成「重启无感」的保证容易在真实故障中误判预期。