国家 / 地区

OSPF GR技术白皮书-6W100

手册下载

OSPF GR技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。



概述

GRGraceful Restart,平滑重启)是一种在主备切换或协议重启时保证转发业务不中断的机制。其核心在于:设备进行协议重启时,能够通知其周边设备,使到该设备的邻居关系和路由在一定时间内保持稳定。在协议重启完毕后,周边设备协助其进行信息(包括支持GR的相关协议所维护的各种拓扑、路由和会话信息)同步,在尽量短的时间内恢复到重启前的状态。在协议重启过程中不会产生路由振荡,报文转发路径也没有任何改变,整个系统可以实现不间断运行。

OSPF GR可以保证运行OSPF协议的路由器在进行主备切换或OSPF协议重启时,转发业务正常进行。

1.1  产生背景

一台路由器的OSPF协议重启之后,会       发送Hello报文以发现邻居,而邻居路由器因为之前已经和该路由器建立有邻居关系,因此收到该Hello报文之后就会把该路由器从邻居列表中删除,断开与该路由器的邻居关系,并通知其他路由器。当该路由器与邻居路由器重新建立OSPF邻居关系后,会重新同步所有的路由信息数据,而周边路由器也需要重新进行路由计算,这样就会引起网络的路由振荡以及转发中断,对于一个大型网络,尤其是运营商网络,这些路由振荡和转发中断是不可容忍的。

如何能使协议重启而不引起网络振荡和转发中断呢?由于分布式设备的控制与转发是分开的,主控板负责整个设备的控制与管理,包括协议运行和路由计算,而接口板则负责数据转发。这样当发生主备倒换或协议重启时,数据转发仍然可以不中断进行。

同时,如果在重启期间周边设备能维持邻居关系不变并保持路由稳定,并且在设备重启后能协助设备进行路由信息同步,在尽量短的时间内使得本设备的路由信息恢复到重启前的状态,那么就可以保持网络拓扑稳定,不引起网络路由振荡。

为了实现这个目的,OSPF路由协议进行了扩展,即OSPF GR。通过OSPF GR,可以避免网络的路由振荡及转发中断。

1.2  技术优点

·     保证协议重启或主备切换过程中转发业务不中断

·     减少协议重启或主备切换时路由振荡对全网的影响

·     减少单点故障,提高整个网络的可靠性

OSPF GR技术详细介绍

2.1  概念介绍

OSPF GR的基本术语:

·     GR Restarter:发生协议重启事件且具有GR能力的设备。

·     GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。

·     GR SessionOSPF邻居建立时进行关于GR能力的协商,一般把GR能力协商过程称为GR Session。协商的内容包括双方是否都具备GR能力等。一旦GR能力协商通过,当协议重启时就可以进入GR流程。

说明

分布式设备可以充当GR RestarterGR helper;而集中式设备只能充当GR Helper,协助GR Restarter完成GR流程。

 

目前H3C有两种方式实现OSPF GR技术:

·     一种是基于IETF标准,Restarter通过向Helper发送一种称为Grace LSALink state advertisement,链路状态信息公告)9Opaque LSA来控制GR的交互过程。

·     另外一种是非IETF标准,RestarterHelper之间是通过相互发送携带LLSLink local signaling,本地链路信令)OOBOut-of-band LSDB Resynchronization,带外的链路状态信息库重新同步)扩展信息的OSPF报文来完成GR的交互过程。

说明

GR Restarter上只能配置IETF标准与非IETF标准其中的一种能力,两种方式是互斥的。

 

2.2  IETF标准OSPF GR实现机制

OSPF协议做了如下扩展:增加一种9Opaque LSA――Grace LSA,用以在GR Restarter重启时,通知周边邻居进入GR Helper流程。

2.2.1  Grace LSA

Grace LSA格式如错误!未找到引用源。所示。

图1 Grace LSA格式

 

其中,几个主要的TLV的含义如下:

·     Grace Period TLVType取值为1,长度为4字节,表示邻居设备进入GR Helper处理流程的最长保持时间。如果超过这段时间GR Restarter还没有完成GR处理流程,则周边邻居不再担任GR Helper角色。该TLVGrace LSA必须携带的。

·     Graceful Restart Reason TLVType取值为2,长度为1字节,告知邻居设备GR Restarter的重启原因。Value取值为0表示原因未知,取值为1表示软件重启,取值为2表示软件重新加载(升级),取值为3表示GR Restarter进行主备倒换。Grace LSA中必须携带该TLV

·     IP Interface Address TLVType取值为3,长度为4字节,用来告知发送Grace LSA的接口的IP地址,在网络上需要用该IP地址来唯一标识一台重启设备。

2.2.2  IETF标准OSPF GR运行过程

(5)2所示,假设Router ARouter B原来有稳定的OSPF邻居关系,并且Router A使能了GR能力,此时Router A重启,将按照以下的流程进行路由信息交互:

(1)     Router A重启之后向Router B发送Grace LSA

(2)     Router B收到Router A发出的Grace LSA后,会维持与Router A的邻居关系不变。

(3)     Router ARouter B进行Hello报文与DDDatabase Description,链路状态信息库描述)报文交互和LSDB同步。由于GR过程中不能生成LSA,所以在LSDB同步过程中,如果Router ARouter B收到自己产生的LSA,直接存储下来并置上Stale标志。

(4)     完成LSDB的同步之后,Router A发送Grace LSAGrace Period TLVType值为0)通知Router B结束GR流程。Router A进入正常OSPF流程,然后Router A重新生成LSA,并删除那些置了Stale标志而又没有被重新生成的LSA

(5)     Router A在恢复所有路由信息后重新进行路由计算,重新刷新FIB表。

图2 IETF标准OSPF GR运行示意图

 

2.3  IETF标准OSPF GR实现机制

IETF标准的OSPF GR相比,非IETF标准GR主要是通过下面两个能力扩展来支持OSPF GR

·     Link-Local SignalingOSPF本地链路通告扩展用来标识当前路由器和其他路由器进行一些可选信息的通信。

·     Out-of-band LSDB Resynchronization:带外的LSDB重新同步,完成无邻接关系变化的LSDB重新同步。

2.3.1  LLS能力扩展

OSPFHello报文和DD报文的尾部增加了LLS Data。同时对Hello报文和DD报文的Option字段进行扩展,以标识是否携带LLS。扩展后的Option字段如3所示,如果L位置1表示携带了LLS Data

图3 Option字段

 

经过扩展后的报文格式如4所示。

图4 LLS扩展后的OSPF报文格式图

 

LLS Data的具体的格式如5所示。

图5 LLS Data字段

 

LLS Data中的TLV可以用于进行不同的OSPF扩展。例如为支持GR,使用了类型为1TLV,即Extended Option TLVEO TLV)。下面我们讲一下EO TLV里两个重要字段:

·     LR字段:用以实现OOB能力的协商,LREO TLV中的位置如6所示。如果当前路由器具备OOB能力,则在发送HelloDD报文时将LRLSDB Resynchronization)进行置位;否则不对LR进行置位。关于OOB能力的介绍请参考2.3.2  OOB能力扩展

图6 EO TLV LR位说明图

 

·     RS字段:用以通知邻居当前路由器进入GR流程,RSEO TLV中的位置如7所示。当路由器需要短暂离开网络时,可以通过将Hello报文中的RSRestart Signal)置位来向周边邻居通知自己需要进入GR流程,这样周边邻居就会保持与此路由器的邻居关系不变;否则不对RS进行置位。

图7 EO TLV RS位说明图

 

2.3.2  OOB能力扩展

当路由器通过LLS完成OOB能力协商,确认双方都具备OOB能力后,则表示可以在邻居关系和网络拓扑稳定时进行LSDB同步,即进入OOB流程。这时需要在向邻居发送的DD报文中将Option字段中的R进行置位,ROption字段中的位置如8所示。

图8 DD报文

 

2.3.3  IETF标准OSPF GR运行过程

9所示,假设Router ARouter B原来有稳定的OSPF邻居关系,并且Router A使能了GR能力,此时Router A重启,将按照以下的流程进行路由信息交互:

(1)     Router A重启后向Router B发送LRRS都置位的Hello报文,向Router B通告自己只是暂时断开马上就会恢复正常,并且自己具备OOB能力;

(1)     Router B收到Hello报文后,也会向Router A回复一个LR仍保持置位但是RS位已经清除的Hello报文,向Router A通告自己已经知道它是要短暂离开,并且自己也具备OOB能力;

(2)     Router ARouter B发送R置位的DD报文,向Router B发起LSDB同步请求,在LSDB同步期间,Router B不会将Router A从自己的邻居列表中删除,在自己生成的Router LSANetwork LSA)中,与Router A的邻居关系仍然为Full。由于GR过程中不能生成LSA,所以在LSDB同步过程中,如果Router ARouter B收到自己产生的LSA,直接存储下来并置上Stale标志。

(3)     完成LSDB的同步之后,Router A结束GR流程,进入正常OSPF流程,然后Router A重新生成LSA,并删除那些置了Stale标志而又没有被重新生成的LSARouter B在和Router A的邻居关系重新达到Full状态后退出GR流程,进入正常OSPF流程。

(4)     Router A在恢复所有路由信息后重新进行路由计算,重新刷新FIB表。

图9 IETR标准GR同步过程

 

典型组网应用

3.1  OSPF GR典型组网应用

3.1.1  组网图

图10 OSPF GR配置组网图

 

3.1.2  组网需求

·     Router ARouter BRouter CRouter DRouter ERouter FRouter GRouter HRouter IRouter JRouter KRouter L运行OSPF协议

·     Router ARouter B与骨干网相连,属于骨干节点

·     Router GRouter HRouter IRouter JRouter KRouter L是分支节点,通过核心节点Router CRouter DRouter E与骨干节点相连,通过骨干节点连接到骨干网上。

·     使用GR保证网络中的骨干节点和核心节点在出现协议重启时的转发业务不中断,避免出现不必要的路由振荡。

·     骨干节点和核心节点作为GR Restarter(同时缺省也作为GR Helper),分支节点作为GR Helper。这样当骨干节点发生主备切换或重启OSPF进程时,核心节点可以作为GR Helper协助其进行LSDB重同步,并且保持转发不中断;当核心节点发生主备切换或重启OSPF进程时,骨干节点和分支节点都可以作为GR Helper协助其进行LSDB重同步,并且保持转发不中断。

参考文献

·     RFC 2328OSPF Version 2

·     RFC 3623Graceful OSPF Restart

·     RFC 4811OSPF Out-of-Band LSDB Resynchronization

·     RFC 4812OSPF Restart Signaling

·     RFC 4813OSPF Link-Local Signaling