在 HCIE-Datacom 的高可用性(High Availability)体系中,GR(Graceful Restart,平滑重启) 是一项关键技术。它的核心价值在于:当控制平面(Control Plane)发生故障或进行协议重启时,转发平面(Forwarding Plane)保持不中断,从而实现业务流量的零丢失。
在 OSPF GR 的交互中,存在两个核心角色:Restarter(重启方) 和 Helper(辅助方)。
- 角色定义 Restarter: 正在进行协议重启或主备倒换的路由器。它需要告诉邻居:“我要重启了,请保持我的路由信息不要删除”。
Helper: Restarter 的邻居。它负责在 Restarter 重启期间,继续按照旧的拓扑信息转发报文,并协助 Restarter 完成 LSDB 同步。
- OSPF GR 的详细工作流程 OSPF GR 的实现依赖于 Type-9 LSA(Opaque LSA),即 Grace-LSA。
第一阶段:进入重启 (Grace Period Initiation) Restarter 触发: 当管理员执行 reset ospf process 或发生主备板倒换时,Restarter 会向所有邻居泛洪一条 Grace-LSA。
Grace-LSA 包含: 重启原因(软件重启/倒换/未知)、Grace Period(老化时间,通常为 120s)以及本端的接口 IP。
Helper 响应: 邻居收到 Grace-LSA 后,进入 Helper 模式。
Helper 动作: 维持与 Restarter 的邻居关系状态为 Full,不向全网通告该邻居失效,不触发 SPF 计算,并继续按原路径转发流量。
第二阶段:重启中 (During Restart) Restarter 恢复: 协议进程重新启动后,Restarter 不会立即运行 SPF,而是首先重新建立邻居。
收发 Hello: Restarter 发送不带认证信息的 Hello 报文。Helper 收到后,确认该邻居处于 GR 状态,直接恢复邻居关系。
LSDB 同步: Restarter 通过 Helper 提供的 LSA 快照(通过 DD 和 LSU 报文)来重建自己的 LSDB。
第三阶段:退出重启 (Grace Period Termination) 同步完成: 当 Restarter 完成所有邻居的 LSDB 同步后,它会发送一条 LS Age 为 MaxAge (3600s) 的 Grace-LSA,通知邻居“我回来了”。
Helper 退出: Helper 收到该报文,退出 Helper 模式,恢复正常的 OSPF 泛洪机制。
最终计算: Restarter 运行 SPF 算法,更新路由表,GR 过程正式结束。
- Helper 模式的退出/异常处理 为了防止网络长时间处于这种“静态转发”的危险状态,Helper 会在以下情况退出辅助:
Grace Period 超时: Restarter 没能在规定时间内完成同步。
拓扑发生变化: Helper 发现网络中其他链路发生了变化。为了防止环路,Helper 必须立即退出 GR 模式,重新进行 SPF 计算。
收到更优 LSA: Helper 收到来自 Restarter 的非 Grace-LSA 的更新,且内容发生变动。
- 关键点对比:GR 与 NSR (Non-Stop Routing) 作为 HCIE 级别的工程师,必须区分这两个容易混淆的概念:
特性 GR (Graceful Restart) NSR (Non-Stop Routing) 依赖性 依赖邻居支持(Helper) 完全不依赖邻居 协议报文 有特定的协议扩展(Grace-LSA) 无特殊协议报文 主备同步 只同步配置,不实时同步状态机 实时同步所有协议状态机和 OSPF 邻居状态 适用场景 邻居均支持 GR 的标准环境 邻居不支持 GR 或第三方设备环境 5. 专家提示:配置注意事项 在华为 VRP 系统中,OSPF GR 默认可能并未开启。
开启命令:graceful-restart (在 OSPF 进程视图下)。
严禁在存在环路隐患的极简拓扑中随意延长 Grace Period,否则在真实的链路故障时,Helper 可能会因为处于“辅助模式”而维持错误的转发路径,导致流量黑洞。