
华为OSPF理论知识详解(八)
华为OSPF理论知识详解(七):http://www.023wg.com/lypz/118.html
43、OSPF GR
随着路由设备普遍采用了控制和转发分离的技术,在网络拓扑保持稳定的情况下,控制层面的重启并不会影响转发层面,转发层面仍然可以很好地完成数据转发任务,从而保证业务不受影响。
GR技术保证了在重启过程中转发层面能够继续指导数据的转发,同时控制层面邻居关系的重建以及路由计算等动作不会影响转发层面的功能,从而避免了路由震荡引发的业务中断,提高了整网的可靠性。
GR是Graceful Restart的简称,又被称为平滑重启,是一种用于保证当路由协议重启时数据正常转发并且不影响关键业务的技术。
如果没有特殊说明,以下所说GR均表示RFC3623所规定的GR技术。
GR技术是属于高可靠性(HA,High Availability)技术的一种。
HA是一整套综合技术,主要包括冗余容错、链路保证、节点故障修复及流量工程。
GR是一种冗余容错技术,目前已经被广泛的使用在主备切换和系统升级方面,以保证关键业务的不间断转发。与GR相关的概念如下:
1、Grace-LSA
OSPF通过新增Grace-LSA来支持GR功能。这种LSA用于在开始GR和退出GR时向邻居通告GR的时间、原因以及接口地址等内容。
2、路由器在GR中的角色
Restarter:
重启路由器。可以通过配置支持完全GR或者部分GR。
Helper:
协助重启路由器。可以通过配置支持有计划GR、无计划GR或者通过策略有选择支持GR。
3、GR的原因
Unknown:未知原因导致的GR操作。
Software restart:通过命令行主动触发的GR操作。
Software reload/upgrade:软件重启或升级导致的GR操作。
Switch to redundant control processor:异常主备倒换导致的GR操作。
4、GR的持续时间
GR持续时间最长不超过1800秒。GR成功或失败都可以提前退出,不必等到超时才退出。
43.2、GR的分类
1、完全GR(Totally GR):
指当有一个邻居不支持GR功能时,整个路由器退出GR状态。
2、部分GR(Partly GR):
指当有一个邻居不支持GR时,仅该邻居所关联的接口退出GR,其它接口正常进行GR过程。
3、有计划GR(Planned GR):
指手动通过命令使路由器执行重启或主备倒换。在进行重启或主备倒换前Restarter会先发送Grace-LSA。
4、非计划GR(UnPlanned GR):
与Planned GR的区别在于,路由器是由于故障等原因进行重启或主备倒换,并且在主备倒换前不会事先发送Grace-LSA,而是直接开始主备倒换,在备板正常Up后才进入GR过程。以下的步骤同Planned GR。
1、GR开始
对于Planned GR,主备倒换命令执行后,Restarter会首先向每个邻居发送一个Grace-LSA,通知邻居GR的开始以及GR的周期、原因等,然后进行主备倒换。
对于UnPlanned GR,则不发送这个Grace-LSA。
当备板正常Up后,立即发送一个Grace-LSA,通知邻居自己进入GR,包括GR的周期、原因等。然后会再向每个邻居连续发送5个Grace-LSA。(连续发送5个是为了确保邻居收到该Grace-LSA。此为各厂商实现方案,非协议规定)。
此时发送的Grace-LSA是为了告知邻居自己进入GR状态,邻居会在GR期间保持与Restarter的邻居关系,让其它路由器感知不到Restarter的倒换。
2、GR过程

图1 OSPF GR过程
3、GR退出
GR执行情况 |
Restarter |
Helper |
GR成功 |
Restarter在GR超时前与主备倒换前的所有邻居都重新建立好邻居关系。 |
收到Restarter发送的Age为3600秒的Grace-LSA时与Restarter的邻居关系为Full状态。 |
GR失败 |
GR超时并且邻居关系尚未完全恢复。 Helper发送的Router-LSA或Network-LSA导致Restarter端进行双向检查时失败。 Restarter接口状态变化。 Restarter收到Helper发送的1-way Hello报文。 Restarter收到同一网段上另一台路由器产生的Grace-LSA。同一网段同一时间只能有一台路由器做GR。 Restarter同一个网段的邻居之间存在DR/BDR不一致的情况(拓扑变化)。 |
在邻居关系超时前没有收到Restarter发送的Grace-LSA。 Helper接口状态发生变化。 收到其它路由器发送的与Helper本地数据库不一致的LSA。(可以通过配置不进行严格LSA检查排除这种情况。) 同一网段上同一时间收到两台路由器发送的Grace-LSA。 与其它路由器邻居关系变化。 |
43.4、有无GR技术的主备倒换比较
无GR技术的主备倒换 |
有GR技术的主备倒换 |
OSPF邻居重建 路由重新计算 转发表变化 整网感知路由变化,路由短时震荡转发流量丢失,业务中断 |
OSPF邻居重建 路由重新计算 转发表保持不变 除主备倒换设备的邻居外的其他路由器感知不到路由变化转发流量零丢失,业务不受影响 |
在存在主备链路的网络中,当主链路故障恢复后,流量会从备份链路切换到主链路。
由于IGP的收敛在LDP会话建立之前完成,导致旧的LSP已经删除,新的LSP还没有建立,因此LSP流量中断。

图1 OSPF-LDP联动
如上图1所示,PE1-P1-P2-P3-PE2为主链路,PE1-P1-P4-P3-PE2为备份链路。
主链路发生故障,流量从主链路切换到备份链路。主链路故障恢复,流量从备份链路回切到主链路,此时流量会有较长时间的中断。
通过在P1和P2上配置标签分发协议LDP(Label Distribution Protocol)和IGP同步功能,能够缩短流量从备份链路切换到主链路时的中断时间。
是否使能OSPF-LDP联动特性 |
流量中断时间 |
不使能OSPF-LDP联动特性 |
秒级 |
使能OSPF-LDP联动特性 |
毫秒级 |
通过抑制IGP建立邻居关系来推迟路由的回切,直至LDP完成收敛。也就是在主链路的LSP建立之前,先保留备份链路,让流量继续从备份链路转发,直至主链路的LSP建立成功,再删除备份链路。
LDP和IGP同步包括三个定时器:
1、Hold-down
2、Hold-max-cost
3、Delay
当主链路故障恢复后,路由器进行以下操作:
1、启动Hold-down定时器,IGP接口先不建立IGP邻居,等待LDP会话的建立。
2、Hold-down定时器超时后,启动Hold-max-cost定时器。IGP在本地路由器的链路状态通告中,向主链路通告接口链路的最大metric值。
3、故障链路的LDP会话重新建立以后,启动Delay定时器等待LSP的建立。
4、Delay定时器超时以后,无论IGP的状态如何,LDP都通知IGP同步流程结束。
45、OSPF DatabASe Overflow(数据库超限)
OSPF协议要求同一个区域中的路由器保存相同的链路状态数据库LSDB(Link-State DatabASe)。
随着网络上路由数量不断增加,一些路由器由于系统资源有限,不能再承载如此多的路由信息,这种状态就被称为数据库超限(OSPF DatabASe Overflow)。
对于路由信息不断增加导致路由器系统资源耗尽而失效的问题,可以通过配置Stub或NSSA区域来解决,但Stub或NSSA区域的方案不能解决动态路由增长导致的数据库超限问题。
为了解决数据库超限引发的问题,通过设置LSDB中External LSA的最大条目数,可以动态限制链路数据库的规模。通过设置路由器上非缺省外部路由数量的上限,来避免数据库超限。
OSPF网络中所有路由器都必须配置相同的上限值。这样,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同时启动超限状态定时器(默认超时时间为5秒),路由器在定时器超过5秒后自动退出超限状态。
Overflow状态阶段 |
OSPF处理流程 |
进入Overflow状态时 |
路由器删除所有自己产生的非缺省外部路由。 |
处于Overflow状态中 |
不产生非缺省外部路由。 丢弃新收到的非缺省外部路由,不回复确认报文。 当超限状态定时器超时,检查外部路由数量是否仍然超过上限。 N=>退出超限状态。 Y=>重启定时器。 |
退出Overflow状态时 |
删除超限状态定时器。 产生非缺省外部路由。 接收新收到的非缺省外部路由,回复确认报文。 准备下一次进入超限状态。 |
OSPF Mesh-Group是将并行链路场景中的链路分组,从而洪泛时从群组中选取代表链路进行洪泛,避免重复洪泛而造成不必要的系统压力。
当OSPF进程收到一个LSA或者新产生一个LSA时,会进行洪泛操作。并行链路场景下,OSPF会对每一条链路洪泛LSA,发送Update报文。
这样,如果有2000条并行链路,则每个LSA洪泛都要发送2000次,然而只有一次洪泛是有效的,其他1999次洪泛为重复洪泛。
为了避免这种重复洪泛而造成的系统压力,使能Mesh Group特性,可以将并行链路进行归组,选取代表链路进行洪泛。
图1 没有使能OSPF Mesh-Group特性时LSA的洪泛情况
如上图1所示,RouterA和RouterB建立OSPF邻居关系,通过3条链路相连。当RouterA从接口4接收到新的LSA后,会将该LSA通过1、2、3接口洪泛到RouterB。
这种洪泛方式会造成并行链路的压力,因为对于存在多条并行链路的邻居来说,只需要选取一条主链路进行洪泛LSA即可。
使能了OSPF Mesh-Group特性的设备和邻居存在多条并行链路时,当其收到LSA后,会选取一条主链路进行泛洪,如下图2所示。
图2 使能OSPF Mesh-Group特性时LSA的洪泛情况
当主链路上接口状态低于Exchange时,OSPF会在并行链路中重新选取主链路,并继续洪泛LSA,这是因为,OSPF规定,只有当邻居状态达到Exchange时,才能洪泛LSA。并且,当RouterB从链路1收到来自RouterA洪泛的LSA后,不会再将该LSA从链路2、3反向洪泛给RouterA。
Mesh-Group以邻居的Router ID唯一标识一个群组,接口状态大于Exchange且与同一个邻居相连的接口属于同一个Mesh-Group。
图3 接口不能加入到群组中的情况
如上图3所示,RouterA在区域0中有一个群组,分别是接口1和接口2所在的链路。由于接口3所在的链路为广播链路,有超过一个邻居,所以不能加入到群组中。
另外,路由器使能Mesh-Group后,若其直连的邻居路由器Router ID配置重复,会引起全网LSDB不同步、路由计算不正确的情况,需要重新配置邻居路由器的Router ID(注:配置重复Router ID属于错误配置)。



本文地址:http://www.023wg.com/lypz/331.html
版权声明:若无注明,本文皆为“Swiers思唯网络博客”原创,转载请保留文章出处。

