尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

网络高可用核心技术:GR与NSR原理对比与选型指南

网络高可用核心技术:GR与NSR原理对比与选型指南 1. 项目概述从网络架构的演进看GR与NSR在网络工程师的日常运维与架构设计中高可用性High Availability, HA是一个永恒的核心命题。任何一个关键节点的故障都可能引发业务中断、数据丢失乃至严重的商业损失。为了实现近乎无缝的故障切换业界发展出了多种协议级或设备级的冗余技术。今天我想和大家深入聊聊两种在大型网络尤其是运营商和金融级数据中心网络中至关重要的故障恢复技术GRGraceful Restart平滑重启和NSRNon-Stop Routing不间断路由。很多朋友可能对这两个名词既熟悉又陌生感觉它们都是用来保证业务不中断的但具体区别和应用场景却有些模糊。简单来说你可以把网络设备的路由处理想象成一个人的“大脑”控制平面和“四肢”转发平面。GR和NSR都是为了在“大脑”出问题比如重启升级时让“四肢”还能继续按照之前的指令工作不至于让整个系统瘫痪。但两者实现这个目标的方式和前提条件截然不同适用的场景和带来的影响也大相径庭。理解GR和NSR不仅仅是记住几个概念更是理解现代网络如何从“尽力而为”的可用性走向“五个九”99.999%甚至更高可用性等级的关键。这对于设计核心网络、规划设备升级窗口、评估故障影响范围都至关重要。无论你是正在备考高级认证的网络工程师还是负责实际生产网络架构的设计师厘清这两种技术的原理、差异与选型都能让你在应对故障和规划变更时更加从容。2. 核心原理深度剖析控制平面与转发平面的分离要彻底搞懂GR和NSR我们必须先建立一个基础认知模型现代高性能路由器或交换机的架构普遍采用了控制平面与转发平面分离的设计。控制平面就像是设备的大脑和决策中心。它负责运行各种路由协议如OSPF、BGP、IS-IS与邻居设备交换路由信息通过复杂的算法如SPF计算出全网最优的路由路径最终生成一张指导数据转发的“地图”——即RIB路由信息库和FIB转发信息表。这个过程是CPU密集型的涉及大量的计算和状态维护。转发平面则是设备的四肢和肌肉。它通常由专用的硬件芯片如ASIC、NP构成其核心工作是依据控制平面下发的FIB以线速对进入设备的数据包进行查表、转发。转发平面的动作是毫秒甚至纳秒级的追求极致的速度和效率。在传统设备中这两个平面紧密耦合。一旦控制平面因为软件升级、主控板切换或意外故障而重启整个设备的路由计算能力就会暂时丧失转发平面也会因为得不到新的指令而无法正常工作导致业务中断。GR和NSR技术的目标就是在控制平面发生“动荡”时想方设法保住转发平面的连续性。但它们实现的路径完全不同。2.1 GR平滑重启原理基于邻居协助的“缓兵之计”GR的核心思想是“请求宽限保持转发”。当一台设备我们称其为“重启方”的控制平面需要重启时它会提前告诉它的邻居设备“兄弟们我的‘大脑’要重启一下但我的‘四肢’转发硬件是好的里面还有之前的路由表。在这段我‘失联’的时间里请你们暂时不要认为我宕机了也不要删除从我这里学到的路由继续把流量发给我我能正常转发。”这个过程依赖于路由协议的扩展能力。以OSPF GR也称为Graceful Restart为例其标准化流程如下能力协商在邻居关系建立时双方通过Hello报文中的特定字段如Grace LSA告知对方自己支持GR能力。重启前准备计划内重启前重启设备会将自己的转发状态FIB持久化到硬件或内存中确保重启期间转发不丢失。发送Grace LSA重启开始设备在发送最后一个Hello报文时会携带一个Grace LSA其中包含一个“优雅重启周期”Grace Period比如180秒。这个报文相当于一个“请假条”。邻居进入Helper模式邻居设备收到Grace LSA后进入“帮助者”角色。它会将与该重启邻居相关的链路状态和路由在本地“冻结”在Grace Period内不进行重新计算。即使收不到重启方的Hello报文也认为邻居关系仍然存在处于Restart状态。重启与重建重启方设备完成控制平面重启后快速重建邻居关系并重新同步链路状态数据库LSDB。恢复与退出同步完成后重启方通知邻居自己已恢复。邻居设备退出Helper模式解除路由冻结基于新的LSDB进行正常的路由计算。注意GR成功的关键在于“邻居配合”。如果邻居设备不支持GR或不扮演Helper角色那么它会在Hello定时器超时后立即判定重启方失效从而触发网络收敛导致流量中断。因此GR通常需要在网络中对所有相关设备进行统一配置。GR的优缺点分析优点实现相对简单对设备硬件无特殊要求主要依靠协议扩展和软件功能。在支持GR的网络中能有效减少因单设备重启引起的路由振荡和业务中断。缺点依赖邻居这是最大的限制。如果邻居设备不支持或未启用GR Helper功能失效。有时间窗口Grace Period是固定的。如果设备重启时间超过这个周期邻居仍会认为其失效。无法应对硬件故障GR主要针对控制平面软件重启。如果主控板硬件故障导致切换转发平面状态可能无法保持。可能引起次优路径在GR期间网络拓扑实际已变化重启方控制平面离线但其他设备仍按旧拓扑转发可能导致流量绕行或拥塞。2.2 NSR不间断路由原理基于本地冗余的“自我克隆”NSR的思路则比GR更加“自力更生”和彻底。它的目标是实现“控制平面故障对邻居完全无感知”。NSR通常与设备的高可靠性硬件架构绑定例如拥有主备两块主控板RP或SUP。NSR的核心在于状态同步。在设备正常运行时主用主控板不仅实时计算路由还会将其所有的协议状态邻居关系、定时器、数据库、计算出的RIB/FIB表项持续地、增量地同步到备用主控板上。备用板上的路由进程处于“热备份”状态拥有与主用板几乎完全一致的内存状态。当主用主控板发生故障或进行主备倒换时备用主控板能够在毫秒级内接管控制平面功能。由于所有状态都已就绪接管过程对于邻居设备而言是完全透明的邻居关系不会中断因为TCP会话、协议状态已同步。不需要发送任何“请假”或“通知”报文。路由表保持稳定无需重新计算。转发平面持续工作无任何中断。以BGP NSR为例主备板之间会同步所有的BGP对等体会话状态TCP连接状态机、接收和发送的BGP报文、BGP表Adj-RIB-In/Out以及最终的最佳路径选择结果。倒换发生时备用板直接沿用已有的TCP连接与邻居通信邻居设备根本感知不到对端设备内部已经换了一个“大脑”。NSR的优缺点分析优点对邻居透明不依赖任何外部协助倒换速度快业务影响为零。无时间窗口限制倒换是瞬间完成的没有GR那样的Grace Period限制。应对故障类型更广可应对主控板硬件故障、软件崩溃等场景。缺点硬件依赖强通常需要设备具备主备主控板硬件架构。实现复杂需要操作系统深度支持实现所有路由协议状态的完全同步开发难度大。资源消耗持续的状态同步会占用一定的系统总线和内存带宽。3. GR与NSR的对比与选型指南理解了原理我们可以从多个维度对两者进行直观对比特性维度GR (平滑重启)NSR (不间断路由)核心思想依赖邻居协助请求宽限期依靠本地冗余实现状态热备实现层次路由协议功能扩展软件特性设备系统架构与协议深度集成软硬件结合硬件要求无特殊要求单主控板即可通常需要主备双主控板依赖关系强烈依赖邻居设备启用并充当Helper完全不依赖邻居自我实现倒换时间取决于Grace Period几十秒至几分钟毫秒级通常1秒对邻居影响邻居感知到重启但配合保持路由邻居完全无感知适用场景软件升级、计划内重启、网络设备普遍支持GR主控板硬件故障、高要求下的计划内倒换、金融核心配置复杂度需要在所有相关设备上配置GR能力及Helper通常在单设备上启用即可配置简单选型决策要点网络设备能力与架构如果你的网络由多种品牌或型号的设备组成且部分老旧设备不支持NSR那么GR可能是唯一可行的全网性解决方案。如果网络核心节点是具备双主控的高端设备且厂商NSR功能成熟优先采用NSR。业务中断容忍度RTO对于容忍秒级甚至分钟级中断的业务如一些内部办公网络GR可以满足需求。对于要求零中断或亚秒级恢复的核心交易、实时通信业务必须追求NSR。故障场景针对计划内的软件升级、补丁安装GR是标准且有效的做法。针对不可预见的硬件故障NSR才能提供真正的保护。运维复杂度GR需要全网协议层面的一致性配置运维和排错需要考虑邻居状态。NSR的运维焦点在单设备的主备同步状态上边界更清晰。在实际的高可用网络设计中GR和NSR常常不是“二选一”而是“叠加使用”的关系。例如在核心设备上启用NSR以应对硬件故障同时在网络全局启用GR作为NSR失效如双主控同时故障的极端情况或连接非NSR设备时的后备保护机制。这种分层级的可靠性设计是构建稳健网络的关键。4. 主流协议中的具体实现与配置要点理论需要结合实践。下面我们以OSPF和BGP这两个最常用的协议为例看看GR和NSR具体是如何工作的。4.1 OSPF中的GR与NSROSPF GR (IETF Standard):其实现依赖于前面提到的Grace LSA。以主流厂商设备如华为、华三的配置为例通常非常简单# 在OSPF进程下启用GR能力 ospf 1 graceful-restart启用后该设备既可作为重启方也可默认作为其他设备的Helper。有时为了精细控制可以配置Helper角色仅对特定邻居生效或设置不同的Grace Period。OSPF NSR:NSR是设备内部的系统行为其配置通常不在路由协议层面而在冗余或高可用性配置模块下。例如它可能作为主备板同步功能的一部分自动启用或需要一个简单的全局开关# 启用OSPF协议的NSR功能示例命令厂商间有差异 nsr ospf enable启用后可以通过display ospf nsr status之类的命令查看主备板之间的OSPF状态同步情况。实操心得在部署OSPF GR时务必确认网络内所有运行OSPF的设备都支持并启用了该功能否则“木桶效应”会导致保护失效。对于NSR重点在于倒换测试在主备倒换后使用display ospf peer查看邻居状态是否始终保持Full并使用display ip routing-table确认路由表没有发生任何抖动。4.2 BGP中的GR与NSRBGP的GR机制在RFC 4724中定义被称为 “Graceful Restart”。它利用BGP报文中的一个标志位Restart State和两个时间参数Restart Time, Stale Time来实现。重启方在发送BGP OPEN报文或UPDATE报文时携带“重启标志”和“重启时间”告知邻居“我将要重启请保留我的路由X秒”。帮助者收到信号后将来自该邻居的路由标记为“陈旧”Stale但继续用于转发并启动一个“等待定时器”。在定时器超时前帮助者会保留这些路由。BGP NSR的实现比OSPF更复杂因为BGP基于TCP需要同步TCP会话状态。成熟的NSR实现会将TCP连接状态、发送/接收缓冲区的内容都同步到备用板。倒换时备用板直接接管TCP连接序列号都能接续从而对端完全无感。配置示例BGP GRbgp 100 peer 10.0.0.2 graceful-restart # 通常还会配置全局的GR能力及等待时间 graceful-restart graceful-restart timer restart 120配置示例BGP NSR# 在BGP视图下启用NSR bgp 100 nsr enable注意事项BGP GR有一个经典问题路由黑洞风险。假设设备A到前缀P有两条路径一条通过支持GR的设备B另一条通过不支持GR的设备C。当B重启并发出GR信号时A会保留从B学到的路由标记为Stale并继续使用。但如果B的转发平面在重启过程中实际上无法转发去往P的流量例如FIB丢失就会形成黑洞。因此在部署BGP GR时需要结合next-hop-self、bfd等机制进行更精细的控制。而BGP NSR由于转发状态也同步则能从根本上避免这个问题。5. 部署与运维中的常见问题排查即便理解了原理在实际部署和运维GR/NSR时依然会遇到各种问题。下面整理了一些典型场景和排查思路。5.1 GR功能失效排查现象配置了GR但设备重启时邻居依然断连路由丢失。排查步骤检查能力协商使用display ospf peer verbose或display bgp peer查看与邻居的GR能力字段是否显示为“已协商”或“支持”。如果显示不支持说明邻居未启用GR或版本不兼容。检查Helper配置有些设备默认不充当Helper或可以针对特定邻居关闭Helper功能。确认邻居设备上未针对该重启设备禁用Helper。检查定时器确认重启设备的Grace Period配置是否合理。如果实际重启时间如加载大版本软件超过这个定时器邻居仍会超时。检查协议状态GR通常只在稳定的邻居关系如OSPF Full, BGP Established下生效。如果重启前邻居关系就不稳定GR可能不会触发。查看日志信息设备日志中通常会有关于GR开始、结束、失败原因的详细记录是首要的排查依据。5.2 NSR状态异常排查现象主备倒换后业务出现短暂中断或邻居关系重置。排查步骤检查NSR同步状态在主用板上使用display nsr status或协议特定的NSR状态查看命令确认关键协议OSPF, BGP, IS-IS等的状态同步是否显示为“已同步”或“稳定”。如果状态为“同步中”或“失败”则倒换必然出问题。检查硬件与系统状态确认主备板之间的心跳线、数据同步总线物理连接正常。检查系统负载极高的CPU或内存占用可能影响同步性能。检查协议特定状态对于BGP NSR重点检查TCP会话同步状态。对于OSPF NSR检查LSDB同步是否完整。进行倒换测试在业务低峰期通过命令手动触发主备倒换并同时抓取网络流量和分析设备日志观察中断时间和协议交互过程。这是验证NSR效果最直接的方法。5.3 GR与NSR混用下的潜在风险在网络中同时存在支持NSR的核心设备和仅支持GR的接入设备时需要注意收敛优先级当核心设备发生NSR倒换对邻居透明时接入设备感知不到变化。但如果接入设备自身发生故障并触发GR核心设备作为Helper会保留路由。此时若网络中存在其他路径可能会因为GR的“冻结”机制导致流量无法快速切换到最优路径。故障定界难度当业务出现问题时由于NSR的透明性故障点可能被隐藏。需要运维人员具备区分是转发平面问题还是控制平面已发生倒换的能力。统一监控网管系统需要能够同时监控设备的GR状态协议层面和NSR状态设备层面形成统一的健康视图。6. 超越GR与NSR网络高可用性的全景视图GR和NSR是解决控制平面故障的利器但它们只是网络高可用性拼图中的一部分。一个真正健壮的网络需要从多个层面构建纵深防御体系转发平面冗余这是基础。包括设备级的电源、风扇、交换网板冗余以及网络级的链路聚合LACP、跨设备链路聚合如MLAG、堆叠和多路径路由ECMP。快速故障检测BFD双向转发检测协议是GR和NSR的“最佳搭档”。它能提供毫秒级的链路故障检测远快于路由协议自身的Hello定时器可以加速故障感知从而缩短GR的Grace Period或触发更快的NSR/主备倒换。拓扑无关的快速重路由如IP FRR、LDP FRR、TI-LFA等。它们在链路或节点故障前就预先计算好备份路径并将备份路径信息下载到转发芯片。当故障被BFD等机制检测到时转发平面能在毫秒内切换到备份路径无需等待控制平面收敛。这与GR/NSR保护“设备重启”的场景形成互补。协议收敛优化通过调整路由协议的定时器、引入增量SPF计算、优化路由策略等手段缩短在无法避免协议收敛时的业务中断时间。业务与网络协同最终端到端的高可用还需要上层应用如数据库集群、负载均衡器具备感知网络拓扑或故障的能力实现应用层的快速切换。在我经历过的多次重大网络变更和故障应急中一个深刻的体会是没有一种“银弹”技术可以解决所有可用性问题。GR和NSR主要针对“设备自身”的控制平面问题。而链路故障、光纤中断、配置错误、流量过载等问题需要依靠其他层面的技术来解决。正确的做法是根据业务的重要性等级RTO/RPO在网络的不同层次、不同部位组合运用这些技术形成一个有弹性、可快速自愈的网络架构。例如对于一个核心数据中心设计思路可能是服务器接入采用堆叠转发平面冗余 BFD检测Spine-Leaf之间全互联并使用ECMP多路径Leaf和Spine设备全部启用NSR应对设备故障和BGP/OSPF GR作为后备在IGP中部署TI-LFA FRR应对链路故障。这样无论故障发生在哪个环节网络都有相应的机制将影响降到最低。最后再分享一个配置上的小技巧在启用GR时建议将Grace Period定时器设置为略大于设备实际重启或主备倒换所需的最长时间并预留一定缓冲。例如如果设备重启通常需要90秒可以将定时器设为120秒。同时务必在实验室或现网非核心设备上进行充分的倒换测试记录下准确的倒换时间用数据来指导生产环境的参数配置这才是最稳妥的做法。网络可靠性的提升永远建立在严谨的设计、充分的测试和深入的理解之上。
返回列表