IS-IS理论知识详解(五)
首页 > HuaWei > 路由配置   作者:浙江思唯网络  2016年8月3日 12:14 星期三  字号:   评论:0 条
时间:2016-8-3 12:14   评论:0 条 

IS-IS理论知识详解(五)

IS-IS理论知识详解(四):http://www.023wg.com/lypz/317.html


    27IS-IS GR

    IS-IS GRGraceful Restart)是一种支持GR能力的高可靠性技术,可以实现数据的不间断转发。

    设备发生主备倒换后,由于没有保存任何重启前的邻居信息,因此一开始发送的Hello报文中不包含邻居列表。此时邻居设备收到后,执行两次握手机制邻居关系检查,发现在重启设备的Hello报文的邻居列表中没有自己,这样邻居关系将会断掉。

    同时,邻居设备通过生成新的LSP报文,将拓扑变化的信息泛洪给区域内的其它设备。区域内的其他设备会基于新的链路状态数据库进行路由计算,从而造成路由中断或者路由环路。

    IETF针对这种情况为IS-IS制定了GR规范(RFC3847),对保留FIB表和不保留FIB表的协议重启都进行了处理,避免协议重启带来的路由震荡和流量转发中断的现象。

    1IS-IS GR基本概念:

    IS-IS GR过程由GR-RestarterGR-Helper配合完成。

    GR-Restarter:具备GR能力,且要进行GR的设备;GR-Helper:具备GR能力,辅助GR设备完成GR功能的设备。GR-Restarter一定具有GR-Helper的能力。

    为了实现GRIS-IS引入211TLVRestart TLV)和T1T2T3三个定时器。

    2IS-IS GR Restart TLV

    Restart TLV是包含在IIHIS-to-IS Hello PDUs)报文中的扩展部分。支持IS-IS GR能力的设备的所有IIH报文都包含Restart TLVRestart TLV中携带了协议重启的一些参数。其报文格式如下图1所示。

       Restart TLV格式.png

                                Restart TLV格式 

    Restart TLV各字段的含义如下表1所示。

Restart TLV报文字段含义

字段名

长度

含义

Type

1字节

    TLV的类型。值为211表示是Restart TLV

Length

1字节

    TLV值的长度。

RR

1比特

    重启请求位(Restart Request)。设备发送的RR置位的Hello报文用于通告邻居自己发生Restarting/Starting,请求邻居保留当前的IS-IS邻接关系并返回CSNP报文。

RA

1比特

    重启应答位(Restart Acknowledgement)。设备发送的RA置位的Hello报文用于通告邻居确认收到了RR置位的报文。

SA

1比特

    抑制发布邻接关系位(Suppress adjacency advertisement)。用于发生Starting的设备请求邻居抑制与自己相关的邻居关系的广播,以避免路由黑洞。

Remaining Time

2字节

    邻居保持邻接关系不重置的时间。长度是2字节,单位是秒。当RA置位时,这个值是必需的。

    3IS-IS GR定时器:

    IS-ISGR能力扩展中,引入了三个定时器,分别是T1T2T3

    3.1T1定时器:

    如果GR Restarter已发送RR置位的IIH报文,但直到T1定时器超时还没有收到GR Helper的包含Restart TLVRA置位的IIH报文的确认消息时,会重置T1定时器并继续发送包含Restart TLVIIH报文。当收到确认报文或者T1定时器已超时3次时,取消T1定时器。T1定时器缺省设置为3秒。

    使能了IS-IS GR特性的进程,在每个接口都会维护一个T1定时器。在Level-1-2路由器上,广播网接口为每个Level维护一个T1定时器。

    3.2T2定时器:

    GR Restarter从重启开始到本Level所有设备LSDB完成同步的时间。T2定时器是系统等待各层LSDB同步的最长时间,一般情况下为60秒。

    Level-1Level-2LSDB各维护一个T2定时器。

    3.3T3定时器:

    GR Restarter成功完成GR所允许的最大时间。T3定时器的初始值为65535秒,但在收到邻居回应的RA置位的IIH报文后,取值会变为各个IIH报文的Remaining time字段值中的最小者。T3定时器超时表示GR失败。

    整个系统维护一个T3定时器。

    4IS-IS GR会话机制:

    为了以示区别,主备倒换和重启IS-IS进程触发的GR过程称为RestartingFIB表保持不变。设备重启触发的GR过程称为Starting,进行FIB表更新。

    下面分RestartingStarting两种情况说明IS-IS GR的详细过程。


                IS-IS Restarting过程.png

                                            2 IS-IS Restarting过程

    IS-IS Restarting的过程如上图2所示。

    GR Restarter进行协议重启后,GR Restarter进行如下操作:

    4.1、启动T1T2T3定时器。

    从所有接口发送包含Restart TLVIIH报文,其中RR置位,RASA位清除。

    4.2GR Helper收到IIH报文以后,进行如下操作:

    GR Helper维持邻居关系,刷新当前的Holdtime

    回送一个包含Restart TLVIIH报文(RR清除,RA置位,Remaining time是从现在到Holdtime超时的时间间隔)。

    发送CSNP报文和所有LSP报文给GR Restarter

    在点到点链路上,邻居必须发送CSNP

    在广播链路上,是DIS的邻居才发送CSNP报文,如果重启的是DIS,则在LAN中的其它设备中选举一个临时的DIS

    如果邻居设备不具备GR Helper能力,就忽略Restart TLV,按正常的IS-IS过程处理,重置和GR Restarter的邻接关系。

    4.3GR Restarter接收到邻居的IIH回应报文(RR清除、RA置位),做如下处理:

    T3的当前值和报文中Remaining time比较,取其中较小者作为T3的值。

    在接口收到确认报文和CSNP报文之后,取消该接口的T1定时器。

    如果该接口没有收到确认报文和CSNP报文,T1会不停地重置,重发含Restart TLVIIH报文。如果T1超时次数超过阈值,GR Restarter强制取消T1定时器,启动正常的IS-IS处理流程。

    4.4、当GR Restarter所有接口上的T1定时器都取消,CSNP列表清空并且收集全所有的LSP报文后,可以认为和所有的邻居都完成了同步,取消T2定时器。

    4.5T2定时器被取消,表示本LevelLSDB已经同步。

    如果是单Level系统,则直接触发SPF计算。

    如果是Level-1-2系统,此时判断另一个LevelT2定时器是否也取消。如果两个LevelT2定时器都被取消,那么触发SPF计算,否则等待另一个LevelT2定时器超时。

    4.6、各层的T2定时器都取消后,GR Restarter取消T3定时器,更新FIB表。GR Restarter可以重新生成各层的LSP并泛洪,在同步过程中收到的自己重启前生成的LSP此时也可以被删除。

    4.7、至此,GR RestarterIS-IS Restarting过程结束。

            IS-IS Starting过程.png

                                           图3 IS-IS Starting过程

    对于Starting设备,因为没有保留FIB表项,所以一方面希望在Starting之前和自己的邻接关系为“Up”的邻居重置和自己的邻接关系,同时希望邻居能在一段时间内抑制和自己的邻接关系的发布。其处理过程和Restarting不同,具体如上图3所示。

    1GR Restarter Starting后,进行如下操作:

    为每层LSDB的同步启动T2定时器。

    从各个接口发送携带Restart TLVIIH报文,其中RR位清除,SA位置位。

    RR位清除表示是Starting完成。

    SA位置位则表示希望邻居在收到SA位清除的IIH报文之前,一直抑制和自己的邻接关系的发布。

    2、邻居收到携带Restart TLVIIH报文,根据设备是否支持GR,进行如下处理。

    2.1、支持GR

    重新初始化邻接关系。在发送的LSP中取消和GR Restarter邻接关系的描述,进行SPF计算时也不考虑和GR Restarter相连的链路,直到收到SA位清除的IIH为止。

    2.2、不支持GR

    邻居忽略Restart TLV,重置和GR Restarter之间的邻接关系。

    回应一个不含Restart TLVIIH报文,转入正常的IS-IS处理流程。这时不会抑制和GR Restarter的邻接关系的发布。在点到点链路上,还会发送一个CSNP报文。

    3、邻接关系重新初始化之后,在每个接口上GR Restarter都和邻居重建邻接关系。当有一个邻接关系到达Up状态后,GR Restarter为该接口启动T1定时器。

    4、在T1定时器超时之后,GR Restarter发送RR置位、SA置位的IIH报文。

    5、邻居收到RR置位和SA置位的IIH报文后,发送一个RR清除、RA置位的IIH报文作为确认报文,并发送CSNP报文。

    6GR Restarter收到邻居的IIH确认报文和CSNP报文以后,取消T1定时器。

如果没有收到IIH报文或者CSNP报文,就不停重置T1定时器,重发RR置位、SA置位的IIH报文。如果T1超时次数超过阈值,GR Restarter强制取消T1定时器,进入正常的IS-IS处理流程完成LSDB同步。

    7GR Restarter收到Helper端的CSNP以后,开始同步LSDB

    8、本LevelLSDB同步完成后,GR Restarter取消T2定时器。

    9、所有的T2定时器都取消以后,启动SPF计算,重新生成LSP,并泛洪。

    10、至此,GR Restarter的IS-IS Starting过程完成。

    

    28IS-ISBFD联动

    通常情况下,IS-IS设定发送Hello报文的时间间隔为10秒,一般将宣告邻居Down掉的时间(即邻居的保持时间)配置为Hello报文间隔的3倍。若在相邻路由器失效时间内没有收到邻居发来的Hello报文,将会删除邻居。

    由此可见路由器能感知到邻居故障的时间最小为秒级。这样可能会出现在高速的网络环境中大量报文丢失的问题。

    双向转发检测BFDBidirectional Forwarding Detection)能够提供轻负荷、快速(毫秒级)的通道故障检测,解决了IS-IS现有检测机制的不足的问题。使用BFD并不是代替IS-IS协议本身的Hello机制,而是配合IS-IS协议更快的发现邻接方面出现的故障,并及时通知IS-IS重新计算相关路由以便正确指导报文的转发。

      IS-IS BFD组网示意图.png

                                     图1 IS-IS BFD组网示意图

    如上图1所示,各路由器上使能IS-IS基本功能。在RouterARouterB上使能IS-ISBFD联动检测机制。

    当主路径上的链路出现故障时,BFD能够快速检测到故障并通告给IS-IS协议,IS-IS Down掉故障链路的接口邻居并删除邻接对应的IP协议类型,从而触发拓扑计算,同时更新LSP使得其他邻居(如RouterC)及时收到RouterB的更新LSP,实现了网络拓扑的快速收敛。

    1IS-ISBFD联动的分类

    IS-ISBFD联动包括IS-IS与静态BFD联动和IS-IS与动态BFD联动。

    1.1IS-IS与静态BFD联动

    通过命令行手工配置BFD会话参数,包括了配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。

    静态BFD的优点是可以人为控制,部署比较灵活,为了节省内存,同时又保证关键链路的可靠性,可以在某些指定链路部署BFD,而其他链路不部署。

    静态BFD的缺点在于建立和删除BFD会话时都需要手工触发,配置时缺乏灵活性。而且有可能造成人为的配置错误。例如,如果配置了错误的本地标识符或者远端标识符时,BFD会话将不能正常工作。

    1.2IS-IS与动态BFD联动

    通过IS-IS动态创建BFD的会话,不再依靠手工配置。当BFD检测到故障的时候,通过路由管理通知IS-ISIS-IS进行相应邻居Down处理,快速发布变化的LSP信息和进行增量路由计算,从而实现路由的快速收敛。

    动态BFD比静态BFD更具有灵活性。动态BFD由路由协议动态触发BFD会话建立,避免了人为控制可能导致的配置错误,且配置比较简单,适用在全网需要配置BFD的情况。

    BFD使用本地标识符(Local Discriminator)和远端标识符(Remote Discriminator)区分同一对系统之间的多个BFD会话。

    由于IS-IS只能建立单跳邻居,IS-ISBFD联动只对IS-IS邻居间的单跳链路进行检测。

    2BFD会话的创建与删除

    路由管理模块RMRouting Management Module)为IS-IS提供与BFD模块交互的相关服务。IS-IS通过RM通知BFD来动态创建或删除BFD会话,同时BFD的事件消息也通过RM传递给IS-IS

    3、创建BFD会话的条件

    各路由器配置了IS-IS基本功能并且在接口下使能了IS-IS

    各路由器配置了全局BFD功能并且使能了接口或者进程的BFD特性。

    使能了接口或者进程的BFD特性,且相邻路由器的邻居状态为Up(广播网中须等到DIS选举出来)。

    4、创建BFD会话的过程

    4.1P2P网络

    满足创建BFD会话的条件后,IS-IS将通过RM模块通知BFD模块直接在邻居间创建BFD会话。

    4.2、广播网络

    满足创建BFD会话的条件且DIS已经选举出来后,IS-IS将通过RM模块通知BFD模块,DIS与每台路由器之间都自动创建BFD会话。都不是DIS的两台路由器之间不建立BFD会话。

    虽然广播网中IS-IS同一网段上的同一级别的路由器之间都会形成邻接关系,即包括所有的非DIS路由器之间也会形成邻接关系,但在IS-ISBFD联动的实现上,只在DIS和非DIS之间建立BFD会话,非DIS之间不启动BFD会话,而P2P网络直接在邻居间创建会话。

    如果同一链路上的同一对路由器形成的是Level-1-2的类型的邻居,在广播网中IS-IS会针对这两个Level分别创建两个BFD会话,但在P2P网络中IS-IS只会创建一个BFD会话。

    5、删除BFD会话的条件

    5.1P2P网络

    IS-ISP2P网络接口类型上建立的邻接关系断开(非Up状态)或者邻居对应的IP协议类型删除时,删除对应的BFD会话。

    5.2、广播网络

    IS-IS在广播网络接口类型上建立的邻接关系断开(非Up状态),邻居对应的IP协议类型删除或者广播网络DIS发生变化时,删除对应的BFD会话。

    IS-IS进程下去使能全局动态BFD后,该进程下的所有接口的BFD会话都被删除。

    6IS-IS响应BFD会话Down事件

    BFD检测到链路发生故障并产生Down事件时,会通知RMRM通知IS-IS删除此邻接。IS-IS响应这个事件并重新进行路由计算,实现网络迅速收敛。

    当本地路由器与邻居路由器均为Level-1-2路由器时,二者之间会针对不同的Level分别创建两个邻居,此时IS-IS也会创建两个不同Level的会话。在这种情况下,当BFD检测到链路发生故障并产生Down事件时,RM会通知IS-IS分别删除相应Level的邻接关系。


IS-IS理论知识详解(六):http://www.023wg.com/lypz/319.html


 您阅读这篇文章共花了: 
二维码加载中...
技术交流:欢迎在本文下方留言或加入QQ群:859273036 互相学习。     
本文地址:http://www.023wg.com/lypz/318.html
版权声明:若无注明,本文皆为“Swiers思唯网络博客”原创,转载请保留文章出处。

返回顶部    首页   
版权所有:Swiers思唯网络博客    浙江思唯网络