一、概述
IS-IS GR是一种支持GR能力的高可靠性技术,可以实现数据的不间断转发。与我们之前介绍的OSPF的GR功能几乎一致,但实现方法并不相同。
1、GR
支持GR的ISIS的设备,IIH报文中一定会携带TLV211(GR),TLV211包含的字段
(1)RR:restart request 请求重启,默认是3秒发送1次,发送3次
(2)RA:restart ack 请求确认
(3)SA:抑制发布邻接关系位
(4)holdtime:邻居保持邻接关系不重置的时间
2、GR的三个定时器
为了实现GR,IS-IS引入211号TLV(Restart TLV)和T1、T2、T3三个定时器。
T1定时器:如果GR Restarter已发送RR置位的IIH报文,但直到T1定时器超时还没有收到GR Helper的包含Restart TLV且RA置位的IIH报文的确认消息时,会重置T1定时器并继续发送包含Restart TLV的IIH报文。当收到确认报文或者T1定时器已超时3次时,取消T1定时器。T1定时器缺省设置为3秒。
T2定时器:GR Restarter从重启开始到本Level所有设备LSDB完成同步的时间。T2定时器是系统等待各层LSDB同步的最长时间,一般情况下为60秒。
T3定时器:GR Restarter成功完成GR所允许的最大时间。T3定时器的初始值为65535秒。T3定时器超时表示GR失败。
二、工作原理
GR的过程(Restarting)
主备倒换和重启IS-IS进程触发的GR过程称为Restarting,FIB表保持不变。
1、GR Restarter进行协议重启后,GR Restarter进行如下操作:
- 启动T1、T2和T3定时器。
- 从所有接口发送包含Restart TLV的IIH报文,其中RR置位,RA和SA位清除。
2、GR Helper收到IIH报文以后,进行如下操作:
- GR Helper维持邻居关系,刷新当前的Holdtime。
- 回送一个包含Restart TLV的IIH报文(RR清除,RA置位,Remaining time是从现在到Holdtime超时的时间间隔)。
- 发送CSNP报文和所有LSP报文给GR Restarter。
3、GR Restarter接收到邻居的IIH回应报文(RR=0、RA=1),做如下处理:
- 把T3的当前值和报文中Remaining time比较,取其中较小者作为T3的值。
- 在接口收到确认报文和CSNP报文之后,取消该接口的T1定时器。
- 如果该接口没有收到确认报文和CSNP报文,T1会不停地重置,重发含Restart TLV的IIH报文。如果T1超时次数超过阈值,GR Restarter强制取消T1定时器,启动正常的IS-IS处理流程。
4、当GR Restarter所有接口上的T1定时器都取消,CSNP列表清空并且收集全所有的LSP报文后,可以认为和所有的邻居都完成了同步,取消T2定时器。
5、T2定时器被取消,表示本Level的LSDB已经同步。
- 如果是单Level系统,则直接触发SPF计算。
- 如果是Level-1-2系统,此时判断另一个Level的T2定时器是否也取消。如果两个Level的T2定时器都被取消,那么触发SPF计算,否则等待另一个Level的T2定时器超时。
6、各层的T2定时器都取消后,GR Restarter取消T3定时器,更新FIB表。GR Restarter可以重新生成各层的LSP并泛洪,在同步过程中收到的自己重启前生成的LSP此时也可以被删除。
7、至此,GR Restarter的IS-IS Restarting过程结束。
GR的过程(Starting)
设备重启触发的GR过程称为Starting,进行FIB表更新。
对于Starting设备,因为没有保留FIB表项,所以一方面希望在Starting之前和自己的邻接关系为“Up”的邻居重置和自己的邻接关系,同时希望邻居能在一段时间内抑制和自己的邻接关系的发布。
1、GR Restarter Starting后,进行如下操作:
- 为每层LSDB的同步启动T2定时器。
- 从各个接口发送携带Restart TLV的IIH报文,其中RR位清除,SA位置位。
2、邻居收到携带Restart TLV的IIH报文,根据设备是否支持GR,进行如下处理:
- 支持GR:重新初始化邻接关系。
- 不支持GR:邻居忽略Restart TLV,重置和GR Restarter之间的邻接关系。
3、邻接关系重新初始化之后,在每个接口上GR Restarter都和邻居重建邻接关系。当有一个邻接关系到达Up状态后,GR Restarter为该接口启动T1定时器。
4、在T1定时器超时之后,GR Restarter发送RR置位、SA置位的IIH报文
5、邻居收到RR置位和SA置位的IIH报文后,发送一个RR清除、RA置位的IIH报文作为确认报文,并发送CSNP报文。
6、GR Restarter收到邻居的IIH确认报文和CSNP报文以后,取消T1定时器。
7、如果没有收到IIH报文或者CSNP报文,就不停重置T1定时器,重发RR置位、SA置位的IIH报文。如果T1超时次数超过阈值,GR Restarter强制取消T1定时器,进入正常的IS-IS处理流程完成LSDB同步。
8、GR Restarter收到Helper端的CSNP以后,开始同步LSDB。
9、本Level的LSDB同步完成后,GR Restarter取消T2定时器。
10、所有的T2定时器都取消以后,启动SPF计算,重新生成LSP,并泛洪。
11、至此,GR Restarter的IS-IS Starting过程完成。
GR的相关实验案例与配置命令将在下章详细介绍,以上就是本章的全部内容了,感谢大家的浏览观看!文章若有错误或疑问可联系博主删除更改,非常欢迎私聊博主讨论。