【网络协议详解】——isis技术(学习笔记)
目录
IS-IS简介
定义
目的
IS-IS基本概念
IS-IS的拓扑结构
DIS和伪节点
IS-IS的地址结构
IS-IS的报文类型
IS-IS基本原理
IS-IS邻居关系的建立
IS-IS的LSP交互过程
IS-IS认证
认证的分类
认证信息的携带形式
S-IS路由渗透
IS-IS Overload
IS-IS Wide Metric
IS-IS LSP分片扩展
基本概念
工作原理
IS-IS多实例和多进程
控制Level-1设备是否生成缺省路由
背景信息
配置IS-IS路由渗透
背景信息
配置IS-IS等价路由
背景信息
配置IS-IS发布缺省路由
背景信息
IS-IS简介
定义
中间系统到中间系统IS-IS(Intermediate System to Intermediate System)属于内部网关协议IGP(Interior Gateway Protocol),用于自治系统内部。IS-IS也是一种链路状态协议,使用最短路径优先SPF(Shortest Path First)算法进行路由计算。
目的
IS-IS是国际标准化组织ISO(the International Organization for Standardization)为它的无连接网络协议CLNP(ConnectionLess Network Protocol)设计的一种动态路由协议。
随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF(Internet Engineering Task Force )在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnection)环境中,称为集成IS-IS(Integrated IS-IS或Dual IS-IS)。
IS-IS基本概念
IS-IS的拓扑结构
IS-IS的整体拓扑
为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。
IS-IS路由器的分类
-
Level-1路由器
Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,属于不同区域的Level-1路由器不能形成邻居关系。Level-1路由器只负责维护Level-1的链路状态数据库LSDB(Link State Database),该LSDB包含本区域的路由信息,到本区域外的报文转发给最近的Level-1-2路由器。
-
Level-2路由器
Level-2路由器负责区域间的路由,它可以与同一或者不同区域的Level-2路由器或者其它区域的Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。
所有Level-2级别(即形成Level-2邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性。只有Level-2级别的路由器才能直接与区域外的路由器交换数据报文或路由信息。
-
Level-1-2路由器
同时属于Level-1和Level-2的路由器称为Level-1-2路由器,它可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻居关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻居关系。Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。
Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。
IS-IS的网络类型
IS-IS只支持两种类型的网络,根据物理链路不同可分为:
- 广播链路:如Ethernet、Token-Ring等。
- 点到点链路:如PPP、HDLC等。
DIS和伪节点
在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS(Designated Intermediate System)。DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的链路状态协议数据单元LSP(Link state Protocol Data Unit),用来描述这个网络上有哪些网络设备。
伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和一个字节的Circuit ID(非0值)标识。
IS-IS协议中DIS与OSPF协议中DR(Designated Router)的区别:
-
在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。
-
在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。
-
在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中,路由器只与DR和BDR建立邻接关系。
IS-IS的地址结构
网络服务访问点NSAP(Network Service Access Point)是OSI协议中用于定位资源的地址。NSAP的地址结构如图4所示,它由IDP(Initial Domain Part)和DSP(Domain Specific Part)组成。IDP和DSP的长度都是可变的,NSAP总长最多是20个字节,最少8个字节。
- IDP相当于IP地址中的主网络号。它是由ISO规定,并由AFI(Authority and Format Identifier)与IDI(Initial Domain Identifier)两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域。
- DSP相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL(NSAP Selector)用来指示服务类型。
-
Area Address
IDP和DSP中的High Order DSP一起,既能够标识路由域,也能够标识路由域中的区域,因此,它们一起被称为区域地址(Area Address),相当于OSPF中的区域编号。同一Level-1区域内的所有路由器必须具有相同的区域地址,Level-2区域内的路由器可以具有不同的区域地址。
一般情况下,一个路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。为了支持区域的平滑合并、分割及转换,在设备的实现中,一个IS-IS进程下最多可配置3个区域地址。
-
System ID
System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。
在实际应用中,一般使用Router ID与System ID进行对应。假设一台路由器使用接口Loopback0的IP地址192.168.1.1作为Router ID,则它在IS-IS中使用的System ID可通过如下方法转换得到:-
将IP地址192.168.1.1的每个十进制数都扩展为3位,不足3位的在前面补0,得到192.168.001.001。
-
将扩展后的地址分为3部分,每部分由4位数字组成,得到1921.6800.1001。重新组合的1921.6800.1001就是System ID。
实际System ID的指定可以有不同的方法,但要保证能够唯一标识主机或路由器。
-
-
SEL
SEL的作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。在IP上SEL均为00。
网络实体名称NET(Network Entity Title)指的是设备本身的网络层信息,由区域地址和System ID组成,可以看作是一类特殊的NSAP(SEL=00)。NET的长度与NSAP的相同,最多为20个字节,最少为8个字节。在路由器上配置IS-IS时,只需要考虑NET即可,NSAP可不必去关注。
例如有NET为:ab.cdef.1234.5678.9abc.00,则其中Area Address为ab.cdef,System ID为1234.5678.9abc,SEL为00。
IS-IS的报文类型
IS-IS报文有以下几种类型:HELLO PDU(Protocol Data Unit)、LSP和SNP。
-
Hello PDU
Hello报文用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs)。其中,广播网中的Level-1 IS-IS使用Level-1 LAN IIH;广播网中的Level-2 IS-IS使用Level-2 LAN IIH;非广播网络中则使用P2P IIH。它们的报文格式有所不同。P2P IIH中相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段以及表示DIS和伪节点System ID的LAN ID字段。
-
LSP
链路状态报文LSP(Link State PDUs)用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP。Level-1 LSP由Level-1 IS-IS传送,Level-2 LSP由Level-2 IS-IS传送,Level-1-2 IS-IS则可传送以上两种LSP。
LSP报文中主要字段的解释如下:
-
ATT字段:当Level-1-2 IS-IS在Level-1区域内传送Level-1 LSP时,如果Level-1 LSP中设置了ATT位,则表示该区域中的Level-1 IS-IS可以通过此Level-1-2 IS-IS通往外部区域。
-
OL(LSDB Overload)字段:过载标志位。
设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过过载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会使用这台路由器做转发,只计算该节点上的直连路由。
-
IS Type字段:用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)。
-
-
SNP
序列号报文SNP(Sequence Number PDUs)通过描述全部或部分数据库中的LSP来同步各LSDB(Link-State DataBase),从而维护LSDB的完整与同步。
SNP包括全序列号报文CSNP(Complete SNP)和部分序列号报文PSNP(Partial SNP),进一步又可分为Level-1 CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP。
CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒);在点到点链路上,CSNP只在第一次建立邻接关系时发送。
PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。
IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组。其格式如图5所示。TLV也称为CLV(Code-Length-Value)。
IS-IS基本原理
IS-IS是一种链路状态路由协议,每一台路由器都会生成一个LSP,它包含了该路由器所有使能IS-IS协议接口的链路状态信息。通过跟相邻设备建立IS-IS邻接关系,互相更新本地设备的LSDB,可以使得LSDB与整个IS-IS网络的其他设备的LSDB实现同步。然后根据LSDB运用SPF算法计算出IS-IS路由。如果此IS-IS路由是到目的地址的最优路由,则此路由会下发到IP路由表中,并指导报文的转发。
IS-IS邻居关系的建立
两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻居关系。在不同类型的网络上,IS-IS的邻居建立方式并不相同。
-
P2P链路邻居关系的建立
在P2P链路上,邻居关系的建立不同于广播链路。分为两次握手机制和三次握手机制。
-
两次握手机制
只要路由器收到对端发来的Hello报文,就单方面宣布邻居为Up状态,建立邻居关系。
-
三次握手机制
此方式通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,类似广播邻居关系的建立。
两次握手机制存在明显的缺陷。当路由器间存在两条及以上的链路时,如果某条链路上到达对端的单向状态为Down,而另一条链路同方向的状态为Up,路由器之间还是能建立起邻接关系。SPF在计算时会使用状态为UP的链路上的参数,这就导致没有检测到故障的路由器在转发报文时仍然试图通过状态为Down的链路。三次握手机制解决了上述不可靠点到点链路中存在的问题。这种方式下,路由器只有在知道邻居路由器也接收到它的报文时,才宣布邻居路由器处于Up状态,从而建立邻居关系。
-
IS-IS按如下原则建立邻居关系:
-
只有同一层次的相邻路由器才有可能成为邻居。
-
对于Level-1路由器来说,区域号必须一致。
-
链路两端IS-IS接口的网络类型必须一致。
链路两端IS-IS接口的地址必须处于同一网段。
由于IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻居关系的形成与IP地址无关。但在实际的实现中,由于只在IP上运行IS-IS,所以是要检查对方的IP地址的。如果接口配置了从IP,那么只要双方有某个IP(主IP或者从IP)在同一网段,就能建立邻居,不一定要主IP相同。
IS-IS的LSP交互过程
LSP产生的原因
IS-IS路由域内的所有路由器都会产生LSP,以下事件会触发一个新的LSP:
-
邻居Up或Down
-
IS-IS相关接口Up或Down
-
引入的IP路由发生变化
-
区域间的IP路由发生变化
-
接口被赋了新的metric值
-
周期性更新
收到邻居新的LSP的处理过程
-
将接收的新的LSP合入到自己的LSDB数据库中,并标记为flooding。
-
发送新的LSP到除了收到该LSP的接口之外的接口。
-
邻居再扩散到其他邻居。
LSP的“泛洪”
LSP报文的“泛洪”(flooding)是指当一个路由器向相邻路由器通告自己的LSP后,相邻路由器再将同样的LSP报文传送到除发送该LSP的路由器外的其它邻居,并这样逐级将LSP传送到整个层次内所有路由器的一种方式。通过这种“泛洪”,整个层次内的每一个路由器就都可以拥有相同的LSP信息,并保持LSDB的同步。
IS-IS认证
IS-IS认证是基于网络安全性的要求而实现的一种认证手段,通过在IS-IS报文中增加认证字段对报文进行认证。当本地路由器接收到远端路由器发送过来的IS-IS报文,如果发现认证密码不匹配,则将收到的报文进行丢弃,达到自我保护的目的。
认证的分类
根据报文的种类,认证可以分为以下三类:
-
接口认证:是指使能IS-IS协议的接口以指定方式和密码对Level-1和Level-2的Hello报文进行认证。
对于接口认证,有以下两种设置:
-
发送带认证TLV的认证报文,本地对收到的报文也进行认证检查。
-
发送带认证TLV的认证报文,但是本地对收到的报文不进行认证检查。
-
-
区域认证:是指运行IS-IS的区域以指定方式和密码对Level-1的SNP和LSP报文进行认证。
-
路由域认证:是指运行IS-IS的路由域以指定方式和密码对Level-2的SNP和LSP报文进行认证。
认证信息的携带形式
IS-IS通过TLV的形式携带认证信息,认证TLV的类型为10,具体格式如下:
-
Type:ISO定义认证报文的类型值为10,长度为1字节。
-
Length:指定认证TLV值的长度,长度1字节。
-
Value:指定认证的具体内容,其中包括了认证的类型和认证的密码,长度为1~254字节。
其中认证的类型为1字节,具体定义如下:
-
0:保留的类型
-
1:明文认证
-
54:MD5认证
-
255:路由域私有认证方式
-
S-IS路由渗透
通常情况下,Level-1区域内的路由通过Level-1路由器进行管理。所有的Level-2和Level-1-2路由器构成一个连续的骨干区域。Level-1区域必须且只能与骨干区域相连,不同的Level-1区域之间并不相连。
Level-1-2路由器将学习到的Level-1路由信息装进Level-2 LSP,再泛洪LSP给其他Level-2和Level-1-2路由器。因此,Level-1-2和Level-2路由器知道整个IS-IS路由域的路由信息。但是,为了有效减小路由表的规模,在缺省情况下,Level-1-2路由器并不将自己知道的其他Level-1区域以及骨干区域的路由信息通报给它所在的Level-1区域。这样,Level-1路由器将不了解本区域以外的路由信息,可能导致与本区域之外的目的地址通信时无法选择最佳的路由。
为解决上述问题,IS-IS提供了路由渗透功能。通过在Level-1-2路由器上定义ACL(Access Control List)、路由策略、Tag标记等方式,将符合条件的路由筛选出来,实现将其他Level-1区域和骨干区域的部分路由信息通报给自己所在的Level-1区域。
RouterA发送报文给RouterF,选择的最佳路径应该是RouterA->RouterB->RouterD->RouterE->RouterF。因为这条链路上的cost值为50,但在RouterA上查看发送到RouterF的报文选择的路径是:RouterA->RouterC->RouterE->RouterF,其cost值为70,不是RouterA到RouterF的最优路由。
RouterA作为Level-1路由器并不知道本区域外部的路由,那么发往区域外的报文都会选择由最近的Level-1-2路由器产生的缺省路由发送出去,所以会出现RouterA选择次最优路由转发报文的情况。
如果分别在Level-1-2路由器RouterC和RouterD上使能路由渗透功能,Aera10中的Level-1路由器就会拥有经这两个Level-1-2路由器通向区域外的路由信息。经过路由计算,选择的转发路径为RouterA->RouterB->RouterD->RouterE->RouterF,即RouterA到RouterF的最优路由。
IS-IS Overload
IS-IS Overload使用IS-IS过载标记位来标识过载状态。IS-IS过载标志位是指IS-IS LSP报文中的OL字段。对设备设置过载标志位后,其它设备在进行SPF计算时不会使用这台设备做转发,只计算该设备上的直连路由。
IS-IS Wide Metric
在早期的ISO10589中,使能IS-IS协议的接口下最大只能配置值为63的开销值,此时认为IS-IS开销类型为narrow。但是在大型网络设计中,较小的度量范围不能满足实际需求。所以在RFC3784中规定,使能IS-IS协议的接口开销值可以扩展到16777215,IS-IS路由开销值可以达到4261412864,此时IS-IS的开销类型为wide。
-
narrow类型下使用的TLV:
-
128号TLV(IP Internal Reachability TLV):用来携带路由域内的IS-IS路由信息。
-
130号TLV(IP External Reachability TLV):用来携带路由域外的IS-IS路由信息。
-
2号TLV(IS Neighbors TLV):用来携带邻居信息。
-
-
wide类型下使用的TLV:
-
135号TLV(Extended IP Reachability TLV):用来替换原有的IP reachability TLV,携带IS-IS路由信息,它扩展了路由开销值的范围,并可以携带sub TLV。
-
22号TLV(IS Extended Neighbors TLV):用来携带邻居信息。
-
IS-IS LSP分片扩展
当IS-IS要发布的链路状态协议数据报文PDU(Protocol Data Unit)中的信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。
IS-IS LSP分片由LSP ID中的LSP Number字段进行标识,这个字段的长度是1字节。因此,一个IS-IS进程最多可产生256个LSP分片,携带的信息量有限。在RFC3786中规定,IS-IS可以配置虚拟的SystemID ,并生成虚拟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分片。
附加系统ID和系统ID一样,在整个路由域中必须唯一。
-
24号TLV(IS Alias ID TLV):用来表示初始系统与虚拟系统的关系。
工作原理
在IS-IS中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。通过增加附加系统ID,可以最多配置50个虚拟系统,从而使得IS-IS进程最多可生成13056个LSP分片。
使能分片扩展功能之后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。重启之后,初始系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的LSP中发送出去,并通过24号TLV来告知其他路由器此虚拟系统和自己的关系。
模式 | 应用场景 | 工作原理 |
Mode-1 | 用于网络中的部分路由器不支持LSP分片扩展特性的情况。 | 虚拟系统参与路由SPF计算,初始系统发布的LSP中携带了到每个虚拟系统的链路信息。类似地,虚拟系统发布的LSP也包含到初始系统的链路信息。这样,在网络中虚拟系统看起来与初始系统相连的真实路由器是一样的。 这种方式是为了兼容不支持分片扩展的老版本所做的一个过渡模式。在老版本中,IS-IS无法识别IS Alias ID TLV,所以虚拟系统的LSP必须表现的像一个普通IS-IS发出的报文。 |
Mode-2 | 用于网络中所有路由器都支持LSP分片扩展特性的情况。 | 虚拟系统不参与路由SPF计算,网络中所有路由器都知道虚拟系统生成的LSP实际属于初始系统。 在该模式下工作的IS-IS,可以识别IS Alias ID TLV的内容,并作为计算树和路由的依据。 |
IS-IS多实例和多进程
对于支持VPN(Virtual Private Network)的设备,IS-IS多实例是指在同一台路由器上,可以配置多个VPN实例与多个IS-IS进程相关联。IS-IS多进程指在同一个VPN下(或者同在公网下)可以创建多个IS-IS进程,每个进程之间互不影响,彼此独立。不同进程之间的路由交互相当于不同路由协议之间的路由交互。
每个IS-IS进程都可以绑定一个指定的VPN实例,其典型应用就是在VPN场景中PE和CE之间运行IS-IS协议,同时VPN骨干网上的IGP也采用IS-IS。那么,在PE上这两个IS-IS进程互不影响。
IS-IS多实例和多进程的特点如下:
-
IS-IS多进程共用同一个RM路由表。而IS-IS多实例使用VPN中的RM路由表,并且每个VPN都有自己单独的RM路由表。
-
IS-IS多进程允许为一个指定的IS-IS进程关联一组接口,从而保证该进程进行的所有协议操作都仅限于这一组接口。这样,就可以实现一台路由器有多个IS-IS协议进程,每个进程负责唯一的一组接口。
-
IS-IS进程在创建时可以选择绑定一个VPN实例,于是这个IS-IS进程就与此VPN实例相关联,并且只接收和处理此VPN实例内的事件。当VPN实例删除时,IS-IS进程也会跟着被删除。
控制Level-1设备是否生成缺省路由
背景信息
IS-IS协议规定,如果IS-IS Level-1-2设备根据链路状态数据库判断到通过Level-2区域比Level-1区域能够到达更多的区域,该设备会在所发布的Level-1 LSP内将ATT比特位置位。对于收到ATT比特位置位的LSP报文的Level-1设备,会生成一条目的地为发送该LSP的Level-1-2设备的缺省路由。
以上是协议的默认原则,在实际应用中,可以根据需要对ATT比特位进行手动配置以更好地为网络服务。
- 请根据实际需要执行以下步骤:
-
执行命令 attached-bit advertis { always | never },设置Level-1-2设备发布的LSP报文中ATT比特位的置位情况。
- always参数用来设置ATT比特位永远置位,收到该LSP的Level-1设备会生成缺省路由。
- never参数用来设置ATT比特位永远不置位,可以避免Level-1设备生成缺省路由,减小路由表的规模。
- 执行命令 attached-bit avoid-learning,设置即使收到Level-1 LSP报文的ATT比特位置位,Level-1设备也不生成缺省路由。
-
配置IS-IS路由渗透
背景信息
如果在一个Level-1区域中有多台Level-1-2设备与Level-2区域相连,每台Level-1-2设备都会在Level-1 LSP中设置ATT标志位,则该区域中就有到达Level-2区域和其他Level-1区域的多条出口路由。
缺省情况下,Level-1区域的路由会渗透到Level-2区域中,因此Level-1-2设备和Level-2设备了解整个网络的拓扑信息。由于Level-1区域的设备只维护本地Level-1区域的LSDB数据库,不知道整个网络的拓扑信息,所以只能选择将流量转发到最近的Level-1-2设备,再由Level-1-2设备将流量转发到Level-2区域。然而,该路由可能不是到达目的地的最优路由。
为了帮助Level-1区域内的设备选择到达其他区域的最优路由,可以配置IPv4 IS-IS路由渗透,将Level-2区域的某些路由渗透到本地Level-1区域。
另外,考虑到网络中部署的某些业务可能只在本地Level-1区域内运行,则无需将这些路由渗透到Level-2区域中,可以通过配置策略仅将部分Level-1区域的路由渗透到Level-2区域。
配置IS-IS等价路由
背景信息
当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由,此时可以采取两种方式:
-
配置负载分担。流量会被均匀的分配到每条链路上。
该方式可以提高网络中链路的利用率及减少某些链路负担过重造成阻塞发生的情况。但是由于对流量转发具有一定的随机性,因此可能不利于对业务流量的管理。
-
配置等价路由优先级。针对等价路由中的每一条路由,明确指定其优先级,优先级高的路由将被优选,优先级低的路由可以作为备用链路。
该方式可以在不修改原有配置的基础上,指定某条路由被优选,便于业务的管理,同时提高网络的可靠性。
当组网中存在的等价路由数量大 maximum load-balancing 命令配置的等价路由数量时,按照下面原则选取有效路由进行负载分担:
- 路由优先级:选取优先级小(优先级高)的路由进行负载分担。
- 下一跳设备的System ID:如果路由的优先级相同,则比较下一跳设备的System ID,选取System ID小的路由进行负载分担。
- 本地设备出接口索引:如果路由优先级和下一跳设备的System ID都相同,则比较出接口的接口索引,选取接口索引较小的路由进行负载分担。
配置IS-IS发布缺省路由
背景信息
在具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该设备在IS-IS路由域内发布一条0.0.0.0/0的缺省路由。在执行此配置后,IS-IS域内的其他设备在转发流量时,将所有去往外部路由域的流量首先转发到该设备,然后通过该设备去往外部路由域。
配置静态缺省路由虽然也可以实现该功能,但是当现网中有大量设备时,配置工作量巨大且不利于管理。
此外,采用IS-IS发布缺省路由的方式更加灵活。例如,如果存在多个边界设备,那么可以通过配置路由策略,使某台边界设备在满足条件时才发布缺省路由,从而避免造成路由黑洞。
- 执行命令 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发布缺省路由。
缺省情况下,IS-IS设备不生成缺省路由。