IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)是一种路由选择协议,适用于IP和ISO CLNS(Connectionless Network Service,无连接网络服务)的双环境网络。它是一种可扩展的、健壮的和易使用的IGP(Interior Gateway Protocol,内部网关协议)协议。
IS-IS早期设计用于CLNP(Connection-Less Network Protocol,无连接网络协议)网络,但是随着TCP/IP协议成为主流,IETF对IS-IS进行了修改,使其能够同时适用于TCP/IP环境,改造后的IS-IS称为Integrated IS-IS或Dual IS-IS。
IS-IS作为链路状态协议,具有链路状态协议的共通性。它通过发送Hello包来发现和维护邻居关系,通过向邻居发送协议数据报LSP(Link State PDU,链路状态协议数据单元),来通告自身的链路状态。IS-IS支持2层路由(层1和层2路由)方案,同一层次中的所有设备有相同的LSDB(Link State Database,链路状态数据库),LSDB中存储着同一层次的所有设备产生的LSP,从而同一层次的所有设备都知道本端所在层次的网络拓扑结构,每台设备使用Dijkstra SPF(Shortest Path First,最短路径优先)算法优化路由计算,路径选择并实现快速收敛。
说明
本章使用“路由器”指支持路由功能的网络设备。这些网络设备可以是三层交换机、路由器、防火墙等。
IS-IS组网的层次结构
如图1-1,该网络分为两层Level-1和Level-2,同一区域内的设备交换信息的结点组成一层(Level-1)。
Level-1路由器,负责区域内的路由,它只与属于同一区域的Level-1 和Level-1-2路由器形成邻居关系,维护一个Level-1的LSDB,该LSDB包含本区域的路由信息,到区域外的报文转发给最近的Level-1-2 路由器。
Level-2路由器,负责区域间的路由,可以与同一区域或者其它区域的Level-2和Level-1-2路由器形成邻居关系,维护一个Level-2的LSDB,该LSDB 包含区域间的路由信息。所有Level-2 路由器和Level-1-2 路由器组成路由域的骨干网,负责在不同区域间通信,骨干网必须是物理连续的。只有Level-2 路由器才能直接与路由域外的路由器交换数据报文或路由信息。
Level-1-2路由器,同时属于Level-1和Level-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用于区域间路由。L1/L2路由器缺省情况下将L1的路由重分发到L2,如果L1路由很多,需汇聚后再重分发到L2。
简单来说,区域内的所有设备知道整个区域的网络拓扑结构,负责区域内的数据交换。Level-1-2设备是不同区域的边界设备,提供区域连接。区域之间通过Level-2设备相联接,各个区域的边缘设备组成骨干网,是Level-2层。Level-2负责区域间的数据交换。
Level-1设备仅关心本区域拓扑结构,包括本区域所有节点和到达这些节点的下一跳设备。Level-1设备通过Level-2设备访问其他区域,并且转发在区域外的目的网络的数据包到最近Level-2设备。
IS-IS协议的地址编码方式
IS-IS协议地址称为NET(Network Entity Title,网络实体名称),可分为三个部份:区域地址,System ID,NSAP(Network Service Access Point,网络服务接入点)标识。总长度为8-20字节。
NET地址格式
区域地址标识区域的路由域长度,并在路由域里固定。长度为1-13字节。
区域ID由AFI(Authority and Format Identifier)、IDI(Initial Domain Identifier)与HODSP(High Order DSP)组成,AFI表示地址分配机构和地址格式,IDI用来标识域,HODSP用来分割区域。
System ID在自治系统中是唯一的。
一般使用Router ID转化为System ID,转化规则为(假设Router ID为192.168.10.1):将IP地址的每个十进制数都扩展成为3位数,不足3位数则使用0补齐。扩展后的地址为192.168.010.001。再将扩展后的地址等分成3部分,那么System ID就是1921.6801.0001。
NSAP为网络选择器,有时也称SEL,在IS-IS中常设SEL为00表示设备。
IS-IS报文类型
IS-IS报文包括三种报文类型:
链路状态报文LSP。
用来在区域中传播链路状态记录。分为两种:Level 1 Link State PDU和Level 2 Link State PDU。LSP只会泛洪到本端所属层次。
IIH报文(IS-to-IS Hello PDUs,IS-IS握手传输单元)。
用于维护邻接。Hello包发送组播MAC地址,用来发现确定其它系统是否运行IS-IS。
序列号报文SNP(Sequence Number PDUs,序列号数据单元),包括CSNP(Complete SNP,全序列号报文)和PSNP(Partial SNP,部分序列号报文)。
CSNP完全序列号报文用于LSDB同步。在广播网中DIS默认每10秒发送一次CSNP报文,在点对点网络中CSNP报文只在邻居关系建立后发送一次。
PSNP部份序列号报文同样用于LSDB同步。
IS-IS支持的TLV类型
IS-IS支持26种TLV(Type-Length-Value,类型-长度-内容)。
IS-IS支持的TLV类型
IS-IS支持的TLV类型
TLV CODE |
描述 |
---|---|
Code=1 |
区域地址 |
Code=2 |
IS-IS邻居优先级信息 |
Code =3 |
ES邻居 |
Code=6 |
IS-IS邻居MAC地址 |
Code=8 |
填充字段 |
Code=9 |
LSP实体 |
Code=10 |
验证字段 |
Code=14 |
源LSP缓冲区大小 |
Code=22 |
扩展的中间系统可达性 |
Code=128 |
IP内部可达性信息 |
Code=129 |
支持的协议 |
Code =130 |
IP外部可达性信息 |
Code=131 |
域间路由协议信息 |
Code=132 |
IP接口地址 |
Code=133 |
验证信息 |
Code=135 |
扩展的IP可达性TLV |
Code=137 |
动态主机名 |
Code = 211 |
Graceful Restart |
Code = 222 |
MT中间系统可达性 |
Code = 229 |
Multi Topology TLV |
Code=232 |
IPV6接口 |
Code = 235 |
IPv4 MT IP可达TLV |
Code =236 |
IPV6 IP可达TLV |
Code = 237 |
IPv6 MT IP可达TLV |
Code =240 |
P2P三次握手TLV |
IS-IS支持的网络类型
IS-IS支持的网络类型有点到点链路和广播链路。
IS-IS整个工作过程分为三步:邻居建立,LSDB同步和路由计算。在广播网络中,邻居建立后还会涉及DIS选举。
邻居建立
IS-IS的邻居建立过程和OSPF类似,收到Hello报文中不包含任何信息,状态置为Initial。收到neighbor字段为本机MAC地址的Hello报文时,邻居状态为Up。双方邻居状态都为Up时,邻居状态建立成功。
DIS选举
DIS(Designated IS,广播网上的指定设备)相当于OSPF中的DR。
Peseudonode:伪结点是由DIS产生,和本网中所有设备建立联系。
选举DIS的原因与OSPF中选举DR的原因一样,其目的是为了减少不必要的邻接关系和路由信息的交换。DIS在邻居建立后开始选举,并且Level-1和Level-2区域的DIS分开选举,优先级也存在L1优先级和L2优先级的区别。
DIS将多重访问链路模拟成伪结点,负责生成伪节点的LSP。伪节点和本网络中的所有设备建立联系,并且不允许它们之间直接联系。广播子网和NBMA网络在外部被看成一个伪节点,网络中的非DIS会向DIS报告本端的链路状态信息,而DIS则代表整个网络中所有的IS 报告链路状态信息。
IS-IS的DIS选举是抢占式的。DIS的选举结果可以通过设置接口的Priority值手工控制。Priority值越大越优选。Priority值为0的设备也会参与DIS选举。
LSDB同步
运行链路状态路由协议的所有设备都将本端和直连网络的链路状态信息发送至邻居。邻居收到后,记录并转发给本端的邻居。链路状态信息更新完成后,所有的路由器获得全网络的拓扑信息,该过程就是LSDB泛洪同步。
触发LSDB同步的行为有很多,如邻居或邻居接口Up、Down、接口Metric变化、重分发路由变化和周期更新等。
路由器收到LSP报文的处理过程如下:
数据库搜索,若无此LSP,记录数据库并广播同步。
若LSP序列号大于本地LSP序列号,更新数据库并广播同步。
若LSP序列号小于本地LSP序列号,回复本地LSP信息。
路由计算
LSDB同步完成后,IS-IS使用SPF计算出最短路径树,再根据最短路径树生成IS-IS路由。
Level-1-2路由器发送的LSP中设置ATT位为1。区域内的Level-1路由器根据ATT标志位和路由计算可以得知最近的Level-1-2路由器,并将其作为去往其他区域路由的中转接点。
路由重分布
IS-IS可以将其他路由协议的路由、其他IS-IS进程的路由引入IS-IS进程中,同时还能将Level-1和Level-2区域路由相互引入。
缺省情况下,IS-IS网络中Level-2区域不会将已知的骨干区域和其他Level-1区域路由信息同步给Level-1区域,因为无法获悉区域外路由信息,路由选路时可能产生次有路由的问题。路由重分发时,可以根据策略路由将符合条件的其他Level-1区域和骨干区域路由引入本端所在的Level-1区。
路由聚合
路由汇聚是指将具有相同前缀的路由信息汇聚为一条路由,并将汇聚后的路由(替代大量琐碎路由)发布给邻居。路由汇聚有助于减轻协议交互负担和减小路由表的规模,同时也能减小路由震荡对路由表的影响。
负载分担
网络中存在多条等价路由时,IS-IS可以将流量分摊到等价路径上,提高链路的利用率。
缺省IS-IS的Metric类型为Narrow模式,Narrow模式下接口最大Metric值为63。在大型网络中,Narrow模式的Metric取值范围不能提供足够的灵活性,因此有了Wide Metric,Metric取值范围可以达到16777215。
IS-IS通过泛洪LSP来通告链路状态信息。LSP报文大小受限于链路的MTU,不能无限扩展,在需要通告的内容超过一个LSP报文大小时,IS-IS创建LSP分片来承载新的链路状态信息。根据ISO标准规定,LSP分片号通过1个字节的LSP Number(LSP分片号)来识。,因此,IS-IS设备可产生的LSP分片数最大为256。
以下几种情况会导致LSP 256个分片不够用:
新的应用扩展新的TLV或Sub-TLV,比如TE。
网络规模的不断扩大。
通告颗粒更小的路由或重分发其他路由到IS-IS。
在LSP分片被填满的情况下,新增的路由信息以及邻居信息等都会被直接丢弃,这时网络会出现异常,如路由黑洞或路由环路等。为了保证网络的正常运行,需要对LSP分片进行扩展以承载更多的链路状态信息。
通过配置附加系统ID并配置分片扩展开关,IS-IS在扩展LSP中宣告更多的链路状态信息。可以把每个虚拟系统看作一台与初始系统建立路径值为0的邻居关系的虚拟的设备,扩展LSP就是由初始系统邻居即虚拟系统发布的LSP报文。
分片扩展关联的常用术语如下:
普通或正常系统ID(Normal system-id)
目前ISO定义的系统ID,用于邻居建立、路由学习,为了与分片扩展引入的附加系统ID区别,用普通或正常进行限定。
附加系统ID(Additional system-id)
与普通系统ID相对应,由管理员配置,用于生成扩展LSP。附加系统ID除了不在Hello报文中出现用于邻居建立之外,其他使用规则与普通系统ID一样,如整个区域内必须是唯一的,不能重复。
初始系统(Originating System)
实际运行IS-IS协议的设备,与由附加系统ID标识的虚拟系统相对应。
虚拟系统(Virtual System)
由附加系统ID标识的系统,用于生成扩展LSP,为了与原来的初始系统区别,RFC提出虚拟系统的概念,每个虚拟系统可以生成最多256个LSP分片报文。管理员可以通过配置多个附加系统ID即多个虚拟系统,生成更多的LSP分片报文满足需求。
原始LSP(Original LSP)
由初始系统生成,LSP ID中的系统ID为普通系统ID的LSP报文。
扩展LSP(Extended LSP)
由虚拟系统生成,LSP ID中的系统ID为附加系统ID的LSP报文。
IS-IS MTR(Multi-Topology Routing,多拓扑路由)即IS-IS多拓扑路由,是为了使IS-IS支持IPv4单播和IPv6单播分拓扑的扩展功能。通过在IS-IS的IIH和LSP报文中引入新定义的TLV类型传播IPv6单播拓扑的信息。用户根据需要在同一物理网络上划分出不同的IPv4单播和IPv6单播逻辑拓扑,两个逻辑拓扑分别进行SPF计算,相互独立维护IPv4单播和IPv6单播路由表。这样,IPv4单播业务和IPv6单播业务的流量可以有不同的转发路径。IS-IS MTR技术可以帮助用户按照规划逐步部署IPv6单播网络,并且不受IPv4单播拓扑和IPv6单播拓扑信息必须保持一致的限制。
IS-IS MTR技术源自IS-IS MT技术。IS-IS MT本身可用于实现IPv4单播和IPv6单播拓扑分离、单播拓扑和组播拓扑分离和协议栈(比如IPv4和IPv6)拓扑分离。IS-IS MTR即使用IS-IS MT实现IPv4单播和IPv6单播拓扑分离的技术。
图1-3是一个典型的组网应用:要求实施IPv6单播拓扑增量部署,部分设备升级支持IPv4和IPv6双协议栈,但部分设备仍然只支持IPv4单协议栈。
如图1-3所示,链路上的数字代表的是链路的Metric,其中Device B仅支持IPv4单协议栈,而其它设备都支持IPv4和IPv6双协议栈。
为了不淘汰只支持IPv4的Device B,需要取消IPv4单播和IPv6单播拓扑保持一致的组网限制,否则Device B不能与Device A或者Device D建立邻接关系,但是这样又可能会引发新的问题,说明如下。
如图1-4所示,在不支持IS-IS MTR的情况下,Device A、Device B、Device C和Device D进行SPF计算只考虑单一的混合拓扑,得到的最短路径是Device A Device B Device D,开销为20。但是由于Device B不支持IPv6,导致IPv6报文无法转发而被丢弃处理。
如图1-5所示,采用IS-IS MTR技术之后则可以将IPv4单播和IPv6单播拓扑分离,此时Device A、Device B、Device C和Device D根据IPv4单播拓扑和IPv6单播拓扑建立邻接关系。左边是根据支持IPv4的路由设备建立的IPv4分拓扑,计算出IPv4最短路径为Device A Device B Device C,从而保证了IPv4报文的可达性。而右边则是根据支持IPv6的路由设备建立的IPv6分拓扑,计算出IPv6最短路径为Device A Device C Device D,从而保证了IPv6报文被正确转发。
IS-IS MTR部署通用原则:一般情况下,存在只支持单协议的设备情况下,为了避免路由黑洞,才需要部署IS-IS MTR。如果所有的设备都支持IPv4和IPv6双协议栈,则无需部署IS-IS MTR。
全新网络部署:如果只支持IPv4单协议栈的设备,则无需开启IS-IS MTR功能。如果只支持IPv6单协议栈设备,则开启IS-IS MTR功能的MT模式,支持IPv4和IPv6双协议栈的设备,开启IS-IS MTR功能的MT(Multi-Topology,多拓扑)模式,不建议开启MTT(Multi-Topology Transition,多拓扑传输)模式,因为可能存在环路。
只支持单协议栈的网络改造:支持IPv4和IPv6双协议栈的设备先从近(网络拓扑中离单协议栈设备最近的设备)到远依次开启IS-IS MTR的MTT模式,等所有新增设备都开启MTT模式后,在从远(网络拓扑中离单协议栈设备最远的设备)到近将MTT模式切换成MT模式。
在广播网络中,邻居选举DIS,路由器仅将路由信息发送给DIS。
点到点链路上,有两种邻居建立方式。
两次握手
只要收到IS-IS Hello报文即单向建立邻居关系,可靠性低。
三次握手
三次发送IS-IS Hello的确认机制建立邻居关系,可靠性高。
在单向状态为Down的链路中,如果仅根据收到对端发送的Hello报文就认为邻居状态建立,这样的邻居是异常的。三次握手需要收到邻居回复的确认报文,即知道对端设备已经正确收到Hello报文,才会建立邻接关系。
未配置IS-IS MTR时,两个路由设备能成功建立邻居关系的条件是:
两个路由设备能成功建立邻居关系的条件是:
两边接口地址在同一个网段。
两边接口Level匹配。
两边互相通过认证。
两边支持的协议都要一致。
配置IS-IS MTR时,两个路由设备能成功建立邻居关系的条件是:
两边接口地址在同一个网段。
两边接口Level匹配。
两边互相认证通过。
P2P链路类型中,两边支持的MT ID至少有一个要一致。
LAN链路类型中,不判断两边支持的MT ID,默认通过检测。
Internet对信息安全要求越来越高,运营商为防止数据不会攻击者窃取和恶意修改,在特定区域或者接口上应用IS-IS认证功能,以保证数据安全。
IS-IS认证分类
按照报文种类划分:
接口认证:对Level-1和Level-2的Hello报文进行认证。
区域认证:对Level-1的CSNP、PSNP和LSP报文进行认证。
路由域认证:对Level-2的CSNP、PSNP和LSP报文进行认证。
按照认证方式划分:
简单认证:在报文中插入配置的密码,安全性较低。
MD5认证:将密码用MD5算法加密后插入报文中。
Keychain认证:配置密钥链,密码随时间变化而变化。
实现过程
本地路由器收到其他路由器发送的IS-IS报文,检查认证密码是否正确,若不匹配,则丢弃报文。IS-IS通过TLV的形式携带认证信息。TLV的格式如下:
Type:认证报文类型,TCP/IP类型值为133。
Length:TLV值长度。
Value:认证类型和密码。
接口认证:认证在接口模式下配置,互联的路由器接口配置密码必须相同。
区域认证:IS-IS路进程模式下配置,区域内路由器的认证方式,密钥串或密码必须相同。
路由域认证:IS-IS路进程模式下配置,路由域内路由器的认证方式,密钥串或密码必须相同。
SNP报文和LSP报文可以分开认证,并且可以配置对收到的LSP或者SNP报文是否进行认证检查。
GR(Graceful Restart,优雅重启)成功有两个重要原则:
网络拓扑要保持稳定。
重启IS-IS协议的设备可以在重启过程中保持转发不中断。
GR过程中的两个角色:Restarter和Helper。对应地,IS-IS GR从功能上也分为IS-IS GR Restart能力和IS-IS GR Help能力。具备GR Restart能力的设备能够发送GR请求,自主的执行优雅重启。具备GR Help能力的设备可以接收GR请求,协助邻居执行优雅重启。GR 的过程从Restarter 发送GR请求开始。邻居设备在收到GR请求后进入Help模式,辅助Restarter重建链路状态数据库,同时保持与Restarter间的邻接关系。
IS-IS设备在进行优雅重启时,一方面通过通告邻居保持它们之间的邻接关系,使网络中的其他设备无法感知网络的变化,网络中的拓扑关系没有发生变化,邻居不会重新计算路由并更新转发表;另一方面在邻居的协助下同步和恢复GR前的链路状态数据库,从而保证GR前后路由及转发表没发生改变,达到GR前后数据不间断转发。
在Restarter优雅重启过程中,发生如下过程:
GR Restarter通告GR Helper本设备要重启
Restarter通告重启
Device A为GR Restarter,Device B和Device C均为Switch A的GR Helper。Device A发送GR请求给所有的邻居,通告本设备将要执行GR,在GR过程中避免删除与本设备的邻接关系。各邻居收到GR请求后,在通告的GR时间(即GR grace-period)内,保持与GR Restarter间的邻接关系,并向Restarter发送GR应答。
GR Restarter重新启动
Restarter重新启动
当GR Restarter进行IS-IS重启,其IS-IS接口状态经历从Down到Up的过程。Helper知道Restarter处于协议重启状态,在GR Time时间间隔内,继续保持与GR Restarter间的邻接关系,而且仍保留来自GR Restarter的路由。
GR Restarter从GR Helper同步获取拓扑和路由信息
数据库同步
GR Restarter的IS-IS协议重新启动后,通过GR Helper同步获得拓扑或路由信息,并以此重新计算本端的路由表。过程中,路由表不会更新至转发表。
GR Restarter完成数据库同步,优雅重启完成,所有设备进入IS-IS标准协议交互状态。
优雅重启完成
Restarter完全数据同步,所有设备进入IS-IS标准协议交互状态。此时Restarter的路由表更新至转发表并清除无效的表项。在网络稳定的状态下,因为Restarter完美地恢复到重启前的状态,即完成优雅重启,它的路由表及转发表前后没有发生改变。
IS-IS通过LSP快速扩散和智能定时器来加快收敛速度。
LSP快速扩散
通过修改LSP泛洪间隔和接口每次最多发送的LSP报文的数目,当收到需要触发路由计算的LSP时,在路由计算时间内将LSP扩散到IS-IS区域,可以减少路由计算,加快收敛速度。
智能定时器
调整LSP报文生成时间和SPF算法计算时间。在稳定的IS-IS网络中,路由计算的频率很低,首次进行SPF算法的时间很短。但是在拓扑变更,网络抖动频繁时,会导致频繁进行路由计算,消耗CPU资源。为快速收敛,同时降低CPU消耗,智能定时器会根据路由计算的频繁程度增加SPF计算时延。
RFC 1142:OSI IS-IS Intra-domain Routing Protocol
RFC 1195:Use of OSI IS-IS for routing in TCP/IP and dual environments
RFC 3786:Extending the Number of Intermediate System to Intermediate System (IS-IS) Link State PDU (LSP) Fragments Beyond the 256 Limit
RFC 3373:Three-Way Handshake for Intermediate System to Intermediate System (IS-IS) Point-to-Point Adjacencies
RFC 3358:Optional Checksums in Intermediate System to Intermediate System (ISIS)
RFC 3784:Intermediate System to Intermediate System (IS-IS) Extensions for Traffic Engineering (TE)
RFC 2763:Dynamic Hostname Exchange Mechanism for IS-IS
RFC 6119(draft-ietf-isis-ipv6-te-00):IPv6 Traffic Engineering in IS-IS
RFC 2966: Domain-wide Prefix Distribution with Two-Level IS-IS
RFC 5306:Restart Signaling for IS-IS
同一台设备相同实例的所有接口上启用的PIM模式必须相同。
IS-IS基础配置
(可选)配置IS-IS网络层次类型
(可选)配置IS-IS Hello报文
(可选)配置IS-IS LSP报文
(可选)配置IS-IS SNP报文
(可选)配置IS-IS路由发布
(可选)配置IS-IS路由聚合
(可选)配置IS-IS的被动接口
(可选)控制IS-IS选路因素
(可选)配置IS-IS设备优先级
(可选)配置IS-IS认证
(可选)配置IS-IS GR
(可选)配置IS-IS NSR
(可选)配置IS-IS与BFD联动
(可选)配置IS-IS OVERLOAD
(可选)配置IS-IS VRF
(可选)配置IS-IS MTR
(可选)配置IS-IS SNMP
(可选)配置IS-IS双向维持功能
(可选)配置IS-IS拓展特性,以下配置均可选,请根据实际情况配置:
配置通告邻居最大度量值
配置区域地址数的最大值
配置SPF计算周期
取消点对点网络的三次握手协商
配置TLV支持协议填充
配置抑制邻居可达时间
开启邻接事件输出
IS-IS的基本配置,是所有IS-IS特性配置的配置前提,可实现基本网络互通。
对于同一区域内的Level-1的IS-IS设备,必须配置一样的区域地址。
核心路由表不区分不同IS-IS进程生成的路由表项。
设置IP地址时,IP地址要和邻居相邻接口的IP地址在同一个网段上。
如果IP地址要和邻居相邻接口的IP地址不在同一网段,无法建立邻居关系。
如果接口要加入指定的IS-IS进程并且配置IS-ISv4功能,在ip router isis后要带上该IS-IS进程的Tag名。
如果在全局配置模式下配置no ip routing,那么IS-IS将会所有接口上关闭IPv4路由功能,也就是在所有接口上自动执行no ip router isis [ tag ],其他IS-IS配置保持不变。
如果接口要加入指定的IS-IS进程并且配置IS-ISv6功能,在ipv6 router isis后要带上该IS-IS进程的Tag名。
如果在全局配置模式下配置no ipv6 unicast-routing,那么IS-IS将会所有接口上关闭IPv6路由功能,也就是在所有接口上自动执行no ipv6 router isis [ tag ],其他IS-IS配置保持不变。
进入特权模式。
enable
进入全局配置模式。
configure terminal
启动IS-IS路由进程,并进入IS-IS路由进程配置模式。
router isis [ tag ]
缺省情况下,未配置任何IS-IS实例。
如果启动IS-IS 路由进程时使用了参数tag则在关闭IS-IS路由进程的时候也要使用参数Tag。
设置IS-IS的NET地址。
net net-address
缺省情况下,IS-IS未设置NET地址。
不同的NET地址中的System ID必须相同。
(可选)调整IS-IS的System ID。请选择其中一项进行配置。
配置用自定义的名字代替实例的System ID。
is-name name
缺省情况下,使用默认System ID。
配置用目的路由器的主机名字代替路由器的System ID。
hostname dynamic
缺省情况下,主机名动态替换功能处于开启状态。
退回全局配置模式。
exit
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
在接口上配置IS-IS。
接口上配置IS-ISv4
ip router isis [ tag ]
缺省情况下,接口下不启用IPv4 IS-IS路由。
接口上配置IS-ISv6。
ipv6 router isis [ tag ]
缺省情况下,接口不启用IPv6 IS-IS路由功能。
IS-IS协议支持2层分层体系,以在大型网络中管理选路和实现可扩展路由选择。每个层次仅关心维护本区域的拓扑结构。
如果设置了Level-1或Level-2-only的circuit-type,则IS-IS只发送相应Level的PDU。
如果接口电路类型设置了external,则此接口作为外部域接口,IS-IS不发送相应Level的PDU。
一台设备上只能存在一个实例运行于Level-2(包括Level-1-2)。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IS-IS所运行的Level。
is-type { level-1 | level-1-2 | level-2-only }
缺省情况下,IS-IS运行Level默认为Level-1-2。
退回全局配置模式
exit
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置接口运行的IS-IS Level。
isis circuit-type { level-1 | level-1-2 | level-2-only [ external ] }
缺省情况下,接口电路类型为Level-1-2。
配置将Broadcast类型的接口设置为Point-to-Point类型。
isis network point-to-point
缺省情况下,维持Broadcast网络类型不变。
调整Hello报文的控制参数,如Hello报文发送时间间隔,邻居保持时间,报文填充,邻居检测等。可以控制邻居建立与维持交互密度。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置接口发送Hello报文的间隔时间。
isis hello-interval { interval | minimal } [ level-1 | level-2 ]
缺省情况下,Level-1和Level-2的Hello报文发送时间间隔为10秒。
配置接口Hello holdtime的乘数。
isis hello-multiplier multiplier-number [ level-1 | level-2 ]
缺省情况下,Hello holdtime的乘数值为3,即Hello holdtime为Hello interval的3倍。
配置对接口上发送的IS-IS Hello报文进行填充。
isis hello padding
缺省情况下,对接口上发送的Hello报文启用填充。
IPv4环境下开启Hello报文中检测邻居支持协议。
adjacency-check
缺省情况下,检测Hello报文中邻居所支持的协议功能处于开启状态。
进入IS-IS IPv6地址族配置模式。
address-family ipv6 unicast
IPv6环境下开启Hello报文中检测邻居支持协议。
adjacency-check
缺省情况下,检测Hello报文中邻居所支持的协议功能处于开启状态。
退出IS-IS IPv6地址族配置模式。
exit-address-family
调整LSP报文的各个定时器,报文长度,会影响LSP更新的及时性和LSP交互频率。
为避免网络拓扑变化导致频繁传输LSP,可以设置LSP生成时间,刷新时间。
LSDB变化时,IS-IS将发送LSP扩散通知此变化,如果设备存在大量IS-IS路由和接口,过小的发送时间间隔和较大的一次发送LSP个数可能会导致网络中突发大量LSP,所以需合理评估和设置。LSP重传时间间隔在点对点网络中使用,因为点对点网络中,LSP需要得到对方应答后,发送过程才认为完成。
参数lsp-refresh-interval必须小于max-lsp-lifetime。
max-lsp-lifetime必须大于lsp-refresh-interval。
配置的initial-interval不能大于maximum-interval,否则将initial-interval的值修改为maximum-interval。
配置的hold-interval不能大于maximum-interval,否则将hold-interval的值修改为maximum-interval。
配置的initial-interval不能大于hold-interval,否则将initial-interval的值修改为hold-interval。
如果命令参数中没有指定Level,则默认是Level-1-2,即同时在Level-1和Level-2生效。
如果需要在IS-IS接口上配置mesh-group,为了保证网络上各邻居间LSP同步的完整性,需要使用isis csnp-interval命令配置非0的CSNP报文发送间隔,定期发送CNSP报文同步LSP。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
接口上调整LSP控制参数。以下配置均为可选,请根据实际情况选择。
配置LSP报文发送间隔。
isis lsp-interval interval [ level-1 | level-2 ]
缺省情况下,IS-IS接口发送LSP PDU的间隔时间值为33毫秒。
配置IS-IS接口一次发送LSP PDU的个数。
isis lsp-flood lsp-number [ level-1 | level-2 ]
缺省情况下,IS-IS接口一次最多发送的LSP报文的数目为5。
配置LSP报文重传间隔。
isis retransmit-interval retransmit-interval [ level-1 | level-2 ]
缺省情况下,LSP重传的间隔时间为5秒。
如果retransmit-interval设为0,则不重发LSP报文。
退回全局配置模式。
exit
进入IS-IS路由进程配置模式。
router isis [ tag ]
IS-IS进程下调整LSP控制参数。以下配置均为可选,请根据实际情况选择。
配置LSP生成周期。
lsp-gen-interval [ level-1 | level-2 ] maximum-interval [ initial-interval hold-interval ]
缺省情况下,两次生成LSP的时间间隔最大值为5秒,生成LSP时的延迟时间为50毫秒,首次到第二次生成LSP时的最短的时间间隔为200毫秒。
配置LSP刷新周期。
lsp-refresh-interval interval
缺省情况下,LSP的刷新间隔值为900秒。
配置LSP有效时间。
max-lsp-lifetime max-lifetime
缺省情况下,生存时间的最大值为1200秒。
配置LSP报文重复接收延迟时间。
min-lsp-arrival [ level-1 | level-2 ] minimum-interval initial-interval hold-interval
缺省情况下,不支持LSP重复接收延迟功能。
配置忽略LSP报文的校验和检验错误。
ignore-lsp-errors
缺省情况下,不忽略LSP的校验和检验错误。
配置LSP分片扩展。
lsp-fragments-extend [ level-1 | level-2 ] [ compatible rfc3786 ]
缺省情况下,分片扩展功能处于关闭状态。要开启分片扩展功能,除了使用该命令在指定的层上配置之外还需要使用命令virtual-system配置附加系统ID。
配置IS-IS进程的附加系统ID。
virtual-system system-id
缺省情况下,未配置附加系统ID。系统要启用扩展分片,除了配置附加系统ID之外,还需要使用命令lsp-fragments-extend配置分片扩展。
配置接收LSP报文的最大长度。
lsp-length receive size
缺省情况下,接收LSP报文的最大长度1492字节。
配置发送LSP报文的最大长度。
lsp-length originate size [ level-1 | level-2 ]
缺省情况下,发送LS报文的最大长度为1492字节。
配置将IS-IS接口加入指定的全通组
isis mesh-group { blocked | mesh-group-id }
缺省情况下,接口未加入任何全通组。
缺省情况下,广播网的DIS每10秒发送一次CSNP报文进行LSDB同步。对于P2P接口网络,缺省情况下,CSNP报文只在邻居建立之初才被发送。
如果接口为设置全通组时,也可以设置周期性发送CSNP报文。如果CSNP报文的广播间隔设为0,则不发送CSNP报文。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置IS-IS接口的CSNP报文的广播间隔。
isis csnp-interval interval [ level-1 | level-2 ]
缺省情况下,广播网中,CSNP传送的间隔时间为10秒。对于P2P接口网络,默认不发送CSNP报文。
使用该命令时,Level-1和Level-2参数未带的情况下,缺省认为新的设置同时适用于Level-1和Level-2。
配置PSNP报文发送最小发送时间。
isis psnp-interval psnp-interval [ level-1 | level-2 ]
缺省情况下,PSNP发送时间调整功能处于关闭状态,此时最短时间间隔默认为2秒,同时作用于Level-1和Level-2。
IS-IS可以将其他路由协议的路由和其他IS-IS进程的路由引入IS-IS进程中,同时还能降Level-1和Level-2区域路由相互引入。
Level-2 domain不产生默认路由,使用default-information originate命令允许默认路由进入Level-2 domain。
部分厂商的旧版本将metric-type配置为external之后,在路由计算时,会将重分发的路由metric加64,再根据metric值大小进行选路,这种方式违反协议规定。在实际应用可能出现外部路由比内部路由优先级更高的情况。在与部分厂商的这些旧版本互通时,如果出现这种情况,可通过修改各设备的相关配置(如metric或metric-type等)以确保内部路由的优先级高于外部路由。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置生成缺省路由。
default-information originate [ route-map map-name ]
缺省情况下,不自动产生默认路由。
将其他路由重分布到IS-IS中。
redistribute { bgp | connected | ospf process-id [ match { external [ 1 | 2 ] | internal | nssa-external [ 1 | 2 ] } * ] | rip | static } [ [ level-1 | level-1-2 | level-2 ] | metric metric-value | metric-type { external | internal } | route-map route-map-name ] *
缺省情况下,重分布处于关闭状态。
将指定IS-IS实例的Level-1的可达路由信息重分布到当前实例的Level-2。
redistribute isis [ tag ] level-1 into level-2 [ distribute-list acl-name | route-map route-map-name ]
缺省情况下,重分布处于关闭状态。
将指定IS-IS实例的Level-2的可达路由信息重分布到当前实例的Level-1。
redistribute isis [ tag ] level-2 into level-1 [ distribute-list acl-name | {
ipv6-prefix ipv6-address/length |
prefix ipv4-address net-mask } | route-map route-map-name ]
缺省情况下,重分布处于关闭状态。
配置路由聚合可以有效减小路由表规模,减小系统资源占用。此外,如果聚合的IP地址范围内的链路抖动(Up和Down),不会影响聚合路由的通告,避免路由震荡。路由聚合后,只要存在聚合路由内任一可达地址或可达网段路由信息,就向外发布聚合路由,而不发布详细路由。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IPv4聚合路由。
summary-address ipv4-address net-mask [ level-1 | level-1-2 | level-2 ] [ metric metric-value ]
缺省情况下,聚合路由功能处于关闭状态。
进入IS-IS IPv6地址族配置模式。
address-family ipv6 unicast
配置IPv6路由聚合。
summary-prefix ipv6-prefix/prefix-length [ level-1 | level-1-2 | level-2 ]
缺省情况下,路由聚合功能处于关闭状态。
被动接口功能阻止在指定接口上收发IS-IS报文,但该接口对应的IP地址将通过其他接口泛洪出去。
如果没有启用IS-IS的接口超过255个,将只使用前面255个接口为被动接口,剩下的接口为非被动接口。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
IS-IS进程下配置被动接口。
passive-interface { default | interface-type interface-number }
缺省情况下,被动接口功能关闭。
退回全局配置模式
exit
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置接口为被动口。
isis passive
缺省情况下,以IS-IS进程下被动接口配置为准。
通过调整等价路由条目数,开销计算带宽参考值和接口的开销来调整IS-IS的路由选路。
maximum-paths是IS-IS协议自身控制安装到路由表的等价IS-IS路由条目,路由表本身也有控制等价路由条目的命令,最终显示生效的等价路由数取决于两者的最小值。
bandwidth-reference根据实例下配置的带宽值计算出该实例下接口的Metric值,若接口已配置了Metric值,则以接口配置的Metric为主。
Metric值放在IP可达信息的TLV中,它在SPF计算是被应用。越大的Metric值表示此接口的选路消耗越大,SPF计算其路径越长。Metric值是窄度量值,只在Metric-style包含Narrow模式时有效。Wide-metric值只在Metric-style为包含Wide模式时有效。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IS-IS路由的管理距离。
distance distance-value
缺省情况下,IS-IS管理距离为115。
配置最大等价路径。
maximum-paths maximum
缺省情况下,等价最大路由条目数为2。
设置计算开销带宽参考值。
bandwidth-reference value
缺省情况下,IS-IS计算开销带宽参考值为100 Mbps。
配置Metric类型。
metric-style { narrow | wide } [ transition ] [ level-1 | level-2 | level-1-2 ]
缺省情况下,度量格式采用Narrow。
退回全局配置模式
exit
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置IS-IS接口度量。
isis metric metric [ level-1 | level-2 ]
缺省情况下,Level-1和Level-2均使用bandwidth-reference的计算结果。
设置接口的Wide Metric值。
isis wide-metric metric [ level-1 | level-2 ]
缺省情况下,Level-1和Level-2 Wide metric值为bandwidth-reference命令的计算结果。
接口上调整设备DIS选举时的优先级,可以手动干预DIS的选举,让指定设备成为DIS。
接口的DIS优先级越低,在DIS选举中优选度也越低。
该功能在Point-to-Point网络接口上无效。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置设备在DIS选举时的优先级。
isis priority value [ level-1 | level-2 ]
缺省情况下,Level-1和Level-2选举DIS的优先级为64。
Internet对信息安全要求越来越高,运营商为防止数据不会攻击者窃取和恶意修改,在特定区域或者接口上应用IS-IS认证功能,以保证数据安全。
接口认证在建立维护邻接关系中起作用。如果两台IS-IS设备配置了不同的接口认证密码,就无法建立邻居关系,这样可以避免未经授权或认证的IS-IS设备加入到需要认证的IS-IS网络中。接口认证的密码被封装在Hello报文中进行发送。
IS-IS区域认证和路由域认证用于验证LSP、CSNP和PSNP报文,以避免未经授权或认证的路由信息被注入到IS-IS的链路状态数据库当中。在发送时,其认证密码被封装在相应的LSP、CSNP和PSNP报文中进行发送。
接口认证的密码被封装在接口发送的Hello报文中。接收Hello报文时,也会验证密码是否一致。
区域认证的密码被封装在该Level-1的LSP、CSNP和PSNP报文中。接收这些报文时,也会验证密码是否一致。
路由域认证的密码被封装在Level-2的LSP、CSNP和PSNP报文中。接收这些报文时,也会验证密码是否一致。
如果配置时没有指定Level,则默认是Level-1-2,即同时在Level-1和Level-2生效。
密码链中可能包含多个密码。在发送报文时,优先使用序号小的密码;在接收报文时,只要收到的报文的密码与密码链中任何一个密码相符,即可接收该报文。
在使用明文认证模式时,密码链中的密码string-text不能大于80字符,否则配置无效。
同一时候只使用一个key-chain,所以配置命令时,新指定的key-chain将取代原来的key-chain。
在对网络中的所有设备布署IS-IS接口和区域认证前,和对认证密码或认证模式进行更改前,先设置上send-only命令,各设备不对接收到的Hello报文进行认证,避免后序的IS-IS接口认证布署过程中网络产生震荡。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建密钥链,并进入密钥链配置模式。
key chain key-chain-name
创建密钥,并进入密钥配置模式。
key key-id
配置密钥。
key-string [ 0 | 7 ] string-text
退回密钥链配置模式。
exit
退回全局配置模式。
exit
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
配置接口对Hello报文进行认证。
指定接口认证模式为:明文或加密。
isis authentication mode { md5 | text } [ level-1 | level-2 ]
缺省情况下,接口认证模式功能处于关闭状态。
优先级高于isis password命令。
设置接口认证的密码。
isis authentication key-chain key-chain-name [ level-1 | level-2 ]
如果没有使用key chain命令配置相应的密码链,则不执行认证。另外,要使IS-IS密码链认证起作用,需要同时配置isis authentication mode命令。
(可选)设置接口的Hello报文明文认证密码。
isis password [ 0 | 7 ] password-string [ send-only ] [ level-1 | level-2 ]
缺省情况下,未启用明文认证。
若先前通过isis authentication mode配置了认证,则此命令无法配置。
(可选)配置发送的Hello报文中设置认证密码,但对接收到的Hello报文不进行认证检查。
isis authentication send-only [ level-1 | level-2 ]
缺省情况下,同时对接口上发送与接收的报文进行认证。
退回全局配置模式。
exit
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IS-IS区域对LSP、CSNP和PSNP报文认证。
(可选)设置区域(Level-1)明文认证密码。
area-password [ 0 | 7 ] password-string [ send-only ]
缺省情况下,Level-1区域明文认证功能处于关闭状态。
在同一Area中,所有的IS-IS设备必须设置相同的认证密码。若先前通过authentication mode配置了认证,则此命令无法配置。
(可选)设置路由域(Level-2)明文认证密码。
domain-password [ 0 | 7 ] password-string [ send-only ]
缺省情况下,Level-2区域认证密码功能处于关闭状态。
在Level-2 domain中,所有的IS-IS设备必须设置相同的认证密码。若先前通过authentication mode配置了认证,则此命令无法配置。
指定IS-IS路由域认证的模式。
authentication mode { md5 | text } [ level-1 | level-2 ]
缺省情况下,认证功能处于关闭状态。
指定IS-IS认证使用的密码链。
authentication key-chain name-of-chain [ level-1 | level-2 ]
缺省情况下,未配置认证密码链。
如果没有使用key chain命令配置相应的密码链,则不执行认证。另外,要使IS-IS密码链认证起作用,需要同时配置authentication mode命令。
(可选)指定IS-IS认证只应用于发送的报文。
authentication send-only [ level-1 | level-2 ]
缺省情况下,同时对发送与接收的报文进行认证。
使在网络状态未发生变化情况下,GR使IS-IS协议状态能够在重启后恢复到重启前的状态而不影响数据转发。提高系统的可靠性。
GR过程中的两个角色:Restarter 和Helper。对应地,IS-IS GR从功能上也分为IS-IS GR Restart能力和IS-IS GR Help能力。具备GR Restart能力的设备能够发送GR请求,自主的执行优雅重启,而具备GR Help能力的设备可以接收GR请求,并协助邻居执行优雅重启。GR的过程是由Restarter发送GR请求开始的。邻居设备在收到GR请求后进入Help模式,辅助Restarter重建链路状态数据库,同时保持与Restarter间的邻接关系。其主要工作机制如下。
支持
所有产品都支持IS-IS GR Helper能力。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IS-IS GR Restart能力。
graceful-restart
缺省情况下,IS-IS GR Restart能力处于开启状态。
(可选)配置设备优雅重启的最大时间间隔。
graceful-restart grace-period max-interval
缺省情况下,优雅重启的最大时间间隔值为300秒。
配置IS-IS GR Help能力。
graceful-restart helper disable
缺省情况下,IS-IS GR Helper功能处于开启状态。
该命令会使IS-IS忽略重启设备的优雅重启请求。
IS-IS NSR(IS-IS Nonstop Routing,不间断路由),有助于提高系统的可靠性。分布式或VSU设备主备切换过程中,用户数据流量始终保持转发不断流。备份信息:命令的配置,邻居的备份,LSP DB信息的备份。
NSR(Nonstop Routing,不间断路由)通过将IS-IS的相关信息从分布式设备的主管理板备份到备用管理板,或者从VSU(Virtual Switching Unit)的主机备份到从机,使设备在发生主备切换时可以自行完成链路状态的恢复和路由的重新生成,在恢复过程中不需要邻居设备的帮助。
和GR对比,GR需要邻居作为GR Helper。NSR不需要邻居协助。
同一个IS-IS进程,NSR和GR只能开启一种,因此开启GR时则不能开启NSR,开启NSR时将不能开启GR。
分布式设备和VSU的切换需要一段时间,若IS-IS的邻居保活时间比切换时间短,将导致邻居设备上IS-IS邻居断开,切换期间业务中断。因此,开启NSR功能时,建议IS-IS的邻居保活时间不小于默认配置。开启Fast Hello时,IS-IS的邻居保活时间小于1秒,切换过程IS-IS邻居将超时断开,将导致NSR失效,因此建议开启NSR功能时不启用Fast Hello。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
启动NSR功能。
nsr
缺省情况下,NSR功能处于关闭状态。
BFD(Bidirectional Forwarding Detection,双向转发检测)用于检测设备之间的连通性,最短能够在150毫秒内发现链路故障。将IS-IS与BFD联动后,一旦发生链路故障,IS-IS最短可以在150毫秒内感知到邻居死亡。从而加快路由收敛,避免流量中断。
在正常情况下,BFD以毫秒级别的间隔发送探测报文检测链路状态,当链路出现异常如链路断开,BFD能快速检测到链路异常并通知IS-IS删除邻居以及LSP报文中的邻居可达信息,IS-IS重新进行路由计算,生成新的路由,避开异常的链路,实现快速收敛。然而,随着多种新技术如MSTP(Multi-Service Transport Platform ,多业务传送平台)引入,链路在数据通信高峰时段极易出现拥塞,在拥塞情况下,BFD很快检测到链路异常并通知IS-IS删除邻居以及LSP报文中的邻居可达信息,进行了链路切换,避开拥塞的链路,然而由于IS-IS邻居检测Hello报文发送间隔是10秒,超时时间为30秒,在BFD检测到异常的时候,IS-IS Hello报文能正常收到,IS-IS邻居很快重新建立,路由恢复到拥塞链路,之后重新进行BFD检测,BFD再次检测到链路异常,再次进行了链路切换,如此反复,路由在拥塞线路和其他线路之间进行变换,不断震荡。
为了避免链路拥塞情况下的路由震荡,可以开启防震荡选项,在开启防震荡选项之后,在链路发生拥塞的情况下,IS-IS邻居状态继续保活,但LSP报文中的邻居可达信息被删除,路由切换到非拥塞线路,在链路恢复正常即不拥塞后,LSP报文中的邻居可达信息恢复,路由重新切换回来,避免了路由不断震荡。
启用IS-IS和BFD联动之前,必须配置BFD会话参数。
接口配置BFD防震荡命令时,如果接口有配置IS-IS与BFD联动,则IS-IS必须开启防震荡选项。
当IS-IS开启防震荡选项时,接口必须配置BFD防震荡命令bfd up-dampening。这两条命令必须同时配置,如果单一配置某条命令,都可能造成防震荡功能不生效,或者造成网络的其他异常情况。
IP选路可能导致BFD会话邻居指定的接口和实际BFD报文出接口不一致,这时BFD会话将无法建立。
如果创建BFD会话时指定的接口和实际BFD报文入接口不一致,将导致BFD会话无法建立。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
在IS-IS进程模式下启用BFD联动。
bfd all-interfaces [ anti-congestion ]
缺省情况下,所有接口下的IS-IS协议与BFD联动功能处于关闭状态。
退回全局配置模式。
exit
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
接口上配置IS-IS与BFD联动。
isis bfd [ disable | anti-congestion ]
缺省情况下,如果已配置bfd all-interfaces命令,则接口已开启IS-IS与BFD联动。如果未配置bfd all-interfaces命令,则接口未配置IS-IS与BFD联动。默认不开启防震荡选项。
强制IS-IS结点在非虚拟的LSP报文中设置OVERLOAD位,用于通知IS-IS邻居避免将本地结点作为中转设备。
如果携带on-startup关键字,则设备重启后自动进入OVERLOAD状态。如果未携带on-startup关键字,则设备重启立即进入OVERLOAD状态。
在如下三种情况下使用OVERLOAD位:
设备过载
本地IS-IS结点发生过载如内存不足和CPU满负荷等,导致本地路由表路由不全或没有资源转发数据,此时用户可通过在LSP报文中设置OVERLOAD位通知邻居避免将本地结点作为中转设备。
这种情况下,配置不带关键字on-startup,OVERLOAD位设置或取消由用户手工完成,用户必须在本地IS-IS结点恢复正常后手动取消该命令,要不然本地IS-IS结点将一直处于OVERLOAD状态。
瞬时黑洞
在RFC 3277描述的场景中,由于IS-IS收敛速度比BGP快,IS-IS结点重启后,将可能出现瞬时的路由不通即瞬时黑洞,此时用户可通过在LSP报文中设置OVERLOAD位通知邻居避免将本地结点作为中转设备,直到指定时间到期。
这种情况下,配置必须带关键字on-startup,OVERLOAD位设置或取消由IS-IS结点根据配置自动完成。选择on-startup选项后,IS-IS结点重启后自动进入瞬时黑洞状态,一有新邻居建立,就立即发送携带OVERLOAD位的LSP报文,通知邻居本地结点进入瞬时黑洞状态(或OVERLOAD状态),避免将本地结点作为中转设备。指定时间到期,IS-IS结点就立即发送取消OVERLOAD位的LSP报文,通知邻居本地结点已经离开瞬时黑洞状态(或OVERLOAD状态),可作为中转设备。
不希望本地IS-IS结点转发真实数据
如果用户只想将本地IS-IS结点接入生产网络做实验或者有其他功能需求,不希望本地IS-IS结点转发网络中的真实数据,此时可通过在LSP报文中设置OVERLOAD位通知邻居避免将本地结点作为中转设备。
这种情况下,配置不带关键字on-startup,OVERLOAD位设置或取消由用户手工完成。用户可以根据需要配置suppress,限制在OVERLOAD状态下LSP报文中携带的路由信息,如抑制内部和外部路由,只通告本地直连路由。如通告的直连路由和邻居可达的度量值设置为最大。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IS-IS OVERLOAD。
set-overload-bit [ on-startup { overload-time | wait-for-bgp [ bgp-convergence-time ] } ] [ suppress { interlevel | external | max-metric } * ] [ level-1 | level-2 ]
缺省情况下,邻居会将本地IS-IS结点作为中转设备转发数据。
VRF(VPN Routing and Forwarding,VPN路由转发),主要是为了隔离本地路由、数据报文和解决多个VPN使用相同前缀导致路由冲突的问题。
和同一个VRF绑定的IS-IS实例必须配置不一样的系统ID。不同VRF的IS-IS实例可以配置相同的系统ID。
一个IS-IS实例只能与一个VRF绑定,一个VRF可以被多个实例绑定。
IS-IS实例绑定的VRF变化时,所有与该实例关联的IS-IS接口将被删除(即删除接口的ip router isis [ tag ] 配置),路由进程模式下的重分发配置也将被删除。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IS-IS VRF。
vrf vrf-name
缺省情况下,IS-IS实例和VRF绑定处于关闭状态。
IS-IS MTR技术可以帮助用户按照规划逐步部署IPv6单播网络,并且不受IPv4单播拓扑和IPv6单播拓扑信息必须保持一致的限制。
设置此功能前须先设置Metric-style为Wide或Transition模式。
配置Metric-style为Narrow模式会关闭MTR功能,配置只有一个Level支持Wide或Transition模式也会关闭MTR功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS IPv6地址族配置模式。
address-family ipv6 unicast
配置IS-IS MTR。
multi-topology [ transition ]
缺省情况下,IS-IS未配置MTR,即IS-IS不支持IPv6单播拓扑。配置IS-IS SNMP。
通过网管软件管理OSPF协议的参数及监控协议运行状态。
最新标准规定的MIB操作只针对单个实例,系统默认对显示在第一个的IS-IS实例进行MIB操作,而IS-IS支持配置多实例,管理员可以根据需要通过该命令指定可进行MIB操作的实例。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启全局IS-IS TRAP开关。
snmp-server enable traps [ isis ]
缺省情况下,禁止SNMP向NMS主动发送Trap消息。
该命令必须与全局配置命令snmp-server host一起使用,才能发送陷阱消息。
配置全局SNMP主机。
snmp-server host { ipv4-addrress | ipv6 ipv6-address } [ vrf vrf-name ] [ traps ] [ version { 1 | 2c | 3 { auth | noauth | priv } ] community-string [ udp-port port-num ] [ notification-type ]
缺省情况下,未配置SNMP主机地址。
进入IS-IS路由进程配置模式。
router isis [ tag ]
绑定用于IS-IS MIB操作的实例。
enable mib-binding
缺省情况下,默认使用显示在第一个的实例进行SNMP操作。
允许traps报文发送。
enable traps { all | traps set }
缺省情况下,IS-IS Trap报文发送功能处于关闭状态。
在较大的网络中,可能会出现大量的报文收发,占用较高的CPU和内存资源,造成部分IS-IS报文的延迟或丢弃,如果Hello报文的处理超出了邻居维持时间,将导致对应的邻接超时断开。这时启用双向维持功能,如果网络中存在大量的报文,除了Hello报文外,来自某个邻居的LSP、CSNP和PSNP报文也能够用于维持该邻居的双向关系,避免由于Hello报文的延迟或丢弃而导致邻居的失效。
必须配置IS-IS基本功能。
邻居建立成功。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IS-IS双向维持功能。
two-way-maintain
缺省情况下,IS-IS双向维持功能处于开启状态。
IS-IS提供了丰富的拓展功能,可以根据实际需求灵活配置。
IS-IS拓展特性的配置任务如下,以下配置均可选,请根据实际情况配置:
配置通告邻居最大度量值
配置区域地址数的最大值
配置SPF计算周期
取消点对点网络的三次握手协商
配置TLV支持协议填充
配置抑制邻居可达时间
开启邻接事件输出
在Underlay使用IS-IS的Overlay场景,Overlay隧道可能依赖于Underlay路由。IS-IS邻居UP后,Underlay路由可达,而Overlay隧道可能还没建立,导致断流,使用此功能可以防止断流。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置路由设备在首个邻居Up后直连路由设置最大度量值。
max-metric on-neighbor-up delay-time
缺省情况下,不会将直连路由度量值设为最大。
一个IS-IS进程下一般配置一个NET地址,但是在区域重新划分时,可以配置多个NET地址,以保证路由正确性。多个NET地址的System ID需要保持一致。对于Level-1的IS路由器,只有区域地址数的最大值相同才能建立邻居关系。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置区域地址数的最大值。
max-area-addresses max-area-number
缺省情况下,区域地址数的最大值为3。
增大SPF计算的最大间隔,可以避免SPF的频繁计算,空耗CPU资源。但也导致对路由变化的响应延缓。
首次进行SPF计算前的等待时间为initial-interval,如果网络拓扑不稳定即触发SPF计算时间间隔小于maximum-interval,第二次进行SPF计算前的等待时间将变为hold-interval。IS-IS对SPF计算前的等待时间进行相应惩罚:每次触发进行SPF计算时,计算前的等待时间都将是上一次等待时间的2倍,直到增大至maximum-interval为止,之后触发进行SPF计算前的等待时间都为maximum-interval,当网络拓扑稳定下来,即触发进行SPF计算的时间间隔大于maximum-interval,SPF计算前的等待时间恢复为initial-interval。
配置的initial-interval不能大于maximum-interval,否则将initial-interval的值修改为maximum-interval。
配置的hold-interval不能大于maximum-interval,否则将hold-interval的值修改为maximum-interval。
配置的initial-interval不能大于hold-interval,否则将initial-interval的值修改为hold-interval。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置spf计算周期。
spf-interval [ level-1 | level-2 ] maximum-interval [ initial-interval hold-interval ]
缺省情况下,两次SPF计算的最大时间间隔为10秒,首次进行SPF计算的时延为50毫秒,首次到第二次进行SPF计算时的最短的时间间隔为200毫秒。指数退避算法采用Level-1-2,即同时在Level-1和Level-2生效。
点对点网络中IS-IS要建立点对点邻居,需要进行三次握手协商,只有三次握手协商成功,邻居关系才会建立。有些情况下比如为了加快邻居建立速度或者有设备不支持三次握手协商,则可以通过该命令取消三次握手协商。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入环回口配置模式。
interface loopback interface-number
取消点对点网络的三次握手协商。
isis three-way-handshake disable
缺省情况下,进行三次握手协商。
当网络环境中分别存在支持IS-ISv4,IS-ISv6和同时支持IS-ISv4,IS-ISv6的设备建立邻居时,可能存在计算出的路由实际上是无法访问的,造成路由黑洞。为了避免路由黑洞,设备的IS-IS接口协议TLV(#129)基于实例支持的协议填充,即建立邻居的IS-IS实例需要支持相同的协议。
有些友商设备的IS-IS接口协议TLV(#129)基于接口支持的协议填充的。在Single Topology模式下,本产品设备与友商设备互联,双方都配置Loopback接口,并配置IS-ISv4和IS-ISv6,同时双方设备的互联接口配置仅支持单协议栈(IS-ISv4或者IS-ISv6),由于友商设备基于接口发送TLV#129(仅支持单个协议栈),而本产品设备基于实例发送(即支持双协议栈),最终导致友商设备显示与本产品设备的邻居状态为Init,与友商设备建立邻居失败。为了兼容此种场景,则可配置interfaces-protocol-compatible命令,使得设备可与友商设备建立邻居。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
设置IS-IS接口协议TLV基于接口支持的协议填充。
interfaces-protocol-compatible
缺省情况下,IS-IS接口协议TLV基于实例支持的协议填充。
在接口邻居Up后将会抑制邻居可达加入到LSP中,从而延迟路由计算,等定时器到期后,再把邻居可达加入到LSP中,重新触发路由计算。此功能是为了防止在邻居Up后利用旧的LSP来计算路由,造成路由震荡。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置IS-IS接口邻居Up后抑制其路由计算的时间。
isis suppress on-neighbor-up delay-time
缺省情况下,抑制路由计算功能处于关闭状态。
使用Debug来记录IS-IS的邻居状态变化信息,但是会消耗大量的系统资源。打开邻接事件输出开关可以避免此问题。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
配置打开邻接事件输出开关。
log-adjacency-changes
缺省情况下,在不打开Debug的情况下记录IS-IS的邻居状态变化信息的功能处于开启状态。
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
可以通过执行clear命令来清除各类信息。
注意
在设备运行过程中执行clear命令,可能因为重要信息丢失而导致业务中断。
可以通过debug命令行列举输出的各种调试信息。
注意
输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。
IS-IS监视与维护
作用 |
命令 |
---|---|
清除所有IS-IS的邻居关系表 |
clear clns neighbors |
清除所有IS-IS的数据结构 |
clear isis * |
清除IS-IS的各种统计信息 |
clear isis [ tag ] counter |
显示所有的IS-IS邻居,提供设备邻接关系信息 |
show clns [ tag ] is-neighbors [ interface-type interface-number ] [ detail ] |
显示所有的IS邻居,提供设备信息与终端系统邻接关系信息 |
show clns [ tag ] neighbors [ interface-type interface-number ] [ detail ] |
显示IS-IS的各种统计信息 |
show isis [ tag ] counter |
显示LSP数据库信息 |
show isis [ tag ] database [ detail | verbose ] [ l1 | l2 | level-1 | level-2 ] [ lspid ] |
显示IS-IS IP FRR路由信息 |
show isis [ tag ] frr ipv4-net-address/mask |
显示IS-IS GR相关的状态信息 |
show isis [ tag ] graceful-restart |
显示设备名和System ID 的对应关系 |
show isis [ tag ] hostname |
显示IS-IS接口的详细信息 |
show isis [ tag ] interface [ interface-type interface-number ] [ counter ] |
显示各个接口全通组配置状况 |
show isis [ tag ] mesh-groups |
显示IS-IS的邻居信息 |
show isis [ tag ] neighbors [ detail ] |
显示IS-IS的NSR信息 |
show isis [ tag ] nsr |
显示IS-IS的虚拟系统邻居信息 |
show isis [ tag ] virtual-neighbors |
显示IS-IS的协议相关信息 |
show isis [ tag ] protocol |
显示IS-IS设备连接的拓扑信息 |
show isis [ tag ] topology [ frr { self-originate | WORD | all } ] [ l1 | l2 | level-1 | level-2 ] |
显示IS-IS的IPv6单播拓扑信息 |
show isis [ tag ] ipv6 topology [ l1 | l2 | level-1 | level-2 ] |
打开IS-IS对应的Debug信息开关 |
debug isis { all | auth | events | frr | gr | ifsm | lsp | mtr | nfsm | nsm | nsr | pdu | mom | spf | warn } |
三台设备通过以太网互连,运行IS-IS路由协议。其中Device A是Level-1设备,DeviceB是Level-1-2设备,DeviceC是Level-2设备。要求Device A与Device B之间Hello报文使用明文认证,Level-1 LSP和SNP报文使用明文认证。Device B与Device C之间Hello报文使用MD5加密认证,Level-2 LSP和SNP报文通过MD5加密认证。
IS-IS基础认证配置举例组网图
配置密钥串。
配置IS-IS区域和接口认证。
基础接口IP地址。
# Device A的配置。
Device A> enable
Device A# configure terminal
Device A(config)# interface gigabitethernet 0/0
Device A(config-if-GigabitEthernet 0/0)# ip address 192.168.20.1 255.255.255.0
Device A(config-if)# exit
# Device B的配置。
Device B> enable
Device B# configure terminal
Device B(config)# interface gigabitethernet 0/0
Device B(config-if-GigabitEthernet 0/0)# ip address 192.168.20.2 255.255.255.0
Device B(config-if-GigabitEthernet 0/0)# exit
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# ip address 192.168.30.2 255.255.255.0
Device B(config-if-GigabitEthernet 0/1)# exit
# Device C的配置。
Device C> enable
Device C# configure terminal
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# ip address 192.168.30.3 255.255.255.0
Device C(config-if-GigabitEthernet 0/1)# exit
IS-IS基础配置。
# Device A的配置。
Device A(config)# router isis
Device A(config-router)# net 49.0001.0000.0000.0001.00
Device A(config-router)# is-type level-1
Device A(config-router)# exit
Device A(config)# interface gigabitethernet 0/0
Device A(config-if-GigabitEthernet 0/0)# ip router isis
# Device B的配置。
Device B(config)# router isis
Device B(config-router)# net 49.0001.0000.0000.0002.00
Device B(config-router)# exit
Device B(config)# interface gigabitethernet 0/0
Device B(config-if-GigabitEthernet 0/0# ip router isis
Device B(config-if-GigabitEthernet 0/0)# exit
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# ip router isis
Device B(config-if-GigabitEthernet 0/1)# exit
# Device C的配置。
Device C(config)# router isis
Device C(config-router)# net 49.0002.0000.0000.0003.00
Device C(config-router)# is-type level-2
Device C(config-router)# exit
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# ip router isis
Device C(config-if-GigabitEthernet 0/1)# exit
配置IS-IS认证。
# Device A配置区域认证密码为aa,GigabitEthernet 0/0接口认证密码为cc。
Device A(config)# router isis
Device A(config-router)# area-password aa
Device A(config-router)# exit
Device A(config)# interface gigabitethernet 0/0
Device A(config-if-GigabitEthernet 0/0)# isis password cc
# Device B配置level-1区域明文认证,密钥串kc1,;level-2区域MD5认证,密钥串kc2,与Device A的接口明文认证,密钥串kc3;与Device C接口MD5认证,密钥串kc3。
Device B(config)# key chain kc1
Device B(config-keychain)# key 1
Device B(config-keychain-key)# key-string aa
Device B(config-keychain-key)# exit
Device B(config-keychain)# exit
Device B(config)# key chain kc2
Device B(config-keychain)# key 1
Device B(config-keychain-key)# key-string bb
Device B(config-keychain-key)# exit
Device B(config-keychain)# exit
Device B(config)# key chain kc3
Device B(config-keychain)# key 1
Device B(config-keychain-key)# key-string cc
Device B(config-keychain-key)# exit
Device B(config-keychain)# exit
Device B(config)# router isis
Device B(config-router)# authentication mode text level-1
Device B(config-router)# authentication key-chain kc1 level-1
Device B(config-router)# authentication mode md5 level-2
Device B(config-router)# authentication key-chain kc2 level-2
Device B(config-router)# exit
Device B(config)# interface gigabitethernet 0/0
Device B(config-if-GigabitEthernet 0/0)# isis authentication mode text
Device B(config-if-GigabitEthernet 0/0)# isis authentication key-chain kc3
Device B(config-if-GigabitEthernet 0/0)# exit
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# isis authentication mode md5
Device B(config-if-GigabitEthernet 0/1)# isis authentication key-chain kc3
# Device C配置level-2区域MD5认证,密钥串kc2;与Device B接口MD5认证,密钥串kc3。
Device C(config)# key chain kc2
Device C(config-keychain)# key 1
Device C(config-keychain-key)# key-string bb
Device C(config-keychain-key)# exit
Device C(config-keychain)# exit
Device C(config)# key chain kc3
Device C(config-keychain)# key 1
Device C(config-keychain-key)# key-string cc
Device C(config-keychain-key)# exit
Device C(config-keychain)# exit
Device C(config)# router isis
Device C(config-router)# authentication mode md5 level-2
Device C(config-router)# authentication key-chain kc2
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# isis authentication mode md5
Device C(config-if-GigabitEthernet 0/1)# isis authentication key-chain kc3
# Device A的邻居信息。
Device A# show isis neighbors
Area (null):
System Id Type IP Address State Holdtime Circuit Interface
B L1 192.168.20.2 Up 28 A.01 GigabitEthernet 0/0
# Device A的IS-IS database信息。
Device A# show isis database detail
Area (null):
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
A.00-00 * 0x00000011 0xBE84 918 0/0/1
Auth: TEXT(aa) Length: 3
Area Address: 49.0001
NLPID: 0xCC
Hostname: A
IP Address: 192.168.20.1
Metric: 1 IS A.01
Metric: 1 IP 192.168.20.0 255.255.255.0
A.01-00 * 0x0000000A 0xF80A 918 0/0/0
Auth: TEXT(aa) Length: 3
Metric: 0 IS A.00
Metric: 0 IS B.00
B.00-00 0x00000013 0xF62B 1129 1/0/0
Auth: TEXT(aa) Length: 3
Area Address: 49.0001
NLPID: 0xCC
Hostname: B
IP Address: 192.168.20.2
Metric: 1 IS A.01
Metric: 1 IP 192.168.20.0 255.255.255.0
Metric: 1 IP 192.168.30.0 255.255.255.0
# Device B的邻居信息。
Device B# show isis neighbors
Area (null):
System Id Type IP Address State Holdtime Circuit Interface
C L2 192.168.30.3 Up 21 B.02 GigabitEthernet 0/1
A L1 192.168.20.1 Up 8 A.01 GigabitEthernet 0/0
# Device C的邻居信息。
Device C# show isis neighbors
Area (null):
System Id Type IP Address State Holdtime Circuit Interface
B L2 192.168.30.2 Up 9 B.02 GigabitEthernet 0/0
Device A的配置文件。
!
router isis
net 49.0001.0000.0000.0001.00
is-type level-1
area-password aa
!
interface gigabitethernet 0/0
ip address 192.168.20.1 255.255.255.0
ip router isis
isis password cc
!
Device B的配置文件。
!
key chain kc1
key 1
key-string aa
key chain kc2
key 1
key-string bb
key chain kc3
key 1
key-string cc
!
router isis
net 49.0001.0000.0000.0002.00
authentication mode text level-1
authentication key-chain kc1 level-1
authentication mode md5 level-2
authentication key-chain kc2 level-2
!
interface gigabitethernet 0/0
ip address 192.168.20.2 255.255.255.0
ip router isis
isis authentication mode text
isis authentication key-chain kc3
!
interface gigabitethernet 0/1
ip address 192.168.30.2 255.255.255.0
ip router isis
isis authentication mode md5
isis authentication key-chain kc3
!
Device C的配置文件。
!
key chain kc2
key 1
key-string bb
!
key chain kc3
key 1
key-string cc
!
router isis
net 49.0002.0000.0000.0003.00
is-type level-2
authentication mode md5 level-2
authentication key-chain kc2
!
interface gigabitethernet 0/1
ip address 192.168.30.3 255.255.255.0
ip router isis
isis authentication mode md5
isis authentication key-chain kc3
!
与邻居配置的密码不一致。
与邻居的认证方式不同。
MTR的典型应用场景是旧网络的IPv6业务扩展,在这类场景中IPv6业务扩展通常会导致部分仅支持IPv4业务的旧设备被提前淘汰,而MTR功能则可以避免此类情况的发生。
如图1-11中,原有设备(假定为Device B,不支持MTR功能)只支持IPv4协议栈,因此只能运行IPv4业务。因业务扩展,需要将网络扩容并支持IPv6业务(新增设备假定为Device A、Device C和Device D,支持MTR功能)。为了保证运行IPv4和IPv6双协议栈的网络的稳定性,通常需要将只支持单协议栈的网络设备(比如Device B)都替换掉,否则可能造成IPv6路由黑洞。
如果想继续使用这些旧设备,可以通过在新增设备上配置MTR功能。开启MTR功能之后,一方面:原有IPv4业务可以继续运行在旧设备(Device B)上;另一方面:新增设备可以同时运行新增的IPv4和IPv6业务,同时这些业务互不干扰。由此可见MTR功能使组网方式更加灵活,间接延长了旧设备的使用年限,在满足业务发展需求的同时也使旧设备的价值到最大的利用。
具体配置要求如下:
Device B可以继续使用,但仅支持IPv4业务;
新增设备支持IPv4和IPv6双协议栈,要求IPv4和IPv6分拓扑计算。
配置IS-IS基础配置。
配置MTR功能。
Device A的配置。
# 配置IS-IS,配置Metric类型为Wide,开启MTR功能。
Device A> enable
Device A# configure terminal
Device A(config)# router isis
Device A(config-router)# net 49.0001. 0000.0000.0001.00
Device A(config-router)# is-type level-1
Device A(config-router)# metric-style wide
Device A(config-router)# address-family ipv6
Device A(config-router-af)# multi-topology
Device A(config-router-af)# exit
Device A(config-router)# exit
# 配置接口IP,并加入IS-IS。
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# ipv6 enable
Device A(config-if-GigabitEthernet 0/1)# ipv6 address 1002::1/112
Device A(config-if-GigabitEthernet 0/1)# ipv6 router isis
Device A(config-if-GigabitEthernet 0/1)# ip address 192.168.1.1 255.255.255.0
Device A(config-if-GigabitEthernet 0/1)# ip router isis
Device A(config-if-GigabitEthernet 0/1)# exit
Device A(config)# interface gigabitethernet 0/2
Device A(config-if-GigabitEthernet 0/2)# ipv6 enable
Device A(config-if-GigabitEthernet 0/2)# ipv6 address 1003::1/112
Device A(config-if-GigabitEthernet 0/2)# ipv6 router isis
Device A(config-if-GigabitEthernet 0/2)# ip address 192.168.2.1 255.255.255.0
Device A(config-if-GigabitEthernet 0/2)# ip router isis
Device A(config-if-GigabitEthernet 0/2)#isis wide-metric 11
Device B的配置。
# 配置IS-IS,配置metric类型为wide,开启MTR功能。
Device B> enable
Device B# configure terminal
Device B(config)# router isis
Device B(config-router)# net 49.0001. 0000.0000.0002.00
Device B(config-router)# is-type level-1
Device B(config-router)# metric-style wide
Device B(config-router)# address-family ipv6
Device B(config-router-af)# no adjacency-check
Device B(config-router-af)# exit
Device B(config-router)# exit
# 配置接口IP,并加入IS-IS。
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# ip address 192.168.1.2 255.255.255.0
Device B(config-if-GigabitEthernet 0/1)# ip router isis
Device B(config-if-GigabitEthernet 0/1)# exit
Device B(config)# interface gigabitethernet 0/2
Device B(config-if-GigabitEthernet 0/2)# ip address 192.168.3.2 255.255.255.0
Device B(config-if-GigabitEthernet 0/2)# ip router isis
Device C的配置。
# 配置IS-IS,配置metric类型为wide,开启MTR功能。
Device C> enable
Device C# configure terminal
Device C(config)# router isis
Device C(config-router)# net 49.0001. 0000.0000.0003.00
Device C(config-router)# is-type level-1
Device C(config-router)# metric-style wide
Device C(config-router)# address-family ipv6
Device C(config-router-af)# multi-topology
Device C(config-router-af)# exit
Device C(config-router)# exit
# 配置接口IP,并加入IS-IS。
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# ipv6 enable
Device C(config-if-GigabitEthernet 0/1)# ipv6 address 3001::1/112
Device C(config-if-GigabitEthernet 0/1)# ipv6 router isis
Device C(config-if-GigabitEthernet 0/1)# ip address 192.168.2.3 255.255.255.0
Device C(config-if-GigabitEthernet 0/1)# ip router isis
Device C(config-if-GigabitEthernet 0/1)#isis wide-metric 11
Device C(config-if-GigabitEthernet 0/1)# exit
Device C(config)# interface gigabitethernet 0/2
Device C(config-if-GigabitEthernet 0/2)# ipv6 enable
Device C(config-if-GigabitEthernet 0/2)# ipv6 address 3004::1/112
Device C(config-if-GigabitEthernet 0/2)# ipv6 router isis
Device C(config-if-GigabitEthernet 0/2)# ip address 192.168.4.3 255.255.255.0
Device C(config-if-GigabitEthernet 0/2)# ip router isis
Device C(config-if-GigabitEthernet 0/2)# isis wide-metric 12
Device D的配置。
# 配置IS-IS,配置Metric类型为Wide,开启MTR功能。
Device D> enable
Device D# configure terminal
Device D(config)# router isis
Device D(config-router)# net 49.0001.0000.0000.0004.00
Device D(config-router)# is-type level-1
Device D(config-router)# metric-style wide
Device D(config-router)# address-family ipv6
Device D(config-router-af)# multi-topology
Device D(config-router-af)# exit
Device D(config-router)# exit
# 配置接口IP,并加入IS-IS。
Device D(config)# interface gigabitethernet 0/1
Device D(config-if-GigabitEthernet 0/1)# ipv6 enable
Device D(config-if-GigabitEthernet 0/1)# ipv6 address 4002::1/112
Device D(config-if-GigabitEthernet 0/1)# ipv6 router isis
Device D(config-if-GigabitEthernet 0/1)# ip address 192.168.3.4 255.255.255.0
Device D(config-if-GigabitEthernet 0/1)# ip router isis
Device D(config-if-GigabitEthernet 0/1)# exit
Device D(config)# interface gigabitethernet 0/2
Device D(config-if-GigabitEthernet 0/2)# ipv6 enable
Device D(config-if-GigabitEthernet 0/2)# ipv6 address 4003::1/112
Device D(config-if-GigabitEthernet 0/2)# ipv6 router isis
Device D(config-if-GigabitEthernet 0/2)# ip address 192.168.4.4 255.255.255.0
Device D(config-if-GigabitEthernet 0/2)# ip router isis
# 在Device A上使用show命令查看IPv4路由,发现到Device D的IPv4路由的下一跳是Device B。
Device A# show ip route
Codes: C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default
Gateway of last resort is no set
C 192.168.1.0/24 is directly connected, GigabitEthernet 0/1
C 192.168.1.1/32 is local host.
C 192.168.2.0/24 is directly connected, GigabitEthernet 0/2
C 192.168.2.1/32 is local host.
i L1 192.168.3.0/24 [115/20] via 192.168.1.2, 00:13:14, GigabitEthernet 0/1
i L1 192.168.4.0/24 [115/23] via 192.168.2.3, 00:02:40, GigabitEthernet 0/2
# 在Device A上使用show命令查看IPv6路由,发现到Device D的IPv6路由的下一跳是Device C。
Device A# show ipv6 route
IPv6 routing table name is - Default - 16 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
O - OSPF intra area, OI - OSPF inter area, OE1 - OSPF external type 1, OE2 - OSPF external type 2
ON1 - OSPF NSSA external type 1, ON2 - OSPF NSSA external type 2
L ::1/128 via Loopback, local host
C 1002::/112 via GigabitEthernet 0/1, directly connected
L 1002::1/128 via GigabitEthernet 0/1, local host
C 1003::/112 via GigabitEthernet 0/2, directly connected
L 1003::1/128 via GigabitEthernet 0/2, local host
I1 3001::/112 [115/21] via FE80::C806:5FF:FEE8:38, GigabitEthernet 0/2
I1 3004::/112 [115/21] via FE80::C806:5FF:FEE8:38, GigabitEthernet 0/2
I1 4002::/112 [115/31] via FE80::C806:5FF:FEE8:38, GigabitEthernet 0/2
I1 4003::/112 [115/31] via FE80::C806:5FF:FEE8:38, GigabitEthernet 0/2
L FE80::/10 via ::1, Null0
C FE80::/64 via GigabitEthernet 0/2, directly connected
L FE80::1614:4BFF:FE12:ADFC/128 via GigabitEthernet 0/2, local host
C FE80::/64 via GigabitEthernet 0/1, directly connected
L FE80::1614:4BFF:FE12:ADFD/128 via GigabitEthernet 0/1, local host
C FE80::/64 via Local 0, directly connected
L FE80::1614:4BFF:FE12:ADFC/128 via Local 0, local host
# Device A的配置文件。
!
router isis
net 49.0001. 0000.0000.0001.00
is-type level-1
metric-style wide
address-family ipv6
multi-topology
!
interface gigabitethernet 0/1
ipv6 enable
ipv6 address 1002::1/112
ipv6 router isis
ip address 192.168.1.1 255.255.255.0
ip router isis
!
interface gigabitethernet 0/2
ipv6 enable
ipv6 address 1003::1/112
ipv6 router isis
ip address 192.168.2.1 255.255.255.0
ip router isis
isis wide-metric 11
!
# Device B的配置文件。
!
router isis
net 49.0001. 0000.0000.0002.00
is-type level-1
metric-style wide
address-family ipv6
no adjacency-check
!
interface gigabitethernet 0/1
ip address 192.168.1.2 255.255.255.0
ip router isis
!
interface gigabitethernet 0/2
ip address 192.168.3.2 255.255.255.0
ip router isis
!
# Device C的配置文件。
!
router isis
net 49.0001. 0000.0000.0003.00
is-type level-1
metric-style wide
address-family ipv6
multi-topology
!
interface gigabitethernet 0/1
ipv6 enable
ipv6 address 3001::1/112
ipv6 router isis
ip address 192.168.2.3 255.255.255.0
ip router isis
isis wide-metric 11
!
interface gigabitethernet 0/2
ipv6 enable
ipv6 address 3004::1/112
ipv6 router isis
ip address 192.168.4.3 255.255.255.0
ip router isis
isis wide-metric 12
!
# Device D的配置文件。
!
router isis
net 49.0001.0000.0000.0004.00
is-type level-1
metric-style wide
address-family ipv6
multi-topology
!
interface gigabitethernet 0/1
ipv6 enable
ipv6 address 4002::1/112
ipv6 router isis
ip address 192.168.3.4 255.255.255.0
ip router isis
!
interface gigabitethernet 0/2
ipv6 enable
ipv6 address 4003::1/112
ipv6 router isis
ip address 192.168.4.4 255.255.255.0
ip router isis
!
未设置metric-style为wide或transition模式。
邻居的协议类型与本段不匹配,无法建立邻居。
IP地址和邻居相邻接口的IP地址不在同一个网段上。
接口没配置ip router isis。
没配置net地址,或在L1层,但net不同。
两边max-area-addresses配置不同。
两边metric-style 配置不同。
接口Level 不一样:一边是L1,一边是L2。
一边配置是点对点模式,一边配置是广播模式。
一边启用认证,一边未启用认证。
两台设备通过以太网连接,均运行IS-IS路由协议。通过配置Device A,使得路由A只通告172.16.0.0/22路由,而不通告172.16.1.0/24和172.16.2.0/24的路由。
IS-IS路由汇总功能配置举例
配置IS-IS。
配置路由汇总。
配置IS-IS。
# Device A的配置。
Device A> enable
Device A# configure terminal
Device A(config)# router isis
Device A(config-router)# net 49.0001.0000.0000.0001.00
Device A(config-router)# exit
Device A(config)# interface gigabitethernet 0/0
Device A(config-if)# ip address 192.168.20.1 255.255.255.0
Device A(config-if)# ip router isis
Device A(config)# interface gigabitethernet 1/0
Device A(config-if)# ip address 172.16.1.1 255.255.255.0
Device A(config-if)# ip router isis
Device A(config)# interface gigabitethernet 1/1
Device A(config-if)# ip address 172.16.2.1 255.255.255.0
Device A(config-if)# ip router isis
Device A(config-if)# exit
# Device B的配置。
Device B> enable
Device B# configure terminal
Device B(config)# router isis
Device B(config-router)# net 49.0001.0000.0000.0002.00
Device B(config-router)# exit
Device B(config)# interface gigabitethernet 0/0
Device B(config-if)# ip address 192.168.20.2 255.255.255.0
Device B(config-if)# ip router isis
配置路由汇总。
# Device A的配置。
Device A(config)# router isis
Device A(config-router)# summary-address 172.16.0.0/16 level-1-2
# 在设备B上运行show ip route可以看到只有一条汇总路由。
Device B# show ip route
i L1 172.16.0.0/16 [115/20] via 192.168.20.1, FastEthernet0/0
Device A的配置文件。
!
router isis
net 49.0001.0000.0000.0001.00
summary-address 172.16.0.0/16 level-1-2
!
interface gigabitethernet 0/0
ip address 192.168.20.1 255.255.255.0
ip router isis
!
interface gigabitethernet 1/0
ip address 172.16.1.1 255.255.255.0
ip router isis
!
interface gigabitethernet 1/1
ip address 172.16.2.1 255.255.255.0
ip router isis
!
Device B的配置文件。
!
router isis
net 49.0001.0000.0000.0002.00
!
interface gigabitethernet 0/0
ip address 192.168.20.2 255.255.255.0
ip router isis
!
Device A、Device B和Device C与RouterD通过IS-IS路由协议互联,上述设备都是Level-2设备。
要求当Device A到Device C链路故障时,业务可以快速切换到Device B上。
IS-IS与BFD联动组网图
所有设备配置接口IP地址。
所有设备配置IS-IS基本功能。
IS-IS路由进程下开启BFD功能。
接口IP配置,IS-IS基础配置。
# Device A的配置。
Device A> enable
Device A# configure terminal
Device A(config)# interface gigabitethernet 0/2
Device A(config-if-GigabitEthernet 0/2)# ip address 192.168.12.1/24
Device A(config-if-GigabitEthernet 0/2)# ip router isis
Device A(config-if-GigabitEthernet 0/2)# exit
Device A(config)# interface gigabitethernet 0/1
Device A(config-if-GigabitEthernet 0/1)# ip address 192.168.13.1/24
Device A(config-if-GigabitEthernet 0/1)# ip router isis
Device A(config-if-GigabitEthernet 0/1)# exit
Device A(config)# router isis
Device A(config-router)# net 49.0001.0000.0000.0001.00
Device A(config-router)# is-type level-2-only
# Device B的配置。
Device B> enable
Device B# configure terminal
Device B(config)# interface gigabitethernet 0/1
Device B(config-if-GigabitEthernet 0/1)# ip address 192.168.12.2/24
Device B(config-if-GigabitEthernet 0/1)# ip router isis
Device B(config-if-GigabitEthernet 0/1)# exit
Device B(config)# interface gigabitethernet 0/3
Device B(config-if-GigabitEthernet 0/3)# ip address 192.168.23.2/24
Device B(config-if-GigabitEthernet 0/3)# ip router isis
Device B(config-if-GigabitEthernet 0/3)# exit
Device B(config)# router isis
Device B(config-router)# net 49.0001.0000.0000.0002.00
Device B(config-router)# is-type level-2-only
# Device C的配置。
Device C> enable
Device C# configure terminal
Device C(config)# interface gigabitethernet 0/2
Device C(config-if-GigabitEthernet 0/2)# ip address 192.168.13.3/24
Device C(config-if-GigabitEthernet 0/2)# ip router isis
Device C(config-if-GigabitEthernet 0/2)# exit
Device C(config)# interface gigabitethernet 0/1
Device C(config-if-GigabitEthernet 0/1)# ip address 192.168.23.3/24
Device C(config-if-GigabitEthernet 0/1)# ip router isis
Device C(config-if-GigabitEthernet 0/1)# exit
Device C(config)# router isis
Device C(config-router)# net 49.0001.0000.0000.0003.00
Device C(config-router)# is-type level-2-only
全局开启IS-IS与BFD联动。
# Device A的配置。
Device A(config-router)# bfd all-interfaces
# Device B的配置。
Device B(config-router)# bfd all-interfaces
# Device C的配置。
Device C(config-router)# bfd all-interfaces
网络正常时。
# Device A的路由表信息。
Device A# show ip route isis
I L2 192.168.23.0/24 [115/2] via 192.168.13.3, 00:19:07, GigabitEthernet 0/1
[115/2] via 192.168.12.2, 00:19:07, GigabitEthernet 0/2
I L2 192.168.33.0/24 [115/1] via 192.168.13.3, 00:17:40, GigabitEthernet 0/1
# Device A上traceroute 192.168.3.3。
Device A# traceroute 192.168.3.3
< press Ctrl+C to break >
Tracing the route to 192.168.3.3
1 192.168.3.3 <1 msec 5 msec 9 msec
Device A到Device C链路故障时。
# Device A的路由表信息。
Device A# show ip route isis
I L2 192.168.23.0/24 [115/2] via 192.168.12.2, 00:00:08, GigabitEthernet 0/2
I L2 192.168.33.0/24 [115/2] via 192.168.12.2, 00:00:08, GigabitEthernet 0/2
# Device A上traceroute 192.168.3.3。
Device A# traceroute 192.168.3.3
< press Ctrl+C to break >
Tracing the route to 192.168.3.3
1 192.168.12.2 9 msec 8 msec 13 msec
2 192.168.3.3 8 msec 10 msec 9 msec
Device A的配置文件。
!
interface gigabitethernet 0/2
ip address 192.168.12.1/24
ip router isis
!
interface gigabitethernet 0/1
ip address 192.168.13.1/24
ip router isis
!
router isis
net 49.0001.0000.0000.0001.00
is-type level-2-only
!
Device B的配置文件。
!
interface gigabitethernet 0/1
ip address 192.168.12.2/24
ip router isis
!
interface gigabitethernet 0/3
ip address 192.168.23.2/24
ip router isis
!
router isis
net 49.0001.0000.0000.0002.00
is-type level-2-only
!
Device C的配置文件。
!
interface gigabitethernet 0/2
ip address 192.168.13.3/24
ip router isis
!
interface gigabitethernet 0/1
ip address 192.168.23.3/24
ip router isis
!
router isis
net 49.0001.0000.0000.0003.00
is-type level-2-only