OSPF GR技术白皮书
关键词:OSPF,GR
摘 要:GR技术属于高可靠性技术的一种,可以在路由协议重启时保证数据的正常转发,从而保证关键业务不中断。目前已经被广泛地使用在路由器主备切换和系统升级方面。本文档较为详尽地描述了针对OSPF协议实现GR的技术细节以及典型组网应用。
说 明:本文中所指的路由器代表了一般意义下的路由器,以及运行了路由协议的三层交换机。为提高可读性,在本文的描述中将不再另行说明。
缩略语:
缩略语 | 英文全名 | 中文解释 |
DD | Database Description | 链路状态信息库描述 |
GR | Graceful Restart | 平滑重启 |
HA | High Availability | 高可靠性 |
LLS | Link Local signaling | 本地链路信令 |
LSA | Link State Advertisement | 链路状态信息公告 |
LSR | Link State Request | 链路状态信息请求 |
LSU | Link State Update | 链路状态信息更新 |
OOB | Out-of-band LSDB Resynchronization | 带外的链路状态信息库重新同步 |
OSPF | Open Shortest Path First | 开放最短路径优先路由协议 |
目 录
GR(Graceful Restart,平滑重启)是一种在主备切换或协议重启时保证转发业务不中断的机制。其核心在于:设备进行协议重启时,能够通知其周边设备,使到该设备的邻居关系和路由在一定时间内保持稳定。在协议重启完毕后,周边设备协助其进行信息(包括支持GR的相关协议所维护的各种拓扑、路由和会话信息)同步,在尽量短的时间内恢复到重启前的状态。在协议重启过程中不会产生路由振荡,报文转发路径也没有任何改变,整个系统可以实现不间断运行。
OSPF GR可以保证运行OSPF协议的路由器在进行主备切换或OSPF协议重启时,转发业务正常进行。
一台路由器的OSPF协议重启之后,会发送Hello报文以发现邻居,而邻居路由器因为之前已经和该路由器建立有邻居关系,因此收到该Hello报文之后就会把该路由器从邻居列表中删除,断开与该路由器的邻居关系,并通知其他路由器。当该路由器与邻居路由器重新建立OSPF邻居关系后,会重新同步所有的路由信息数据,而周边路由器也需要重新进行路由计算,这样就会引起网络的路由振荡以及转发中断,对于一个大型网络,尤其是运营商网络,这些路由振荡和转发中断是不可容忍的。
如何能使协议重启而不引起网络振荡和转发中断呢?由于分布式设备的控制与转发是分开的,主控板负责整个设备的控制与管理,包括协议运行和路由计算,而接口板则负责数据转发。这样当发生主备倒换或协议重启时,数据转发仍然可以不中断进行。
同时,如果在重启期间周边设备能维持邻居关系不变并保持路由稳定,并且在设备重启后能协助设备进行路由信息同步,在尽量短的时间内使得本设备的路由信息恢复到重启前的状态,那么就可以保持网络拓扑稳定,不引起网络路由振荡。
为了实现这个目的,OSPF路由协议进行了扩展,即OSPF GR。通过OSPF GR,可以避免网络的路由振荡及转发中断。
l 减少协议重启或主备切换时路由振荡对全网的影响
l 减少单点故障,提高整个网络的可靠性
l GR Restarter:发生协议重启事件且具有GR能力的设备。
l GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
l GR Session:OSPF邻居建立时进行关于GR能力的协商,一般把GR能力协商过程称为GR Session。协商的内容包括双方是否都具备GR能力等。一旦GR能力协商通过,当协议重启时就可以进入GR流程。
分布式设备可以充当GR restarter和GR helper;而集中式设备只能充当GR helper,协助GR restarter完成GR流程。
l 一种是基于IETF标准,Restarter通过向Helper发送一种称为Grace LSA的9类Opaque LSA来控制GR的交互过程。
l 另外一种是非IETF标准,Restarter与Helper之间是通过相互发送携带LLS与OOB扩展信息的OSPF报文来完成GR的交互过程。
GR Restarter上只能配置IETF标准与非IETF标准其中的一种能力,两种方式是互斥的。
对OSPF协议做了如下扩展:增加一种9类Opaque LSA――Grace LSA,用以在GR Restarter重启时,通知周边邻居进入GR Helper流程。
Grace LSA格式如图1所示:
其中,几个主要的TLV介绍如下:
l Grace Period TLV:Type取值为1,长度为4字节,表示邻居设备进入GR Helper处理流程的最长保持时间。如果超过这段时间GR Restarter还没有完成GR处理流程,则周边邻居不再担任GR Helper角色。该TLV是Grace LSA必须携带的。
l Graceful Restart Reason TLV:Type取值为2,长度为1字节,告知邻居设备GR Restarter的重启原因。Value取值为0表示原因未知,取值为1表示软件重启,取值为2表示软件重新加载(升级),取值为3表示GR Restarter进行主备倒换。Grace LSA中必须携带该TLV。
l IP Interface Address TLV:Type取值为3,长度为4字节,用来告知发送Grace LSA的接口的IP地址,在网络上需要用该IP地址来唯一标识一台重启设备。
假设Router A和Router B原来有稳定的OSPF邻居关系,并且Router A使能了GR能力,此时Router A重启,将按照以下的流程进行路由信息交互。
图2 IETF 标准OSPF GR运行示意图
如图2所示,具体工作流程如下:
(1) Router A重启之后向Router B发送Grace LSA。
(2) Router B收到Router A发出的Grace LSA后,会维持与Router A的邻居关系不变。
(3) Router A 与Router B进行Hello报文与DD报文交互和LSDB同步。由于GR过程中不能生成LSA,所以在LSDB同步过程中,如果Router A从Router B收到自己产生的LSA,直接存储下来并置上Stale标志。
(4) 完成LSDB的同步之后,Router A发送Grace LSA(Grace Period TLV的Type值为0)通知Router B结束GR流程。Router A进入正常OSPF流程,然后Router A重新生成LSA,并删除那些置了Stale标志而又没有被重新生成的LSA。
(5) Router A在恢复所有路由信息后重新进行路由计算,重新刷新FIB表。
与IETF标准的OSPF GR相比,非IETF标准GR主要是通过下面两个能力扩展来支持OSPF GR:
l Link-Local Signaling(LLS):OSPF本地链路通告扩展,用来标识当前路由器和其他路由器进行一些可选信息的通信。
l Out-of-band LSDB Resynchronization(OOB):带外的LSDB重新同步,完成无邻接关系变化的LSDB重新同步。
在OSPF的Hello报文和DD报文的尾部增加了LLS Data。同时对Hello报文和DD报文的Option字段进行扩展,以标识是否携带LLS。如果L位置1表示携带了LLS Data,Option字段格式如图3所示:
经过扩展后的报文格式如图4所示:
图4 LLS扩展后的OSPF报文格式图
LLS Data的具体的格式如图5所示:
LLS Data中的TLV可以用于进行不同的OSPF扩展。例如为支持GR,使用了类型为1的TLV,即Extended Option TLV(EO TLV)。下面我们讲一下EO TLV里两个重要字段:
l LR字段:用以实现OOB能力的协商,LR在EO TLV中的位置如图6所示。如果当前路由器具备OOB能力,则在发送Hello和DD报文时将LR(LSDB Resynchronization)进行置位;否则不对LR进行置位。关于OOB能力的介绍请参考2.3.2 OOB能力扩展。
图6 EO TLV LR位说明图
l RS字段:用以通知邻居当前路由器进入GR流程,RS在EO TLV中的位置如图7所示。当路由器需要短暂离开网络时,可以通过将Hello报文中的RS(Restart Signal)置位来向周边邻居通知自己需要进入GR流程,这样周边邻居就会保持与此路由器的邻居关系不变;否则不对RS进行置位。
图7 EO TLV RS位说明图
当路由器通过LLS完成OOB能力协商,确认双方都具备OOB能力后,则表示可以在邻居关系和网络拓扑稳定时进行LSDB同步,即进入OOB流程。这时需要在向邻居发送的DD报文中将Option字段中的R进行置位,R在Option字段中的位置如图8所示。
图8 DD报文
假设Router A和Router B原来有稳定的IS-IS邻居关系,并且Router A使能了GR能力,此时Router A重启,将按照以下的流程进行路由信息交互。
图9 非IETR标准GR同步过程
如图9所示,具体工作流程如下:
(1) Router A重启后向Router B发送LR和RS都置位的Hello报文,向Router B通告自己只是暂时断开马上就会恢复正常,并且自己具备OOB能力;
(2) Router B收到Hello报文后,也会向Router A回复一个LR仍保持置位但是RS位已经清除的Hello报文,向Router A通告自己已经知道它是要短暂离开,并且自己也具备OOB能力;
(3) Router A向Router B发送R置位的DD报文,向Router B发起LSDB同步请求,在LSDB同步期间,Router B不会将Router A从自己的邻居列表中删除,在自己生成的Router LSA(Network LSA)中,与Router A的邻居关系仍然为Full。由于GR过程中不能生成LSA,所以在LSDB同步过程中,如果Router A从Router B收到自己产生的LSA,直接存储下来并置上Stale标志。
(4) 完成LSDB的同步之后,Router A结束GR流程,进入正常OSPF流程,然后Router A重新生成LSA,并删除那些置了Stale标志而又没有被重新生成的LSA。Router B在和Router A的邻居关系重新达到Full状态后退出GR流程,进入正常OSPF流程。
(5) Router A在恢复所有路由信息后重新进行路由计算,重新刷新FIB表。
图1 OSPF GR配置组网图
l Router A、Router B、Router C、Router D、Router E、Router G、Router H、Router I、Router J、Router K、Router L运行OSPF协议;
l Router A、Router B与骨干网相连,属于骨干节点;
l Router G、Router H、Router I、Router J、Router K、Router L是分支节点,通过核心节点Router C、Router D、Router E与骨干节点相连,通过骨干节点连接到骨干网上。
l 使用GR保证网络中的骨干节点和核心节点在出现协议重启时的转发业务不中断,避免出现不必要的路由振荡。
l 骨干节点和核心节点作为GR Restarter(同时缺省也作为GR Helper),分支节点作为GR Helper。这样当骨干节点发生主备切换或重启OSPF进程时,核心节点可以作为GR Helper协助其进行LSDB重同步,并且保持转发不中断;当核心节点发生主备切换或重启OSPF进程时,骨干节点和分支节点都可以作为GR Helper协助其进行LSDB重同步,并且保持转发不中断。
l RFC 2328:OSPF Version 2
l RFC 3623:Graceful OSPF Restart
l RFC 4811:OSPF Out-of-Band LSDB Resynchronization
l RFC 4812:OSPF Restart Signaling
l RFC 4813:OSPF Link-Local Signaling
Copyright ©2008 杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。