1. 快速收敛
(1)概述:
扩展特性:I-SPF、PRC、智能定时器、LSP快速扩散
故障恢复:FRR、与BFD联动
(2)I-SPF
工作原理:当网络拓扑改变的时候,只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算。
使用SPF算法进行路由计算:
当网络拓扑中有一个节点发生变化时,SPF算法需要重新计算网络中的所有节点,计算时间长,占用过多的CPU资源,影响整个网络的收敛速度。
I-SPF改进了SPF算法,除了第一次SPF计算时需要计算全部节点外,之后每次都通过I-SPF计算受到影响的节点,而最后生成的最短路径树与原来的算法所计算的结果相同,大大降低了CPU的占用率,提高了网络收敛速度。
在IS-IS网络中,I-SPF和PRC结合使用。
如果I-SPF计算后的最短路径树改变,PRC会只处理那个变化的节点上的所有叶子(路由)。
如果经过I-SPF计算后的最短路径树并没有变化,则PRC只处理变化的叶子信息。比如一个节点使能一个IS-IS接口,则整个网络拓扑的最短路径树是不变的,这时PRC只更新这个节点的接口路由,从而节省CPU占用率。
(3)LSP快速扩散
当设备收到一个或多个较新的LSP时,在路由计算之前,先将小于指定数目的LSP扩散出去,加快LSDB的同步过程。
配置LSP快速扩散
[Huawei-isis-1] flash-flood [ lsp-count | max-timer-interval interval | [ level-1 | level-2 ] ]
2. 路由控制
(1)路由控制包括:
调整IS-IS的优先级
调整IS-IS的接口开销
设置等价路由
IS-IS路由渗透
通告缺省路由
引入外部路由
Filter-Policy
(2)等价路由
两种方式:
配置负载分担。流量会被均匀的分配到每条链路上。
配置等价路由优先级。针对等价路由中的每一条路由,明确指定其优先级,优先级高的路由将被优选,优先级低的路由可以作为备用链路。
配置命令:
命令:[Huawei-isis-1] maximum load-balancing number
number:指定在负载分担方式下等价路由的最大数量。不同设备型号取值不同。
命令:[Huawei-isis-1] nexthop ip-address weight value
ip-address:指定下一跳的IP地址。点分十进制格式。
weight value:指定下一跳权重。value越小则优先级越高。value是整数形式,取值范围是1~254。
配置举例:(ISIS_ECMP_Base)
(3)缺省路由
3种方式控制缺省路由的生成和发布。
在Level-1-2设备上,控制其产生的Level-1 LSP中ATT位的置位情况。
在Level-1设备上,通过配置使其即使收到ATT位置位的Level-1 LSP也不会自动产生缺省路由。
在IS-IS中发布缺省路由。
通过设置ATT位控制缺省路由生成
设置IS-IS LSP报文的ATT比特位置位规则(Level-1-2设备)
[Huawei-isis-1] attached-bit advertise { always | never }
控制Level-1设备不因为ATT位下发缺省路由到路由表(Level-1设备)
[Huawei-isis-1] attached-bit avoid-learning
IS-IS发布缺省路由
在具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该设备在IS-IS路由域内发布一条0.0.0.0/0的缺省路由。在执行此配置后,IS-IS域内的其他设备在转发流量时,将所有去往外部路由域的流量通过该设备去往外部路由域。
两种方式:
在边界设备上配置IS-IS设备向IS-IS域发布缺省路由。该方式较为简单,不需要学习外部路由。
在边界设备上将其他路由域的路由引入到IS-IS中。
配置运行IS-IS的设备生成缺省路由
[Huawei-isis-1] default-route-advertise [ always | match default | route-policy route-policy-name ] [ cost cost | tag tag | [ level-1 | level-1-2 | level-2 ] ] [ avoid-learning ]
缺省路由配置举例(OSPF_ISIS_Default)
3. 其它特性
(1)多实例和多进程
IS-IS多实例是指在同一台路由器上,可以配置多个VPN实例与多个IS-IS进程相关联。
IS-IS多进程指在同一个VPN下(或者同在公网下)可以创建多个IS-IS进程,每个进程之间互不影响,彼此独立。不同进程之间的路由交互相当于不同路由协议之间的路由交互。
IS-IS多实例和多进程的典型应用是在VPN场景。
(2)LSP分片
1)分片
当IS-IS要发布的PDU中信息量太大时,IS-IS路由器将会生成多个LSP分片
2)LSP分片扩展基本概念:
初始系统(Originating System):初始系统是实际运行IS-IS的路由器。
系统ID(Normal System-ID):初始系统的系统ID。
虚拟系统(Virtual System):由附加系统ID标识的系统,生成扩展LSP分片。
附加系统ID(Additional System-ID):虚拟系统的系统ID,由网络管理器统一分配。每个附加系统ID都允许生成256个扩展的LSP分片。
24号TLV(IS Alias ID TLV):LSP分片携带该TLV信息,用来表示初始系统与虚拟系统的关系。
使能分片扩展功能之后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。
3)工作原理:
Mode-1工作原理:
虚拟系统参与路由SPF计算,初始系统发布的LSP中携带了到每个虚拟系统的链路信息。
类似地,虚拟系统发布的LSP也包含到初始系统的链路信息。
这样,在网络中虚拟系统看起来与初始系统相连的真实路由器是一样的。
这种方式是为了兼容不支持分片扩展的老版本所做的一个过渡模式。在老版本中,IS-IS无法识别24号TLV,所以虚拟系统的LSP必须表现的像一个普通IS-IS发出的报文。
注意事项:
虚拟系统的LSP中包含和原LSP中相同的区域地址和过载标志位。如果还有其它特性的TLV,也必须保持一致。
虚拟系统的邻居信息指向初始系统,metric为最大值减1;初始系统的邻居信息指向虚拟系统,metric必须为0。这样就保证了其它路由器在进行路由计算的时候,虚拟系统一定会成为初始系统的下游节点。
Mode-2工作原理:
虚拟系统不参与路由SPF计算,网络中所有路由器都知道虚拟系统生成的LSP实际属于初始系统。
在该模式下工作的IS-IS,可以识别24号TLV的内容,并作为计算树和路由的依据。
注意:无论在哪种方式下,初始系统和虚拟系统的LSP零分片中,都必须包含IS Alias ID TLV来表示初始系统是谁。
4)基本配置命令:
使能IS-IS进程的LSP分片扩展
命令:[Huawei-isis-1] lsp-fragments-extend [ [ level-1 | level-2 | level-1-2 ] | [ mode-1 | mode-2 ] ]
level-1:指定在Level-1级别使能分片扩展。
level-2:指定在Level-2级别使能分片扩展。
level-1-2:指定在Level-1-2级别使能分片扩展。
mode-1:该模式可以兼容以前老版本不支持LSP分片扩展特性的情况。
mode-2:该模式要求所有路由器都支持LSP分片扩展特性。
配置一个虚拟系统
命令:[Huawei-isis-1] virtual-system virtual-system-id
virtual-system-id:指定IS-IS进程的虚拟系统ID。长度是6字节(48比特),格式是XXXX.XXXX.XXXX。
(3)IS-IS GR
1)概念
IS-IS GR是一种支持GR能力的高可靠性技术,可以实现数据的不间断转发。
2)为了实现GR,IS-IS引入211号TLV(Restart TLV)和T1、T2、T3三个定时器。
211号TLV:
Type:1 Byte,TLV的类型。值为211表示是Restart TLV。
Length:1 Byte,TLV值的长度。
SA:1 bit,抑制发布邻接关系位。用于发生Starting的设备请求邻居抑制与自己相关的邻居关系的广播,以避免路由黑洞。
RA:1 bit,重启应答位。设备发送的RA置位的Hello报文用于通告邻居确认收到了RR置位的报文。
RR:1 bit,重启请求位。设备发送的RR置位的Hello报文用于通告邻居自己发生Restarting/Starting,
请求邻居保留当前的IS-IS邻接关系并返回CSNP报文。
Remaining Time:2 Byte,邻居保持邻接关系不重置的时间,单位是秒。当RA置位时,这个值是必需的。
定时器
T1定时器:如果GR Restarter已发送RR置位的IIH报文,但直到T1定时器超时还没有收到GR Helper的包含Restart TLV且RA置位的IIH报文的确认消息时,
会重置T1定时器并继续发送包含Restart TLV的IIH报文。当收到确认报文或者T1定时器已超时3次时,取消T1定时器。
T1定时器缺省设置为3秒。(Level-1-2,每个接口维护一个)
T2定时器:GR Restarter从重启开始到本Level所有设备LSDB完成同步的时间。
T2定时器是系统等待各层LSDB同步的最长时间,一般情况下为60秒。(Level-1和Level-2各维护一个)
T3定时器:GR Restarter成功完成GR所允许的最大时间。
T3定时器的初始值为65535秒。T3定时器超时表示GR失败。(整个系统维护一个T3)
3)IS-IS GR的过程——Restarting
主备倒换和重启IS-IS进程触发的GR过程称为Restarting,FIB表保持不变。
GR Restarter进行协议重启后,GR Restarter进行如下操作:
启动T1、T2和T3定时器。
从所有接口发送包含Restart TLV的IIH报文,其中RR置位,RA和SA位清除。
GR Helper收到IIH报文以后,进行如下操作:
GR Helper维持邻居关系,刷新当前的Holdtime。
回送一个包含Restart TLV的IIH报文(RR清除,RA置位,Remaining time是从现在到Holdtime超时的时间间隔)。
发送CSNP报文和所有LSP报文给GR Restarter。
GR Restarter接收到邻居的IIH回应报文(RR=0、RA=1),做如下处理:
把T3的当前值和报文中Remaining time比较,取其中较小者作为T3的值。
在接口收到确认报文和CSNP报文之后,取消该接口的T1定时器。
如果该接口没有收到确认报文和CSNP报文,T1会不停地重置,重发含Restart TLV的IIH报文。
如果T1超时次数超过阈值,GR Restarter强制取消T1定时器,启动正常的IS-IS处理流程。
当GR Restarter所有接口上的T1定时器都取消,CSNP列表清空并且收集全所有的LSP报文后,
可以认为和所有的邻居都完成了同步,取消T2定时器。
T2定时器被取消,表示本Level的LSDB已经同步。
如果是单Level系统,则直接触发SPF计算。
如果是Level-1-2系统,此时判断另一个Level的T2定时器是否也取消。
如果两个Level的T2定时器都被取消,那么触发SPF计算,否则等待另一个Level的T2定时器超时。
各层的T2定时器都取消后,GR Restarter取消T3定时器,更新FIB表。
GR Restarter可以重新生成各层的LSP并泛洪,在同步过程中收到的自己重启前生成的LSP此时也可以被删除。
至此,GR Restarter的IS-IS Restarting过程结束。
4)IS-IS GR的过程——Starting
设备重启触发的GR过程称为Starting,进行FIB表更新。
GR Restarter Starting后,进行如下操作:
为每层LSDB的同步启动T2定时器。
从各个接口发送携带Restart TLV的IIH报文,其中RR位清除,SA位置位。
邻居收到携带Restart TLV的IIH报文,根据设备是否支持GR,进行如下处理:
支持GR:重新初始化邻接关系。
不支持GR:邻居忽略Restart TLV,重置和GR Restarter之间的邻接关系。
邻接关系重新初始化之后,在每个接口上GR Restarter都和邻居重建邻接关系。当有一个邻接关系到达Up状态后,GR Restarter为该接口启动T1定时器。
在T1定时器超时之后,GR Restarter发送RR置位、SA置位的IIH报文。
邻居收到RR置位和SA置位的IIH报文后,发送一个RR清除、RA置位的IIH报文作为确认报文,并发送CSNP报文。
GR Restarter收到邻居的IIH确认报文和CSNP报文以后,取消T1定时器。
如果没有收到IIH报文或者CSNP报文,就不停重置T1定时器,重发RR置位、SA置位的IIH报文。
如果T1超时次数超过阈值,GR Restarter强制取消T1定时器,进入正常的IS-IS处理流程完成LSDB同步。
GR Restarter收到Helper端的CSNP以后,开始同步LSDB。
本Level的LSDB同步完成后,GR Restarter取消T2定时器。
所有的T2定时器都取消以后,启动SPF计算,重新生成LSP,并泛洪。
至此,GR Restarter的IS-IS Starting过程完成。