Datacom-HCIE-05 IGP高级特性(二) IS-IS高级特性


OSPF和IS-IS都是基于链路状态的内部网关路由协议,运行这两种协议的路由器通过同步LSDB,采用SPF算法计算最优路由。
当网络拓扑发生变化时,OSPF和IS-IS支持多种快速收敛和保护机制,能够降低网络故障导致的流量丢失。
为了实现对路由表规模的控制,OSPF和IS-IS支持路由选路及路由信息的控制,能够减少特定路由器路由表的大小。
本文将回顾IS-IS的基本原理,另外再介绍各种高级特性,包括:快速收敛机制、路由控制、其他特性等。

快速收敛

IS-IS快速收敛概述

•S-IS快速收敛是为了提高路由的收敛速度而做的扩展特性,包括:I-SPF(Incremental SPF,增量最短路径优先算法)、PRC、智能定时器、LSP快速扩散。
同时,IS-IS支持故障恢复快速收敛,例如通过IS-IS Auto FRR实现备份链路的快速切换,也可以与BFD联动实现对故障的快速感知。
IS-IS的PRC、智能定时器、FRR等功能与OSPF类似,不再赘述。

I-SPF

I-SPF的工作原理:当网络拓扑改变的时候,只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算。

场景介绍:
某网络运行IS-IS,网络收敛后,左图是以R1为根的最短路径树。此时R1访问节点R5时,通过[R1下行链路的出接口,R3上行链路接口的IP地址]到达该目的地。
R5下游新增设备R6,R6开启IS-IS,即IS-IS网络内有新增网络节点。
I-SPF计算:
R5和R6全网泛洪LSP,包含新增邻居关系。
R1收到该LSP后会对变化的节点R5和R6进行I-SPF计算,生成新的最短路径树节点,而其他节点不变。
因此R1访问节点R5和R6时,通过[R1下行链路的出接口,R3上行链路接口的IP地址]到达该目的地。

LSP快速扩散

LSP快速扩散:此特性可以加快LSP的扩散速度。
正常情况下,当IS-IS路由器收到其它路由器发来的LSP时,如果此LSP比本地LSDB中相应的LSP要新,则更新LSDB中的LSP,并用一个定时器定期将LSDB内已更新的LSP扩散出去。
LSP快速扩散特性改进了这种方式,使能了此特性的设备收到一个或多个较新的LSP时,在路由计算之前,先将小于指定数目的LSP扩散出去,加快LSDB的同步过程。这种方式在很大程度上可以提高整个网络的收敛速度。
配置LSP快速扩散:
[Huawei-isis-1] flash-flood [ lsp-count | max-timer-interval interval | [ level-1 | level-2 ] ]
注意:用户可以指定每次扩散的LSP数量,这个数量是针对所有IS-IS接口的。如果需要发送的LSP的数量大于这个数,则就发送lsp-count个LSP。如果配置了定时器,在路由计算之前如果这个定时器未超时,则立即扩散;否则在该定时器超时后发送。

路由控制

IS-IS路由控制概述

在实际应用中,IS-IS根据SPF算法计算出来的路由有时并不能满足网络所需,可能出现如下弊端:如路由表中条目过多降低路由查找的速度、网络中链路利用率不均衡等,这些都不能很好地满足网络规划和流量管理的需要。为了达到优化IS-IS网络和便于流量管理的目的,需要对网络中的路由进行更加精确的控制。IS-IS的路由控制包括:
调整IS-IS的优先级
调整IS-IS的接口开销
设置等价路由
IS-IS路由渗透
通告缺省路由
引入外部路由
Filter-Policy

等价路由

当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由,此时可以采取两种方式:
配置负载分担。流量会被均匀的分配到每条链路上。
该方式可以提高网络中链路的利用率及减少某些链路负担过重造成阻塞发生的情况。但是由于对流量转发具有一定的随机性,因此可能不利于对业务流量的管理。
配置等价路由优先级。针对等价路由中的每一条路由,明确指定其优先级,优先级高的路由将被优选,优先级低的路由可以作为备用链路。
当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由,即达到某一目的网段有多条等开销路径。配置等价路由优先级可以在不修改原有配置的基础上,指定某条路由被优选,便于业务的管理,同时提高网络的可靠性。
注意:配置等价路由优先级后,IS-IS设备在转发到达目的网段的流量时,将不采用负载分担方式,而是将流量转发到优先级最高的下一跳。

配置IS-IS对等价路由的处理方式

  1. 配置IS-IS路由负载分担。
    [Huawei-isis-1] maximum load-balancing number
    配置在负载分担方式下的等价路由的最大数量。
  2. 配置IS-IS等价路由的优先级。
    [Huawei-isis-1] nexthop ip-address weight value
    缺省情况下,不设置IS-IS等价路由的优先级。value值越小,表示优先级越高。
    当组网中存在的等价路由数量大于maximum load-balancing命令配置的等价路由数量时,按照下面原则选取有效路由进行负载分担:
    1.路由优先级:选取优先级小(优先级高)的路由进行负载分担。
    2.下一跳设备的System ID:如果路由的优先级相同,则比较下一跳设备的System ID,选取System ID小的路由进行负载分担。
    3.本地设备出接口索引:如果路由优先级和下一跳设备的System ID都相同,则比较出接口的接口索引,选取接口索引较小的路由进行
    负载分担。

等价路由配置举例


如图R1、R2、R3运行IS-IS,通过配置,要求R1可以通过R1-R3路径访问R3
的环回口地址,也可以通过R1-R2-R3路径访问R3的环回口地址。
1、各设备配置接口地址及部署IS-IS。(略)
2、R1配置路由负载分担。

[R1] isis
[R1-isis-1] maximum load-balancing 2

3、结果验证。

[R1]display ip routing-table
Route Flags: R - relay, D - download to fib
-------------------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.3.3/32 ISIS-L2 15 10 D 10.1.13.3 GigabitEthernet0/0/0
 ISIS-L2 15 10 D 10.1.12.2 GigabitEthernet0/0/1

如图R1、R2、R3运行IS-IS,通过配置,要求R1优选R1-R3路径
访问R3的环回口地址。
1、各设备配置接口地址及部署IS-IS。(略)
2、R1配置等价路由优先级。

[R1] isis
[R1-isis-1] nexthop 10.1.13.3 weight 1
[R1-isis-1] nexthop 10.1.12.2 weight 2

3、结果验证。

[R1]display ip routing-table
Route Flags: R - relay, D - download to fib
-------------------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.3.3/32 ISIS-L2 15 10 D 10.1.13.3 GigabitEthernet0/0/0

缺省路由

在IS-IS中,主要通过以下3种方式控制缺省路由的生成和发布。
在Level-1-2设备上,控制其产生的Level-1 LSP中ATT位的置位情况。
在Level-1设备上,通过配置使其即使收到ATT位置位的Level-1 LSP也不会自动产生缺省路由。
在IS-IS中发布缺省路由。
LSP的报文格式:
ATT(Attachment):由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。此字段有4 bit,华为数通产品只使用了其中1 bit。

通过设置ATT位控制缺省路由生成

IS-IS规定,如果IS-IS Level-1-2设备根据LSDB判断通过Level-2区域比Level-1区域能够到达更多的区域,该设备会在所发布的Level-1 LSP内将ATT位置位。对于收到ATT位置位的LSP报文的Level-1设备,会生成一条目的地为发送该LSP的Level-1-2设备地址的缺省路由。
以上是协议的默认原则,在实际应用中,可以根据需要对ATT比特位进行手动配置以更好地为网络服务。
[Huawei-isis-1] attached-bit advertise { always | never }

  1. (Level-1-2设备)设置IS-IS LSP报文的ATT比特位置位规则。
    缺省情况下,Level-1-2设备发布的LSP的ATT位根据缺省置位规则来决定置位情况。
    [Huawei-isis-1] attached-bit avoid-learning
  2. (Level-1设备)控制Level-1设备不因为ATT位下发缺省路由到路由表。
    缺省情况下,IS-IS按ATT位缺省使用规则生成缺省路由。

IS-IS发布缺省路由

在具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该设备在IS-IS路由域内发布一条0.0.0.0/0的缺省路由。在执行此配置后,IS-IS域内的其他设备在转发流量时,将所有去往外部路由域的流量首先转发到该设备,然后通过该设备去往外部路由域。
通常,当网络中部署了IS-IS和其他路由协议时,为了实现IS-IS域内的流量可以到达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 ]

缺省情况下,运行IS-IS协议的设备不生成缺省路由。

缺省路由配置举例


1、各设备配置接口地址及部署OSPF/IS-IS。(略)
2、配置R2在IS-IS中发布缺省路由。

[R2] isis
[R2-isis-1] default-route-advertise always

3、配置R2在OSPF中发布缺省路由。

[R2] ospf
[R2-ospf-1] default-route-advertise always

4、查看R3的路由表项。

[R3]display ip routing-table
Route Flags: R - relay, D - download to fib
---------------------------------------------------------------------------------------
Routing Tables: Public
 Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 ISIS-L2 15 10 D 10.1.23.2 GigabitEthernet0/0/2

其他特性

IS-IS多实例和多进程

IS-IS多实例是指在同一台路由器上,可以配置多个VPN实例与多个IS-IS进程相关联。
IS-IS多进程指在同一个VPN下(或者同在公网下)可以创建多个IS-IS进程,每个进程之间互不影响,彼此独立。不同进程之间的路由交互相当于不同路由协议之间的路由交互。
网络中可能需要同时承载不同的业务,为保证各业务的安全性,需要将业务进行隔离,此时,可以配置与VPN实例绑定。

LSP分片

当IS-IS要发布的PDU中信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。
LSP的报文格式为:

IS-IS LSP分片由LSP ID中的分片号(LSP Number)字段进行标识,这个字段的长度是1 Byte。因此,一个ISIS进程最多可产生256个LSP分片,携带的信息量有限。

LSP分片扩展基本概念

IS-IS可以配置虚拟的系统ID ,并生成虚拟IS-IS的LSP报文来携带路由等信息。
初始系统(Originating System):初始系统是实际运行IS-IS的路由器。允许一个单独的IS-IS进程像多个虚拟路由器一样发布LSP,而“Originating System”指的是那个“真正”的IS-IS进程。
系统ID(Normal System-ID):初始系统的系统ID。
虚拟系统(Virtual System):由附加系统ID标识的系统,生成扩展LSP分片。这些分片在其LSP ID中携带附加系统ID。
附加系统ID(Additional System-ID):虚拟系统的系统ID,由网络管理器统一分配。每个附加系统ID都允许生成256个扩展的LSP分片。
24号TLV(IS Alias ID TLV):LSP分片携带该TLV信息,用来表示初始系统与虚拟系统的关系。
使能分片扩展功能之后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。重启之后,初始系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的LSP中发送出去,并通过24号TLV来告知其他路由器此虚拟系统和自己的关系。

LSP分片扩展工作原理

在IS-IS中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。通过增加附
加系统ID,可以最多配置50个虚拟系统,从而使得IS-IS进程最多可生成13056个LSP分片。
IS-IS路由器可以在两种模式下运行LSP分片扩展特性:

LSP分片扩展的基本配置命令

  1. 使能IS-IS进程的LSP分片扩展。
    [Huawei-isis-1] Isp-fragments-extend [ [ level-1 | level-2 | level-1-2 ] | [ mode-1 | mode-2 ] ]
    缺省情况下,设备未使能IS-IS进程的LSP分片扩展功能。
    配置LSP分片扩展时,如果不指定mode和level级别,则默认为mode-1和level-1-2。
  2. 配置一个虚拟系统。
    [Huawei-isis-1] virtual-system virtual-system-id
    缺省情况下,设备没有配置虚拟系统。
    为了使设备生成扩展LSP分片,应至少配置一个虚拟系统的系统ID。这个虚拟系统的系统ID在整个路由域中必须唯一。
    一个IS-IS进程最多可配置50个虚拟系统的System ID。
    注意:以上两条命令是配合使用的,只有使能了LSP分片扩展,并用reset isis all命令重启了IS-IS进程后,配置的虚拟系统ID才会生效。

IS-IS GR

IS-IS GR是一种支持GR能力的高可靠性技术,可以实现数据的不间断转发。
为了实现GR,IS-IS引入211号TLV(Restart TLV)和T1、T2、T3三个定时器。

IS-IS 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会不停地重置,重发含RestartTLV的IIH报文。如果T1超时次数超过阈值,GR Restarter强制取消T1定时器,启动正常的IS-IS处理流程。
    主备倒换和重启IS-IS进程触发的GR过程称为Restarting,FIB表保持不变。
  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表。GRRestarter可以重新生成各层的LSP并泛洪,在同步过程中收到的自己重启前生成的LSP此时也可以被删除。
  7. 至此,GR Restarter的IS-IS Restarting过程结束。

IS-IS 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定时器。设备重启触发的GR过程称为Starting,进行FIB表更新。
  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过程完成。

配置IS-IS GR

  1. 使能IS-IS协议的GR能力。
    [Huawei-isis-1] graceful-restart
  2. 配置IS-IS邻居的Holdtime不受GR影响,保持原来的数据。
    [Huawei-isis-1] graceful-restart no-impact-holdtime
    缺省情况下,配置IS-IS GR后,邻居的Holdtime值如果小于60秒,则修改为60秒,否则保持原Holdtime值。
  3. (可选)配置IS-IS GR过程中T3定时器的时间。
    [Huawei-isis-1] graceful-restart interval interval-value
    缺省情况下,GR T3定时器为300秒。
  4. (可选)配置IS-IS GR过程中T2定时器的时间。
    [Huawei-isis-1] graceful-restart t2-interval interval-value
    缺省情况下,GR T2定时器为60秒。
    5.(可选)配置GR Restarter来抑制重启TLV的SA位。
    [Huawei-isis-1] graceful-restart suppress-sa
  5. 查看IS-IS GR的状态信息。
    [Huawei] display isis process-id graceful-restart status [ level-1 | level-2 ]
    [Huawei] display isis graceful-restart status [ level-1 | level-2 ] [ process-id | vpn-instance vpn-instance-name ]
    level-1:显示Level-1的IS-IS GR状态信息。
    level-2:显示Level-2的IS-IS GR状态信息。
    process-id:显示指定IS-IS进程的IS-IS GR状态信息。整数类型,取值范围是1~65535。
    vpn-instance vpn-instance-name:显示指定VPN的IS-IS多实例进程的IS-IS GR状态信息。字符串形式,区分大小写,不支持空格,长度范围是1~31。当输入的字符串两端使用双引号时,可在字符串中输入空格。

IS-IS GR配置举例


1、各设备配置接口地址及部署IS-IS。(略)
2、在R1和R2上使能IS-IS GR功能。

[R1] isis 1
[R1-isis-1] graceful-restart
[R1-isis-1] graceful-restart no-impact-holdtime

2、在R1和R2上使能IS-IS GR功能。

[R2] isis 1
[R2-isis-1] graceful-restart
[R2-isis-1] graceful-restart no-impact-holdtime

3、在R2上查看IS-IS GR状态信息。

<R2> display isis 1 graceful-restart status
Restart information for ISIS(1)
-------------------------------
IS-IS(1) Level-1 Restart Status
Restart Interval: 300
SA Bit Supported
Total Number of Interfaces = 1
Restart Status: RESTART COMPLETE
IS-IS(1) Level-2 Restart Status
Restart Interval: 300
SA Bit Supported
Total Number of Interfaces = 1
Restart Status: RESTART COMPLETE

4、在R1用户视图下执行reset isis all graceful-restart重启IS-IS进
程1,同时在R2上执行display isis peer查看与R1的IS-IS邻接关系:
<R1> reset isis 1 all graceful-restart

<R2> display fib
Route Flags: G - Gateway Route, H - Host Route, U - Up Route
S - Static Route, D - Dynamic Route, B - Black Hole Route
L - Vlink Route
--------------------------------------------------------------------------------
FIB Table:
Total number of Routes : 7
Destination/Mask Nexthop Flag TimeStamp Interface TunnelID
10.1.12.3/32 127.0.0.1 HU t[15] InLoop0 0x0
10.1.12.2/32 127.0.0.1 HU t[15] InLoop0 0x0
255.255.255.255/32 127.0.0.1 HU t[3] InLoop0 0x0
127.255.255.255/32 127.0.0.1 HU t[3] InLoop0 0x0
127.0.0.1/32 127.0.0.1 HU t[3] InLoop0 0x0
127.0.0.0/8 127.0.0.1 U t[3] InLoop0 0x0
10.1.12.0/30 10.1.12.2 U t[15] GE0/0/0 0x0

R1以GR方式重启IS-IS进程时,FIB表不变,实现数据转发不中断。

为了更好地适应网络拓扑的变化,OSPF和IS-IS支持多种快速收敛方式。通过I-SPF和PRC算法加速路由
的计算,通过FRR可以实现备份链路的快速切换,还可以设置智能定时器控制链路状态信息的生成和路由
计算的速度。
• 为了控制路由表的规模以及提高网络性能,OSPF和IS-IS支持路由信息的过滤,支持等价路由,还支持下
发缺省路由。为了实现协议路由表隔离,OSPF和IS-IS支持在同一台设备上部署多进程,进程之间的协议
路由表互不影响。
• 为了避免在外部路由引入时出现次优路径,OSPF通过Type5 LSA或Type7 LSA中的FA指导数据包转发。
IS-IS为了能够携带更多的路由信息,支持LSP分片扩展。
• 为了保证设备在重启过程中关键业务不中断,OSPF和IS-IS还支持GR和NSR特性。
• OSPF和IS-IS对以上各种特性的支持,使它们在现网中都被广泛灵活应用。

posted @ 2024-12-07 15:42  Liam-Wu  阅读(157)  评论(0)    收藏  举报