控制IS-IS的路由信息交互
在网络中同时部署了IS-IS和其他路由协议时,需要配置IS-IS与其他路由协议的路由交互,才能使运行不同协议的网络正常通信。控制IS-IS的路由信息交互所涉及的配置任务如下:
①配置IS-IS发布缺省路由。
②配置IS-IS引入外部路由。
③配置IS-IS发布外部路由过滤。
④配置IS-IS路由下发IP路由表过滤。
一、配置IS-IS发布缺省路由
当网络中部署了IS-IS和其他路由协议时,为了实现IS-IS域内的流量可以到达IS-IS域外,通常有如下两种方式。
①在边界设备上配置IS-IS设备向IS-IS域发布缺省路由。
②在边界设备上将其他路由域的路由引入IS-IS中。
配置发布缺省路由的方式较为简单,不需学习外部路由。在具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该设备在IS-IS路由域内发布一条0.0.0.0/0的缺省路由,这样,IS-IS域内的其他设备在转发流量时,将所有去往外部路由域的流量首先通过这条缺省路由转发到该设备,然后通过该设备去往外部路由域。
IS-IS发布缺省路由的方法是在IS-IS进程下执行default-route-advertise [always| match default | route-policyroute-policy-name] [costcost |tag tag | [level-1 | level-1-2 |level-2]]* [avoid-learning]命令。
①always:指定设备无条件的发布缺省路由,且发布的缺省路由中将自己作为下一跳。
②match default:指定如果在路由表中存在其他路由协议或其他IS-IS进程生成的缺省路由,则在LSP中发布该缺省路由。
③route-policyroute-policy-name:指定当该边界设备的路由表中存在满足指定名称路由策略的外部路由时,才向IS-IS域发布缺省路由,避免由于链路故障灯原因造成该设备已经不存在某些重要的外部路由时,仍然发布缺省路由从而造成路由黑洞。
④cost cost:指定缺省路由的开销值,取值范围要根据cost-style而定。
⑤tag tag:指定发布的缺省路由的标记值。
⑥level-1 | level-1-2| level-2:分别指定发布的缺省路由级别为L1、L1/2、L2。默认为生成L2级别的缺省路由。
⑦avoid-learning:指定避免IS-IS进程学到其他路由协议或其他IS-IS进程生成的缺省路由并添加到路由表。如果路由表中已存在学习到缺省路由为活跃状态,则将此路由置为不活跃状态。
如果在L1设备上配置了该命令,那么该设备只会向L1区域发布缺省路由,不会将缺省路由发布到L2区域。
示例:设置当前设备发布匹配名为filter的路由策略的IPv4缺省路由,并设置该缺省路由的开销值为15。
<Huawei>system-view
[Huawei]isis
[Huawei-isis-1]default-route-advertiseroute-policy filter cost 15
二、配置IS-IS引入外部路由
在IS-IS路由域边界设备上配置IS-IS发布缺省路由,可以将去往IS-IS路由域外部的流量全部转移到该设备来处理,这可能造成设备负担过重。在有多个边界设备时,会存在去往其他路由域的最优路由的选择问题。通过在边界设备上引入外部路由,让IS-SI域内的其他设备获悉全部或部分外部路由的方法就可解决上述问题。
引入的外部路由包括其他进程IS-IS路由、静态路由、直连路由、RIP路由、OSPF路由和BGP路由等。配置引入外部路由后,IS-IS设备将把引入的外部路由全部发布到IS-IS路由域。两种不同的配置方式:
①当需要对引入路由的开销进行设置时,可在对应IS-IS进程下通过:import-route { {rip |isis | ospf} [process-id] | static| direct | unr | bgp [permit-ibgp] } [cost-type{external |internal} | cost cost | tagtag | route-policy route-policy-name | [level-1|level-2 | level-1-2]]*命令配置。
②当需要保留引入路由的原有开销时,可在对应IS-IS进程下通过import-route{ {rip | isis | ospf} [process-id] |direct | unr |bgp } inherit-cost [tag tag |route-policy route-policy-name| [level-1 |level-2 | level-1-2]]*命令配置IS-IS引入外部路由。但此时引入的源路由协议不能是static(静态路由)。
参数说明:
Rip、isis、ospf:多选一选项,引入相应协议路由;
Process-id:可选参数,指定引入的RIP、IS-IS或OSPF路由的进程号;
Static、direct、unr、bgp:多选一选项,指定引入静态、直连、用户网络、BGP路由;
Permit-ibgp:可选项,指定在引入iBGP路由时,不指定此可选项时,则引入的为eBGP路由;
cost-type{external | internal:可多选选项,指定引入外部路由的开销类型。缺省为external。此参数的配置会影响引入路由的cost值:当引入的路由开销类型配置为external时,路由cost值=源路由cost值+64;当引入的路由开销类型配置为internal时,路由cost值继承源路由的cost值。当路由器的cost-style为wide、compatible或wide-compatible时,引入外部路由的开销类型将不区分external和internal。
Cost cost:可多选参数,指定引入后的路由开销;
Inherit-cost:表示引入外部路由时保留路由的原有开销值;
Tag tag:指定引入后的路由标记;
route-policyroute-policy-name:指定用于限制外部路由引入的路由策略名称;
level-1 |level-2 | level-1-2:表示引入路由到L1、L2或同时到L1和L2路由表中。默认到L2路由表中。
示例:配置IS-IS引入静态路由,并设置该路由的开销值为15。
<Huawei>system-view
[Huawei]isis
[Huawei-isis-1]import-route static cost 15
示例:配置IS-IS引入OSPF路由,并保留该路由的原有开销值。
<Huawei>system-view
[Huawei]isis
[Huawei-isis-1]import-route ospfinherit-cost
三、配置IS-IS发布外部路由过滤
当IS-IS路由域边界路由器将引入的外部路由发布给其他IS-IS设备时,如果对方IS-IS设备不需要拥有全部的外部路由,则可通过配置基本ACL或IP地址前缀列表或路由策略来控制只发布部分外部路由给其他IS-IS设备。
配置方法是在对应的IS-IS进程下执行:filter-policy {acl-number | acl-nameacl-name | ip-prefix ip-prefix-name | route-policyroute-policy-name} export [protocol [process-id]]
配置该命令后,不会影响引入的外部路由添加到本地设备的路由表中,只会对IS-IS邻居设备发布的外部路由进行过滤。
示例:配置IS-IS使用编号为2000的ACL,仅允许已引入的外部路由1.1.1.0/24在发布给其他路由器时进行过滤。
<Huawei>system-view
[Huawei]acl 2000
[Huawei-acl-basic-2000]rule permit source1.1.1.0 0.255.255.255
[Huawei]isis
[Huawei-isis-1]filter-policy 2000 export
四、配置IS-IS路由下发IP路由表过滤
IP报文是根据IP路由表来进行转发的。IS-IS路由表中的路由条目需要被成功下发到IP路由表中,该路由条目才生效。可通过配置基本ACL、IP地址前缀列表、路由策略等方式,只允许匹配的IS-IS路由下发到IP路由表。不匹配的IS-IS路由将被阻止进入IP路由表,更不会被优选。
配置IS-IS路由下发到IP路由表过滤的方法是在对应的IS-IS进程下通过filter-policy {acl-number | acl-name acl-name | ip-prefixip-prefix-name |route-policy route-policy-name}import命令进行,以控制将部分符合条件的IS-IS路由下发到IP路由表。
示例:使用ACL2000过滤接收的路由,将1.1.1.0/24的IS-IS路由加入到IP路由表中。
<Huawei>system-view
[Huawei]acl 2000
[Huawei-acl-basic-2000]rule permit source1.1.1.0 0.255.255.255
[Huawei]isis
[Huawei-isis-1]filter-policy 2000 import
控制IS-IS的路由选路
影响IS-IS选路的因素比较多,如IS-IS协议的优先级、IS-IS接口的开销、等价路由的处理方式、IS-IS路由渗透的配置和IS-IS缺省路由的发布。可根据具体应用环境选择其中一项或多项配置任务。
①配置IS-IS协议的优先级
②配置IS-IS接口的开销
③配置IS-IS对等价路由的处理方式
④配置IS-IS路由渗透
⑤控制Level-1设备是否生成缺省路由。
一、配置IS-IS协议的优先级
一台路由器可同时运行多个路由协议,可能会发现到达同一目的地多条不同协议路由,其中协议优先级高的路由将被优选。通过配置IS-IS协议的优先级,可将IS-IS路由的优先级提高,使IS-IS的路由被优选。如结合路由策略的使用,还可灵活地仅将期望的部分IS-IS路由的优先级提高,而不影响其他的路由选择。
IS-IS协议优先级的具体配置方法是在对应的IS-IS进程下通过:preference {preference | route-policy route-policy-name}*命令进行。
Preferencepreference:为所有IS-IS协议的路由设定优先级。
Preferencepreference route-policy route-policy-name:为通过匹配的IS-IS路由和没有通过匹配的路由设定不同的优先级,这时通过匹配的路由将采用指定路由策略中apply preference preference字句设定的优先级,而没有通过匹配的IS-IS路由将采用preference参数所设置的优先级。
Preferenceroute-policy route-policy-name preference:为通过匹配的路由设定优先级(由preference参数设置),不影响其他IS-IS路由的优先级。
示例:设置通过路由策略abc的路由优先级被设定为50,未通过路由策略abc的路由优先级被设定为30。
<Huawei>system-view
[Huawei]route-policy abc permit node 1
[Huawei-route-policy]if-match cost 20
[Huawei-route-policy]apply preference 50
[Huawei-route-policy]quit
[Huawei]isis 1
[Huawei-isis-1]preference 30 route-policyabc
示例:设置所有IPv4 IS-IS路由的优先级均为25。
<Huawei>system-view
[Huawei]isis
[Huawei-isis-1]preference 25
二、配置IS-IS接口的开销
IS-IS有三种方式来确定接口的开销,按照优先级由高到底分别如下:
①接口开销:为单个接口设置开销,优先级最高。
②全局开销:为所有接口设置开销,优先级中等。
③自动计算开销:根据接口带宽自动计算开销,优先级最低。
用户可根据需要选择一种或多种接口开销配置方式。在配置接口开销前,可根据实际需要配置IS-IS的开销类型,因为不同类型的开销的聚会范围不一样。如果没有为IS-IS接口配置任何开销值,IS-IS接口的默认开销为10,开销类型为narrow。在实际应用中,为方便IS-IS实现其扩展功能,通常将IS-IS的路由开销类型设置为wide模式。
IS-IS接口开销也即IS-IS链路开销,是二层概念,代表接口所在链路的开销。IS-IS链路开销(OSPF中链路开销一样)通常是由链路接口的带宽确定的。但如果链路两端的接口带宽不一致,则以带宽低的接口来计算整条链路的开销。IS-IS路由开销是指该路由所经过的链路的链路开销之和,但要注意的是,同一路由器上的不同接口之间的链路开销为0。
1、配置IS-IS接口开销类型
配置IS-IS接口开销类型的方法是在对应的IS-IS进程下使用cost-style {narrow | wide | wide-compatible | { {narrow-compatible |compatible} [relax-spf-limit] }}命令。
①narrow:指定IS-IS设备所有接口只能接收和发送开销类型为narrow的路由。Narrow模式下路由的开销值取值范围为1~63的整数。
②wide:指定IS-IS设备所有接口只能接收和发送开销类型为wide的路由。wide模式下路由的开销值取值范围为1~16777215的整数。
③wide-compatible:指定IS-IS设备所有接口可以接收开销类型为narrow和wide的路由,但却只发送开销类型为wide的路由。
④narrow-compatible:指定IS-IS设备所有接口可以接收开销类型为narrow和wide的路由,但却只发送开销类型为narrow的路由。
⑤compatible:指定IS-IS设备所有接口可以接收和发送开销类型为narrow和wide的路由。
⑥relax-spf-limit:指定IS-IS设备所有接口可以接收开销值大于1023的路由,对接口的链路开销值和路由开销值均没有限制,按照实际的路由开销值正常接收该路由。如果不选择此可选项,则会根据具体情况分别进行如下处理:
◆如果路由开销值小于或等于1023,且该路由经过的所有接口的链路开销值都小于等于63,则这条路由的开销值按照实际值接收,即路由的开销值为该路由所经过的所有接口的链路开销值总和。
◆如果路由开销值小于或等于1023,但该路由经过的所有接口中有的接口链路开销值大于63,则设备只能学习到该接口所在设备的其他接口的直连路由和该接口所引入的路由,路由的开销值按照实际值接收,路由此后要经过的接口将丢弃该路由。此接口之后的路由将被丢弃。
◆如果路由开销值大于1023,设备可以接收链路开销值小于1023的接口所在网段的所有路由;如果路由开销值大于1023,则仅按照1023接收,不能接收链路开销值大于1023的接口所在网段的所有路由。
示例:设置当前IS-IS路由器只能发送narrow型报文,但是可以接收narrow型和wide型的报文。
<Huawei>system-view
[Huawei]isis
[Huawei-isis-1]cost-style narrow-compatible
2、配置接口开销
IS-IS接口的开销可以有三种配置方式:
IS-IS接口开销和接口带宽对应关系:
三、配置IS-IS对等价路由的处理方式
当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由,此时有两种配置方式。
①配置负载分担:流量会被均匀地分配到每条链路上。缺点是对流量转发具有一定的随机性,可能不利于对业务流量的管理。
②配置等价路由优先级:针对等价路由中的每一条路由,明确指定其优先级,优先级高的路由将被优选,优先级低的路由可以作为备用链路。
四、配置IS-IS路由渗透
如果在一个L1区域中有多台L1/2设备与L2区域相连,每台L1/2设备都会在L1 LSP中设置ATT标志位,则该区域中就有到达L2区域和其他L1区域的多条出口路由。
ATT比特标志位是IS-ISLSP报文中的一个字段,用来标识L1区域是否与其他区域关联。L1/2设备在其生成的L1 LSP中设置该比特位为1,以通知同一区域中的L1设备自己与其他区域相连,也就是说与L2骨干区域相连(因为L1区域之间不能直接相连)。当L1区域中的设备收到L1/2设备发送的ATT被置位的L1 LSP后,他将生成一条指向L1/2设备的缺省路由,以便数据可以被路由到其他区域。
缺省情况下,L1区域的路由会渗透到L2区域中,因此L1/2设备和L2设备了解整个网络的拓扑信息,但L1区域的设备只维护本地L1区域的LSDB数据库,不知道整个网络的拓扑信息。这样一来,L1路由器只能选择将流量转发到最近(开销最小)的L1/2设备,再由L1/2设备将流量转发到L2区域。然而,该路由可能不是到达目的地最优路由,因为尽管L1到达L1/2的开销是最小的,但该L1/2到达目的区域的开销不一定是最小的。
为帮助L1区域内的设备选择到达其他区域的最优路由,可以在L1/2路由器上配置IPv4IS-IS路由渗透,将L2区域的某些路由渗透到本地L1区域,这样L1区域中的路由器就可以自己根据路由计算选择到达目的区域的最优路由。另外,考虑网络中部署的某些业务可能只在本地L1区域内运行,无需将这些路由渗透到L2区域中,可以在L1/2路由器上通过配置策略仅将部分L1区域的路由渗透到L2区域。在IS-IS路由渗透配置方面包括两个方向:一是可以控制由L2区域向L1区域的路由渗透,同时还可控制L1区域向L2区域的路由渗透。
1、配置L2区域的路由渗透到L1区域
在L1/2路由器上配置L2区域的路由渗透到L1区域的方法是在对应的IS-IS进程下使用:import-route isis level-2 into level-1 [tag tag| filter-policy {acl-number |acl-name acl-name | ip-prefix ip-prefix-name |route-policyroute-policy-name}]*命令进行配置。
示例:使用名为2000的路由策略过滤IS-IS从L2区域向L1区域进行渗透的路由。
<Huawei>system-view
[Huawei]isis
[Huawei-isis-1]import-route isis level-2into level-1 filter-policy 2000
2、配置L1区域的路由渗透到L2区域
在L1/2路由器上配置L1区域的路由渗透到L2区域的方法是在对应的IS-IS进程下使用:import-route isis level-1 into level-2 [tagtag | filter-policy {acl-number| acl-nameacl-name | ip-prefix ip-prefix-name | route-policy route-policy-name}]
示例:使用名为2000的路由策略过滤IS-IS从L1区域向L2区域进行渗透的路由。
<Huawei>system-view
[Huawei]isis
[Huawei-isis-1]import-route isis level-1into level-2 filter-policy 2000
五、控制Level-1设备是否生成缺省路由
IS-IS协议规定,如果IS-ISL1/2设备根据其LSDB判断到通过L2区域比L1区域能够到达更多的区域,则该设备会在所发布的L1 LSP内将ATT比特位置位(即置为1)。这样,收到这个ATT比特位置位的LSP报文的L1设备会生成一条目的地为发送该LSP的L1/2设备的缺省路由。
以上是IS-IS协议的默认原则,实际应用中,可根据需要对ATT比特位进行手动配置以更好地为网络服务。这里有两种配置方式:一是在L1/2路由器上配置发布的LSP报文中ATT比特位的置位情况;二是在L1路由器上设置在收到ATT比特位置位的L1 LSP报文后不生成缺省路由。
1、在L1/2路由器上配置发布的LSP报文中ATT比特位的置位情况
在对应的IS-IS进程下通过:attached-bitadvertise {always | never}进行配置。
虽然ATT比特位同时在L1 LSP和L2 LSP中进行了定义。但是它只会在L1LSP中被置位,并且只有L1/2路由器才会设置这个字段,因此该命令仅对L1/2设备生效。
示例:设置L1/2设备在IS-IS进程1中发布的L1 LSP ATT比特位永远置位。
<Huawei>system-view
[Huawei]isis 1
[Huawei-isis-1]attached-bit advertisealways
2、在L1路由器上设置不生成缺省路由
在L1路由器上配置在收到ATT比特位置位的L1 LSP报文后也不生成缺省路由的配置方法是在对应的IS-IS进程下通过:attached-bit avoid-learning命令进行。通常在配置L2区域向L1区域进行路由渗透后,要在L1路由器上配置不生成缺省路由,以免在与外部区域进行通信时选择了次优路由。
示例:设置L1设备不因为收到ATT比特位置位的L1 LSP报文而生成缺省路由。
<Huawei>system-view
[Huawei]isis 1
[Huawei-isis-1]attached-bit avoid-learning
调整IS-IS路由的收敛性能
提高对IS-IS网路中故障的响应速度,加快出现网络故障时的路由收敛速度,提高可靠性。
①配置Hello报文参数
②配置LSP报文参数
③配置CSNP报文参数
④调整SPF的计算时间间隔
⑤配置IS-IS路由按优先级收敛
一、配置Hello报文参数
IS-IS协议通过Hello报文的收发来维护与相邻设备的邻居关系,当本端设备在一段时间(邻居保持时间)内没有收到对端发送的Hello报文时,将认为邻居已经失效。所以这里涉及两个时间的配置:一是Hello报文的发送时间间隔,二是邻居保持时间。
在IS-IS中,本端设备与相邻设备保持邻居关系的时间长短可以通过设置发送Hello报文的时间间隔和IS-IS的邻居保持时间来控制:
①Hello报文发送间隔越短,需要占用越多的系统资源来发送Hello报文,造成CPU负载过重。
②如果IS-IS的邻居保持时间配置得太大,那么如果对端邻居已经失效,本端设备需要等待过长得到时间才能检测到,从而减慢IS-IS路由收敛速度。
③如果IS-IS的邻居保持时间配置的太小,由于网络传输延时和传播差错等原因可能会在成个别Hello报文的丢失或出错,那么邻居关系会频繁的UP和Down,造成网络的路由震荡。
通常是建议IS-IS网络中的所有设备配置相同的Hello报文发送间隔和邻居保持时间,以免造成某些设备对链路故障的检测速度低于其他设备而减慢全网IS-IS路由的收敛速度。
二、配置LSP报文参数
LSP报文用于交换链路状态信息,可配置LSP报文的大小及最大有效时间,还可以通过使能LSP加速扩散,以及减小接口发送LSP报文的最小时间间隔和LSP报文的刷新周期加快LSP报文的扩散速度,使得网络快速收敛。还可以通过配置LSP生成的智能定时器,自动根据网络环境计算出生成LSP报文的时间间隔这样既可以快速响应突发事件,加快网络的收敛速度,又可以在网络变化频繁时自动延长智能定时器的间隔时间,避免过度占用CPU资源。
三、配置CSNP报文参数
CSNP(全序列号报文)包括本地设备上某个LSDB中所有的LSP摘要信息,用来保证相邻设备间LSDB的同步。
①在广播网络中,CSNP是由DIS设备周期性发送的。当邻居发现LSDB不同步时,向DIS发送PSNP报文来请求缺失的LSP报文。
②在P2P网络中,CSNP只在第一次建立邻接关系时发送。
正因为P2P网络中CSNP报文仅发送一次,所以CSNP报文参数仅可在广播网络中配置,而且仅可配置CSNP报文的发送时间间隔。由于IS-IS路由的收敛速度依赖于LSDB的同步速度,因此减小CSNP报文的发送间隔时间可以加快LSDB的同步以及IS-IS路由的收敛。
广播网络中,CSNP报文参数的具体配置方法是在对应的接口(该接口必须使能了IS-IS功能的接口)视图下使用:isis timer csnp csnp-interval [level-1 | level-2]进行。
示例:设置L2的CSNP报文在接口GE1/0/0上每15s发送一次。
<Huawei>system-view
[Huawei]isis 1
[Huawei-isis-1]network-entity01.0000.0000.0001.00
[Huawei-isis-1]quit
[Huawei]interface gigabitethernet 1/0/0
[Huawei-GigabitEthernet1/0/0]isis enable 1
[Huawei-GigabitEthernet1/0/0]isis timercsnp 15 level-2
四、调整SPF的计算时间间隔
当网络变化比较频繁时,IS-IS会频繁进行SPF计算,消耗资源,可通过配置只能定时器灵活调整不同时期SPF路由计算的时间间隔。
五、配置IS-IS路由按优先级收敛
随着网络的融合,区分服务的需求越来越强烈,关键业务路由需要尽快收敛,非关键收敛相对慢一点。因此,系统需要对不同路由按不同的收敛优先级处理。
系统为路由设置了不同的收敛优先级,分为critical、high、medium、low4种,其中critical路由的收敛优先级最高,low优先级最低。
IS-IS路由收敛优先级的应用规则如下:
①对于已存在的IS-IS路由,收敛优先级将依据prefix-priority命令重新进行设置
②对于新增加的IS-IS路由,收敛优先级将依据prefix-priority命令的过滤结果进行设置。
③如果一条了路由符合多个收敛优先级的匹配规则,则这些收敛优先级中最高者当选为路由的收敛优先级。
④L1 IS-IS路由的收敛优先级高于L2IS-IS路由的收敛优先级。