IS-IS GR技术白皮书
关键词:IS-IS、GR、LSDB
摘 要:GR技术属于高可靠性技术的一种,可以在路由协议重启时保证数据的正常转发,从而保证关键业务不中断,目前已经被广泛地使用在路由器主备切换和系统升级方面。本文档较为详尽地描述了针对IS-IS协议实现GR的技术细节以及典型组网应用。
说 明:本文中所指的路由器代表了一般意义下的路由器,以及运行了路由协议的三层交换机。为提高可读性,在本文的描述中将不再另行说明。
缩略语清单:
缩略语 | 英文全名 | 中文解释 |
IS-IS | Intermediate System-to-Intermediate System intra-domain routing information exchange protocol | 中间系统到中间系统的域内路由信息交换协议 |
GR | Graceful Restart | 平滑重启 |
PDU | Protocol Data Unit | 协议数据单元 |
IIH PDU | Intermediate System-to-Intermediate System Hello PDU | IS-IS Hello协议报文 |
LSP | Link State Protocol Data Unit | 链路状态协议数据单元 |
LSDB | Link State Database | 链路状态数据库 |
SNP | Sequence Numbers PDU | 序列号报文 |
PSNP | Partial Sequence Numbers PDU | 部分时序报文 |
CSNP | Complete Sequence Numbers PDU | 全时序报文 |
RR | Restart Request | 重启请求 |
RA | Restart Acknowledgement | 重启确认 |
SA | Suppress Adjacency | 抑制邻接 |
DIS | Designed Intermediate System | 指定中间系统 |
RIB | Routing Information Base | 路由信息库 |
FIB | Forwarding Information Base | 转发信息库 |
目 录
GR(Graceful Restart,平滑重启)是一种在主备切换或协议重启时保证转发业务不中断的机制。其核心在于:设备进行协议重启时,能够通知其周边设备,使到该设备的邻居关系和路由在一定时间内保持稳定。在协议重启完毕后,周边设备协助其进行信息(包括支持GR的相关协议所维护的各种拓扑、路由和会话信息)同步,在尽量短的时间内恢复到重启前的状态。在协议重启过程中不会产生路由振荡,报文转发路径也没有任何改变,整个系统可以实现不间断运行。
IS-IS GR可以保证运行IS-IS协议的路由器在进行主备切换或IS-IS协议重启时,转发业务正常进行。
一台路由器的IS-IS协议重启之后,会发送Hello报文以发现邻居,而邻居路由器因为之前已经和该路由器建立有邻居关系,因此收到该Hello报文之后就会把该路由器从邻居列表中删除,断开与该路由器的邻居关系,并通知其他路由器。当该路由器与邻居路由器重新建立ISIS邻居关系后,会重新同步所有的路由信息数据,而周边路由器也需要重新进行路由计算,这样就会引起网络的路由振荡以及转发中断,这对于一个可靠性要求较高的网络来说是不可接受的。
如何能使协议重启而不引起网络振荡和转发中断呢?由于分布式设备的控制与转发是分开的,主控板负责整个设备的控制与管理,包括协议运行和路由计算,而接口板则负责数据转发。这样当发生主备倒换或协议重启时,数据转发仍然可以不中断进行。
同时,如果在重启期间周边设备能维持邻居关系不变并保持路由稳定,并且在设备重启后能协助设备进行路由信息同步,在尽量短的时间内使得本设备的路由信息恢复到重启前的状态,那么就可以保持网络拓扑稳定,不引起网络路由振荡。
为了实现这个目的,IETF针对IS-IS路由协议提出了增强协议,即IS-IS GR。通过此协议,可以避免网络的路由振荡及转发中断。
l 减少协议重启或主备切换时路由振荡对全网的影响
IS-IS GR的基本术语:
l GR Restarter:发生协议重启事件且具有GR能力的设备。
l GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
l GR Session:IS-IS邻居建立时进行关于GR能力的协商,一般把GR能力协商过程称为GR Session。协商的内容包括双方是否都具备GR能力等。一旦GR能力协商通过,当协议重启时就可以进入GR流程。
分布式设备可以充当GR restarter和GR helper;而集中式设备只能充当GR helper,协助GR restarter完成GR流程。
IS-IS为了支持GR能力,对协议进行了如下扩展:
l 在ISIS Hello报文中新增了Restart TLV(TLV 211)
l 引入了T1、T2和T3三个定时器
为了能够在GR Restarter重启时顺利通知GR Helper,增加了一个Type为211的Restart TLV。Length根据TLV填写的具体情况而定,但必须在1到3 + ID Length的范围内,Value的具体内容如下图所示:
Flags记录了一些必要的状态标志位,长度为1字节,具体格式如下图所示:
图2 Restart TLV中Flags字段结构图
目前只用了最后三位作为相应标志位。
(1) RR/RA
l RR:Restart请求标志位,当RR位为1时表示该路由器刚刚发生了重启;
l RA:Restart确认标志位,当RA位为1时表示是对重启路由器的应答。
当GR Restarter重启后,在每个接口上发的第一个Hello报文中将RR标志位置1,通知GR Helper本设备正在重启;当GR Helper收到GR Restarter发来带有RR标志位的Hello报文时,立即回复一个将RA标志位置1的Hello报文作为对对方请求的确认。
(2) SA
SA表示抑制邻接标志位,是一个可选项,其主要目的是为了避免出现路由黑洞,例如在启动的情况下,此时如果GR Helper将报文送到本设备来进行转发将是一个黑洞,会造成严重的丢包现象,在这种情况下GR Restarter发送的Hello报文中必须将SA位置1,而GR Helper接收到这种SA位被置1的Hello报文后就不会将发送该Hello报文的GR Restarter放入LSP扩散出去,即GR Restarter将在网络上被屏蔽一段时间,所有设备都不会将报文送到GR Restarter上来进行转发,这样就可以有效的避免路由黑洞问题。
Remaining Time表示邻居老化的剩余时间(秒),即邻居设备进入GR Helper处理流程的最长保持时间。如果超出这个时间,则GR Restarter和GR Helper的邻居关系结束。当GR Helper收到GR Restarter发送的带有RR标志位的Hello报文后,会立即回复一个将RA标志位置1的Hello报文作为确认,在这个确认报文中,需要将对应邻居(GR Restarter)离老化时间的剩余秒数填入Remaining Time字段。
Restarting Neighbor ID的内容是GR Restarter的System ID。当GR Helper收到带有RR标志位的Hello报文时,将报文中的System ID字段值填入Hello确认报文的Restarting Neighbor ID字段中,并发送此确认报文。这样就严格指定了该Hello确认报文的目的设备。当多个GR Restarter同时收到该Hello确认报文时,比较该报文中的Restarting Neighbor ID与本设备的System ID是否相同,就可以判断是否需要处理该确认Hello报文。
为了支持IS-IS GR特性,新扩展协议定义了T1、T2和T3三种定时器。
l T1定时器类似于ISIS协议中的IIH定时器,每个接口都有一个,它定义了发送带RR标志位的Hello报文的重传时间。当设备重启时在每一个接口上都会创建T1定时器,并周期性的发送带RR标志位的Hello报文,直到在对应接口上收到带RA标志位的Hello确认报文以及全部CSNP报文后,该接口上的T1定时器才会被取消。当接口上没有邻居或者没有支持GR特性的邻居时,该接口就一直无法收到带RA标志位的Hello确认报文,因此T1定时器就会永远得不到撤销,为了避免这种情况发生,ISIS GR限制了T1定时器的最大超时次数,当T1定时器超时次数超过这个最大值时就自动撤销该T1定时器。
l T2定时器定义了设备重启后LSDB同步的最大等待时间。每个LSDB数据库都有一个定时器,例如对于Level-1-2路由器来说,就需要有两个T2定时器,一个为Level-1 LSDB同步的最大等待时间,另外一个为Level-2 LSDB同步的最大等待时间。当某个Level的LSDB同步完成之后,相应Level的T2定时器就会被取消。如果T2定时器超时后LSDB还没有同步完成,则撤销T2定时器,GR失败。
l T3定时器定义了设备重启过程的最大持续时间。整个IS-IS路由器只有一个T3定时器。T3定时器初始化为65535秒,但是在各个接口上收到的带RA标志位的Hello确认报文后会根据这些报文中的Remaining Time的最小值来重新设定T3定时器的超时时间。如果T3定时器超时后LSDB同步还没有结束,T3定时器被撤销,GR失败。
下面以一个简单的组网模型来介绍ISIS GR的运行过程。如图3所示,Router A和Router B通过接口Ethernet1/1相连,两台路由器在接口Ethernet1/1都使能了IS-IS并且能正常运行。
图3 IS-IS简易组网图
假设Router A和Router B原来有稳定的IS-IS邻居关系,并且Router A使能了GR能力,此时Router A重启,将按照以下的流程进行路由信息交互。
图4 IS-IS GR协议流程图
具体工作流程如下:
(1) 当Router A的IS-IS协议被重新全局使能时启动T2和T3定时器。当Router A的接口Ethernet1/1重新up并使能协议时,在接口Ethernet1/1上启动T1定时器,并且将接口Ethernet1/1上发出的Hello报文Restart TLV中Flags字段的RR标志位置为1。
(2) 当Router B收到Router A发出的带有RR标志位的Hello报文后,保持邻居Router A的状态不变,立即回复一个带有RA标志位的Hello报文。之后,Router B发送CSNP报文和LSP报文给Router A以协助其进行LSDB同步。
(3) 当Router A在接口Ethernet1/1上收到了带有RA标志位的Hello报文以及接收到全部CSNP报文后就可以取消T1定时器,否则就周期性发送带有RR标志位的Hello报文,直到收到带有RA标志位的Hello报文以及全部CSNP报文或者T1定时器达到最大超时次数才取消该接口的T1定时器。
(4) 当LSDB同步完成之后,Router A取消T2定时器。
(5) 当所有T2定时器都取消之后就可以取消T3定时器,GR流程结束,正式进入IS-IS的正常流程。此时需要在所有接口上启动IIH定时器,以后就周期性的发送正常的Hello报文(Restart TLV中所有字段为0的Hello报文)。
(6) Router A在恢复所有路由信息后重新进行路由计算,重新刷新FIB表。
图6 IS-IS GR配置组网图
l 所有的路由器都运行IS-IS,Router A、Router B与骨干网相连,属于骨干节点;Router F、Router G、Router H、Router I、Router J和Router K是分支节点,通过核心节点Router C、Router D、Router E与骨干节点相连,通过骨干节点连接到骨干网上。
l 使用GR保证网络中的骨干节点和核心节点在出现协议重启时的转发业务不中断,避免出现不必要的路由振荡。
l 骨干节点和核心节点做为GR Restarter(同时缺省也做为GR Helper),分支节点做为GR Helper。这样当骨干节点发生主备切换或重启IS-IS进程时,核心节点可以作为GR Helper协助其进行LSDB重同步,并且保持转发不中断;当核心节点发生主备切换或重启IS-IS进程时,骨干节点和分支节点都可以作为GR Helper协助其进行LSDB重同步,并且保持转发不中断。
l ISO 10589:ISO IS-IS Routing Protocol
l RFC 1195:Use of OSI IS-IS for Routing in TCP/IP and Dual Environments
l RFC 3847:Restart Signaling for Intermediate System to Intermediate System (IS-IS)
Copyright ©2008 杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。