【超详解】IS-IS高级特性干货分享(一)

IS-IS高级特性

IS-IS快速收敛概述

  • IS-IS快速收敛是为了提高路由的收敛速度而做的扩展特性,包括:I-SPF(Incremental SPF,增量最短路径优先算法)、PRC、智能定时器、LSP快速扩散。

  • 同时,IS-IS支持故障恢复快速收敛,例如通过IS-IS Auto FRR实现备份链路的快速切换,也可以与BFD联动实现对故障的快速感知。

  • IS-IS的PRC、智能定时器、FRR等功能与OSPF类似,不再赘述。

I-SPF

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地址]到达该目的地。

使用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占用率。

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。如果配置了定时器,在路由计算之前如果这个定时器未超时,则立即扩散;否则在该定时器超时后发送。

命令:[Huawei-isis-1] flash-flood [ lsp-count | max-timer-interval interval | [ level-1 | level-2 ] ] 

  • lsp-count:指定每个接口一次扩散LSP的最大数量。整数形式,取值范围是1~15。缺省值是5。

  • max-timer-interval interval:指定LSP扩散的最大间隔时间。整数形式,取值范围是10~50000,单位是毫秒。缺省值是10毫秒。

  • level-1:表示在Level-1中使能此特性。如果命令中没有指定级别,则缺省同时在Level-1和Level-2中使能此功能。

  • level-2:表示在Level-2中使能此特性。如果命令中没有指定级别,则缺省同时在Level-1和Level-2中使能此功能。

IS-IS路由控制概述

在实际应用中,IS-IS根据SPF算法计算出来的路由有时并不能满足网络所需,可能出现如下弊端:如路由表中条目过多降低路由查找的速度、网络中链路利用率不均衡等,这些都不能很好地满足网络规划和流量管理的需要。为了达到优化IS-IS网络和便于流量管理的目的,需要对网络中的路由进行更加精确的控制。IS-IS的路由控制包括:

  • 调整IS-IS的优先级

  • 调整IS-IS的接口开销

  • 设置等价路由

  • IS-IS路由渗透

  • 通告缺省路由

  • 引入外部路由

  • Filter-Policy

等价路由

当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由,此时可以采取两种方式:

  1. 配置负载分担。流量会被均匀的分配到每条链路上。 

  • 该方式可以提高网络中链路的利用率及减少某些链路负担过重造成阻塞发生的情况。但是由于对流量转发具有一定的随机性,因此可能不利于对业务流量的管理。

2.配置等价路由优先级。针对等价路由中的每一条路由,明确指定其优先级,优先级高的路由将被优选,优先级低的路由可以作为备用链路。 

  • 当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由,即达到某一目的网段有多条等开销路径。配置等价路由优先级可以在不修改原有配置的基础上,指定某条路由被优选,便于业务的管理,同时提高网络的可靠性。

  • 注意:配置等价路由优先级后,IS-IS设备在转发到达目的网段的流量时,将不采用负载分担方式,而是将流量转发到优先级最高的下一跳。

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

当组网中存在的等价路由数量大于maximum load-balancing命令配置的等价路由数量时,按照下面原则选取有效路由进行负载分担:

  1. 路由优先级:选取优先级小(优先级高)的路由进行负载分担。

  2. 下一跳设备的System ID:如果路由的优先级相同,则比较下一跳设备的System ID,选取System ID小的路由进行负载分担

  3. 本地设备出接口索引:如果路由优先级和下一跳设备的System ID都相同,则比较出接口的接口索引,选取接口索引较小的路由进行负载分担。

命令:

[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。

等价路由配置举例 (1)

如图R1、R2、R3运行IS-IS,通过配置,要求R1优选R1-R3路径访问R3的环回口地址。

  1. 配置各设备接口地址及各设备IS-IS部署。(略)

  2. R1配置等价路由优先级。

3.结果验证。

缺省路由

  1. 在IS-IS中,主要通过以下3种方式控制缺省路由的生成和发布。 

  • 在Level-1-2设备上,控制其产生的Level-1 LSP中ATT位的置位情况。

  • 在Level-1设备上,通过配置使其即使收到ATT位置位的Level-1 LSP也不会自动产生缺省路由。

  • 在IS-IS中发布缺省路由。

  1. LSP的报文格式:

  • ATT(Attachment):由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。此字段有4bit,华为数通产品只使用了其中1bit。

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

  1. IS-IS规定,如果IS-IS Level-1-2设备根据LSDB判断通过Level-2区域比Level-1区域能够到达更多的区域,该设备会在所发布的Level-1 LSP内将ATT位置位。对于收到ATT位置位的LSP报文的Level-1设备,会生成一条目的地为发送该LSP的Level-1-2设备地址的缺省路由。

  2. 以上是协议的默认原则,在实际应用中,可以根据需要对ATT比特位进行手动配置以更好地为网络服务。

  • (Level-1-2设备)设置IS-IS LSP报文的ATT比特位置位规则。

[Huawei-isis-1] attached-bit advertise { always | never }

缺省情况下,Level-1-2设备发布的LSP的ATT位根据缺省置位规则来决定置位情况。

  • (Level-1设备)控制Level-1设备不因为ATT位下发缺省路由到路由表。

[Huawei-isis-1] attached-bit avoid-learning

缺省情况下,IS-IS按ATT位缺省使用规则生成缺省路由。

  • 命令:

[Huawei-isis-1] attached-bit advertise { always | never }

  1. always:指定ATT位永远置位,收到该LSP的Level-1设备会生成缺省路由。

  2. never:指定ATT位永不置位,可以避免Level-1设备生成缺省路由,减小路由表的规模。

  • 虽然ATT位同时在Level-1 LSP和Level-2 LSP中进行了定义,但是它只会在Level-1 LSP中被置位,并且只有Level-1-2设备会设置这个字段,因此,该命令仅对Level-1-2设备生效。

  • 配置Level-1设备不将缺省路由下发到路由表,有以下两种方式可以实现:

  1. 在Level-1-2设备上配置attached-bit advertise never命令,使得其不会发布ATT位置位的LSP。

  2. 在与Level-1-2设备相连的Level-1设备上配置attached-bit avoid-learning命令。

  • 其中,attached-bit avoid-learning命令适用于需要针对指定设备配置的情况。

IS-IS发布缺省路由

  • 在具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该设备在IS-IS路由域内发布一条0.0.0.0/0的缺省路由。在执行此配置后,IS-IS域内的其他设备在转发流量时,将所有去往外部路由域的流量首先转发到该设备,然后通过该设备去往外部路由域。

  • 通常,当网络中部署了IS-IS和其他路由协议时,为了实现IS-IS域内的流量可以到达IS-IS域外,通常有如下两种方式:

  1. 在边界设备上配置IS-IS设备向IS-IS域发布缺省路由。该方式较为简单,不需要学习外部路由。

  2. 在边界设备上将其他路由域的路由引入到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 ]

  • 命令:

[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 ]

  1. always:指定设备无条件的发布缺省路由,且发布的缺省路由中将自己作为下一跳。

  2. match default:如果在路由表中存在其他路由协议或其它IS-IS进程生成的缺省路由,则在LSP中发布该缺省路由。route-policy route-policy-name:指定路由策略名称。当该边界设备的路由表中存在满足路由策略的外部路由时,才向IS-IS域发布缺省路由,避免由于链路故障等原因造成该设备已经不存在某些重要的外部路由时,仍然发布缺省路由从而造成路由黑洞。此处的路由策略不影响IS-IS引入外部路由。字符串形式,区分大小写,不支持空格,长度范围是1~40。当输入的字符串两端使用双引号时,可在字符串中输入空格。

  3. cost cost:指定缺省路由的开销值。整数形式。取值范围根据cost-style而定:当cost-style为narrow、narrow-compatible或compatible时,取值范围是0~63;当cost-style为wide或wide-compatible时,取值范围是0~4261412864。

  4. tag tag:指定发布的缺省路由的标记值。只有当IS-IS的开销类型为wide、wide-compatible或compatible时,发布的LSP中才会携带tag值。整数形式,取值范围为1~4294967295。

(0)

相关推荐