05-IS-IS配置
本章节下载: 05-IS-IS配置 (1.57 MB)
目 录
1.4.3 配置路由器的Level级别和接口的链路邻接关系类型
1.7.2 配置IS-IS通告给邻居的链路开销保持最大值的持续时间
1.7.8 配置IS-IS对接收的路由是否加入IP路由表进行过滤
1.7.11 配置允许设备将IS-IS链路状态信息发布到BGP
1.10.1 配置在P2P接口上建立邻接关系必须在同一网段的检查功能
1.11.3 配置IS-IS记录邻居关系断开的故障检测信息的最大个数
IS-IS属于IGP(Interior Gateway Protocol,内部网关协议),用于自治系统内部。IS-IS是一种链路状态协议,使用SPF(Shortest Path First,最短路径优先)算法进行路由计算。
· IS(Intermediate System):中间系统。相当于TCP/IP中的路由器,是IS-IS协议中生成路由和传播路由信息的基本单元。在下文中IS和路由器具有相同的含义。
· ES(End System):终端系统。相当于TCP/IP中的主机系统。ES不参与IS-IS路由协议的处理,ISO使用专门的ES-IS协议定义终端系统与中间系统间的通信。
· RD(Routing Domain):路由域。在一个路由域中多个IS通过相同的路由协议来交换路由信息。
· Area:区域,路由域的细分单元,IS-IS允许将整个路由域分为多个区域。
· LSDB(Link State DataBase):链路状态数据库。网络内所有链路的状态组成了链路状态数据库,在每一个IS中都至少有一个LSDB。IS使用SPF算法,利用LSDB来生成自己的路由。
· LSPDU(Link State Protocol Data Unit):链路状态协议数据单元,简称LSP。在IS-IS中,每一个IS都会生成LSP,此LSP包含了本IS的所有链路状态信息。
· NPDU(Network Protocol Data Unit):网络协议数据单元,是OSI中的网络层协议报文,相当于TCP/IP中的IP报文。
· DIS(Designated IS):广播网络上选举的指定中间系统,也可以称为指定IS。
· NSAP(Network Service Access Point):网络服务接入点,即OSI中网络层的地址,用来标识一个抽象的网络服务访问点,描述OSI模型的网络地址结构。
如图1-1所示,NSAP由IDP(Initial Domain Part)和DSP(Domain Specific Part)组成。IDP相当于IP地址中的主网络号,DSP相当于IP地址中的子网号和主机地址。
IDP部分是ISO规定的,它由AFI(Authority and Format Identifier)和IDI(Initial Domain Identifier)两部分组成:
· AFI表示地址分配机构和地址格式。
· IDI用来标识域。
DSP由HO-DSP(High Order Part of DSP)、SystemID和SEL三个部分组成:
· HO-DSP用来分割区域。
· SystemID用来区分主机。
· SEL有时也写成N-SEL(NSAP Selector),它的作用类似IP中的“协议标识符”,用于指示服务类型,不同的传输协议对应不同的SEL。
IDP和DSP的长度都是可变的,NSAP总长最多是20个字节,最少8个字节。
图1-1 IS-IS协议的地址结构示意图
IS-IS地址结构由以下三部分组成:
· 区域地址
IDP和DSP中的HO-DSP一起,既能够标识路由域,也能够标识路由域中的区域,被称为区域地址。两个不同的路由域中不允许有相同的区域地址。
一般情况下,一台路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。为了支持区域的平滑合并、分割及转换,一台路由器最多可配置3个区域地址。
· System ID
System ID用来在区域内唯一标识主机或路由器。它的长度固定为48比特。
在实际应用中,一般使用Router ID与System ID进行对应。假设一台路由器使用接口Loopback0的IP地址168.10.1.1作为Router ID,则它在IS-IS使用的System ID可通过如下方法转换得到:
¡ 将IP地址168.10.1.1的每一部分都扩展为3位,不足3位的在前面补0;
¡ 将扩展后的地址168.010.001.001重新划分为3部分,每部分由4位数字组成,得到的1680.1000.1001就是System ID。
实际System ID的指定可以有不同的方法,但要保证能够唯一标识主机或路由器。
· SEL
SEL用于指示服务类型,不同的传输协议对应不同的SEL。它的长度固定为8比特。在IP中,SEL均为00。
NET(Network Entity Title,网络实体名称)指示的是IS本身的网络层信息,不包括传输层信息,可以看作是一类特殊的NSAP,即SEL为0的NSAP地址。因此,NET的长度与NSAP的相同,为8~20个字节。
NET由三部分组成:
· 区域ID:它的长度可变的,为1~13个字节。
· System ID:用来在区域内唯一标识主机或路由器,它的长度固定为6个字节。
· SEL:为0,它的长度固定为1个字节。
例如NET为:ab.cdef.1234.5678.9abc.00,则其中区域ID为ab.cdef,System ID为1234.5678.9abc,SEL为00。
通常情况下,一台路由器配置一个NET即可,当区域需要重新划分时,例如将多个区域合并,或者将一个区域划分为多个区域,这种情况下配置多个NET可以在重新配置时仍然能够保证路由的正确性。由于一台路由器最多可配置3个区域地址,所以最多也只能配置3个NET。在配置多个NET时,必须保证它们的System ID都相同。
为了支持大规模的路由网络,IS-IS在路由域内采用两级的分层结构。一个大的路由域通常被分成多个区域(Areas)。一般来说,我们将Level-1路由器部署在区域内,Level-2路由器部署在区域间,Level-1-2路由器部署在Level-1路由器和Level-2路由器的中间。
Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,维护一个Level-1的LSDB,该LSDB包含本区域的路由信息,到区域外的报文转发给最近的Level-1-2路由器。
属于不同区域的Level-1路由器不能形成邻居关系。
Level-2路由器负责区域间的路由,可以与同一区域或者其它区域的Level-2和Level-1-2路由器形成邻居关系,维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。所有Level-2路由器和Level-1-2路由器组成路由域的骨干网,负责在不同区域间通信,骨干网必须是物理连续的。
Level-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用于区域间路由。
图1-2为一个运行IS-IS协议的网络,其中Area 1是骨干区域,该区域中的所有路由器均是Level-2路由器。另外4个区域为非骨干区域,它们都通过Level-1-2路由器与骨干路由器相连。
图1-2 IS-IS拓扑结构图之一
图1-3是IS-IS的另外一种拓扑结构图。在这个拓扑中,并没有规定哪个区域是骨干区域。所有Level-2路由器和Level-1-2路由器构成了IS-IS的骨干网,它们可以属于不同的区域,但必须是物理连续的。IS-IS的骨干网(Backbone)指的不是一个特定的区域。
图1-3 IS-IS拓扑结构图之二
IS-IS不论是Level-1还是Level-2路由,都采用SPF算法,分别生成最短路径树(Shortest Path Tree,SPT)。
通常情况下,区域内的路由通过Level-1的路由器进行管理。所有的Level-2路由器和Level-1-2路由器构成一个Level-2区域。因此,一个IS-IS的路由域可以包含多个Level-1区域,但只有一个Level-2区域。
Level-1区域必须且只能与Level-1-2区域相连,不同的Level-1区域之间并不相连。
Level-1区域内的路由信息通过Level-1-2路由器发布到Level-2区域,因此,Level-2路由器知道整个IS-IS路由域的路由信息。但是,在缺省情况下,Level-2路由器并不将自己知道的其它Level-1区域以及Level-2区域的路由信息发布到Level-1区域。这样,Level-1路由器将不了解本区域以外的路由信息,Level-1路由器只将去往其它区域的报文发送到最近的Level-1-2路由器,所以可能导致对本区域之外的目的地址无法选择最佳的路由。
为解决上述问题,IS-IS提供了路由渗透功能,使Level-1-2路由器可以将己知的其它Level-1区域以及Level-2区域的路由信息发布到指定的Level-1区域。
IS-IS只支持两种类型的网络,根据物理链路不同可分为:
· 广播链路:如Ethernet、Token-Ring等。
· 点到点链路:如PPP、HDLC等。
IS-IS不能在点到多点(Point-to-MultiPoint,P2MP)链路上运行。
在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS。
Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。DIS优先级数值越高,被选中的可能性就越大。如果优先级最高的路由器有多台,则其中SNPA(Subnetwork Point of Attachment,子网连接点)地址(广播网络中的SNPA地址是MAC地址)最大的路由器会被选中。不同级别的DIS可以是同一台路由器,也可以是不同的路由器。
与OSPF的不同点:
· 优先级为0的路由器也参与DIS的选举;
· 当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,此更改会引起一组新的LSP泛洪。
在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。如图1-4所示。
图1-4 IS-IS广播网的DIS和邻接关系
DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的LSP,用来描述这个网络上有哪些路由器。
伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和一个字节的Circuit ID(非0值)标识。
使用伪节点可以简化网络拓扑,减少SPF的资源消耗。
· IS-IS广播网络上所有的路由器之间都形成邻接关系,但LSDB的同步仍然依靠DIS来保证。
· 由于Circuit ID为一个字节,因此广播网络中设备能够建立的邻居数量不能超过255个。当所需要建立邻居的广播链路数量超过255个时,则超出部分的广播链路上不能建立IS-IS邻居关系。
IS-IS报文是直接封装在数据链路层的帧结构中的。PDU(Protocol Data Unit,协议数据单元)可以分为两个部分,报文头和变长字段部分。其中报文头又可分为通用报头和专用报头。对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别,如图1-5所示。
图1-5 PDU格式
表1-1 PDU类型对应关系表
类型值 |
PDU类型 |
简称 |
15 |
Level-1 LAN IS-IS Hello PDU |
L1 LAN IIH |
16 |
Level-2 LAN IS-IS Hello PDU |
L2 LAN IIH |
17 |
Point-to-Point IS-IS Hello PDU |
P2P IIH |
18 |
Level-1 Link State PDU |
L1 LSP |
20 |
Level-2 Link State PDU |
L2 LSP |
24 |
Level-1 Complete Sequence Numbers PDU |
L1 CSNP |
25 |
Level-2 Complete Sequence Numbers PDU |
L2 CSNP |
26 |
Level-1 Partial Sequence Numbers PDU |
L1 PSNP |
27 |
Level-2 Partial Sequence Numbers PDU |
L2 PSNP |
Hello报文:用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs)。其中,广播网中的Level-1路由器使用Level-1 LAN IIH,广播网中的Level-2路由器使用Level-2 LAN IIH,点到点网络中的路由器则使用P2P IIH。
LSP报文:用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP。Level-1路由器传送Level-1 LSP,Level-2路由器传送Level-2 LSP,Level-1-2路由器则可传送以上两种LSP。
SNP(Sequence Number PDU,时序报文)通过描述全部或部分数据库中的LSP来同步LSDB,从而维护LSDB的完整和同步。
SNP包括CSNP(Complete Sequence Number PDU,全时序报文)和PSNP(Partial Sequence Number PDU,部分时序报文),进一步又可分为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。
PDU中的变长字段部分是多个CLV(Code-Length-Value)三元组。其格式如图1-6所示:
图1-6 CLV格式
不同PDU类型所包含的CLV是不同的,如表1-2所示。
表1-2 PDU类型和包含的CLV名称
CLV Code |
名称 |
所应用的PDU类型 |
1 |
Area Addresses |
IIH、LSP |
2 |
IS Neighbors(LSP) |
LSP |
4 |
Partition Designated Level-2 IS |
L2 LSP |
6 |
IS Neighbors(MAC Address) |
LAN IIH |
7 |
IS Neighbors(SNPA Address) |
LAN IIH |
8 |
Padding |
IIH |
9 |
LSP Entries |
SNP |
10 |
Authentication Information |
IIH、LSP、SNP |
128 |
IP Internal Reachability Information |
LSP |
129 |
Protocols Supported |
IIH、LSP |
130 |
IP External Reachability Information |
L2 LSP |
131 |
Inter-Domain Routing Protocol Information |
L2 LSP |
132 |
IP Interface Address |
IIH、LSP |
222 |
MT-ISN |
LSP |
229 |
M-Topologies |
IIH,、LSP |
235 |
MT IP. Reach |
LSP |
237 |
MT IPv6 IP. Reach |
LSP |
其中,Code值从1到10的CLV在ISO 10589中定义(有2类未在上表中列出),128到132的CLV在RFC 1195中定义,多拓扑相关CLV在RFC 5120中定义。
IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)支持多种网络层协议,其中包括IPv6协议,支持IPv6协议的IS-IS路由协议又称为IPv6 IS-IS动态路由协议。
IETF中规定了IS-IS为支持IPv6所新增的内容,主要是新添加的支持IPv6协议的两个TLV(Type-Length-Values)和一个新的NLPID(Network Layer Protocol Identifier,网络层协议标识符)。
TLV是LSP(Link State PDU,链路状态协议数据单元)中的一个可变长字段值。新增的两个TLV分别是:
· IPv6 Reachability:类型值为236(0xEC),通过定义路由信息前缀、度量值等信息来说明网络的可达性。
· IPv6 Interface Address:类型值为232(0xE8),它对应于IPv4中的“IP Interface Address”TLV,只不过把原来的32比特的IPv4地址改为128比特的IPv6地址。
NLPID是标识网络层协议报文的一个8比特字段,IPv6的NLPID值固定为142(0x8E)。
与IS-IS相关的协议规范有:
· ISO 8348:Ad2 Network Services Access Points
· ISO 9542:ES-IS Routing Protocol
· ISO 10589:ISO IS-IS Routing Protocol
· RFC 1195:Use of OSI IS-IS for Routing in TCP/IP and Dual Environments
· RFC 3277:IS-IS Transient Blackhole Avoidance
· RFC 3358:Optional Checksums in ISIS
· RFC 3359:Reserved Type, Length and Value (TLV) Codepoints in Intermediate System to Intermediate System
· RFC 3563:Cooperative Agreement Between the ISOC/IETF and ISO/IEC Joint Technical Committee 1/Sub Committee 6 (JTC1/SC6) on IS-IS Routing Protocol Development
· RFC 3719:Recommendations for Interoperable Networks using Intermediate System to Intermediate System (IS-IS)
· RFC 3787:Recommendations for Interoperable IP Networks using Intermediate System to Intermediate System (IS-IS)
· RFC 4444:Management Information Base for Intermediate System to Intermediate System (IS-IS)
· RFC 5029:Definition of an IS-IS Link Attribute Sub-TLV
· RFC 5089:IS-IS Protocol Extensions for Path Computation Element (PCE) Discovery
· RFC 5120:Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)
· RFC 5130:A Policy Control Mechanism in IS-IS Using Administrative Tags
· RFC 5301:Dynamic Hostname Exchange Mechanism for IS-IS
· RFC 5302:Domain-Wide Prefix Distribution with Two-Level IS-IS
· RFC 5303:Three-Way Handshake for IS-IS Point-to-Point Adjacencies
· RFC 5304:IS-IS Cryptographic Authentication
· RFC 5306:Restart Signaling for IS-IS
· RFC 5308:Routing IPv6 with IS-IS
· RFC 5310:IS-IS Generic Cryptographic Authentication
· RFC 5311:Simplified Extension of Link State PDU (LSP) Space for IS-IS
· RFC 6165:Extensions to IS-IS for Layer-2 Systems
· RFC 6213:IS-IS BFD-Enabled TLV
· RFC 6232:Purge Originator Identification TLV for IS-IS
· RFC 6233:IS-IS Registry Extension for Purges
· RFC 6329:IS-IS Extensions Supporting IEEE 802.1aq Shortest Path Bridging
· RFC 6571:Loop-Free Alternate (LFA) Applicability in Service Provider (SP) Networks
· RFC 6823:Advertising Generic Information in IS-IS
· RFC 7142:OSI IS-IS Intra-domain Routing Protocol
· RFC 7356:IS-IS Flooding Scope Link State PDUs (LSPs)
· RFC 7370:Updates to the IS-IS TLV Codepoints Registry
· RFC 7602:IS-IS Extended Sequence Number TLV
· RFC 7645:The Keying and Authentication for Routing Protocol (KARP) IS-IS Security Analysis
· RFC 7775:IS-IS Route Preference for Extended IP and IPv6 Reachability
· RFC 7794:IS-IS Prefix Attributes for Extended IPv4 and IPv6 Reachability
· RFC 7813:IS-IS Path Control and Reservation
· RFC 7917:Advertising Node Administrative Tags in IS-IS
· RFC 7981:IS-IS Extensions for Advertising Router Information
· RFC 7987:IS-IS Minimum Remaining Lifetime
IPv4 IS-IS配置任务如下:
(1) 配置IS-IS基本功能
b. (可选)配置路由器的Level级别和接口的链路邻接关系类型
c. (可选)配置接口网络类型
(2) (可选)开启IS-IS进程的多实例功能
(3) (可选)配置IS-IS路由信息控制
(4) (可选)配置IS-IS定时器
¡ 配置SPF参数
(5) (可选)配置IS-IS报文相关功能
(6) (可选)配置IS-IS高级功能
¡ 配置ATT连接位
(7) (可选)配置IS-IS日志和告警功能
(8) (可选)配置IS-IS快速收敛
¡ 配置ISPF
¡ 配置前缀抑制
¡ 配置PIC
(9) (可选)提高IS-IS网络的安全性
¡ 配置邻居关系验证
¡ 配置区域验证
¡ 配置路由域验证
(10) (可选)提高IS-IS网络的可靠性
IPv6 IS-IS配置任务如下:
(1) 配置IS-IS基本功能
b. (可选)配置路由器的Level级别和接口的链路邻接关系类型
c. (可选)配置接口网络类型
(2) (可选)开启IS-IS进程的多实例功能
(3) (可选)配置IS-IS支持IPv6单播拓扑
(4) (可选)配置IS-IS路由信息控制
(5) (可选)配置IS-IS定时器
¡ 配置SPF参数
(6) (可选)配置IS-IS报文相关功能
(7) (可选)配置IS-IS高级功能
¡ 配置ATT连接位
(8) (可选)配置IS-IS日志和告警功能
(9) (可选)配置IS-IS快速收敛
¡ 配置ISPF
¡ 配置前缀抑制
¡ 配置PIC
(10) (可选)提高IS-IS网络的安全性
¡ 配置邻居关系验证
¡ 配置区域验证
¡ 配置路由域验证
(11) (可选)提高IS-IS网络的可靠性
(1) 进入系统视图。
system-view
(2) 启动IS-IS,并进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
缺省情况下,系统没有运行IS-IS。
(3) 配置网络实体名称。
network-entity net
缺省情况下,未配置NET。
批量执行cost-style、is-level和network-entity命令时,建议最后执行network-entity命令,以避免因配置顺序不正确引发IS-IS进程重启,以及重启期间可能导致的配置丢失。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 配置指定接口上使能IS-IS功能。
isis enable [ process-id ]
缺省情况下,接口上的IS-IS功能处于关闭状态,且没有任何IS-IS进程与其关联。
(1) 进入系统视图。
system-view
(2) 启动IS-IS路由进程,进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
缺省情况下,系统没有运行IS-IS。
(3) 配置网络实体名称(NET)。
network-entity net
缺省情况下,未配置NET。
批量执行cost-style、is-level和network-entity命令时,建议最后执行network-entity命令,以避免因配置顺序不正确引发IS-IS进程重启,以及重启期间可能导致的配置丢失。
(4) 创建并进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(5) 退回IS-IS视图。
quit
(6) 退回系统视图。
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 使能接口IS-IS路由进程的IPv6能力并指定要关联的IS-IS进程号。
isis ipv6 enable [ process-id ]
缺省情况下,接口上IS-IS的IPv6能力处于关闭状态。
建议用户在配置IS-IS时配置路由器类型:
· 如果只有一个区域,建议用户将所有路由器设置为Level-1或者Level-2,因为没有必要让所有路由器同时维护两个完全相同的LSDB。
· 在IP网络中使用时,建议将所有的路由器都设置为Level-2,这样有利于以后的扩展。
当路由器类型是Level-1(Level-2)时,接口的链路邻接类型只能为Level-1(Level-2),当路由器类型是Level-1-2时,接口的链路邻接类型缺省为Level-1-2,当路由器只需要与对端建立Level-1(Level-2)的邻接关系时,可以将接口的链路邻接类型配置为Level-1(Level-2)来限制接口上所能建立的邻接关系,如Level-1的接口只能建立Level-1的邻接关系,Level-2的接口只能建立Level-2的邻接关系,让接口只发送和接收Level-1(Level-2)类型的Hello报文,既减少了路由器的处理时间又节省了带宽。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置路由器的Level级别。
is-level { level-1 | level-1-2 | level-2 }
缺省情况下,路由器的Level级别为Level-1-2。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 配置接口的链路邻接关系类型。
isis circuit-level [ level-1 | level-1-2 | level-2 ]
缺省情况下,接口既可以建立Level-1的邻接关系,也可以建立Level-2的邻接关系。
接口网络类型不同,其工作机制也略微不同,如:当网络类型为广播网时,需要选举DIS、通过泛洪CSNP报文来实现LSDB同步;当网络类型为P2P时,不需要选举DIS,LSDB同步机制也不同。
当只有两台路由器接入到同一个广播网时,通过将接口网络类型配置为P2P可以使IS-IS按照P2P而不是广播网的工作机制运行,避免DIS选举以及CSNP的泛洪,既可以节省网络带宽,又可以加快网络的收敛速度。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的网络类型为P2P。
isis [ process-id process-id ] circuit-type p2p
缺省情况下,路由器接口网络类型根据物理接口决定,交换机VLAN接口网络类型为Broadcast。
仅当接口的网络类型为广播网,且只有两台路由器接入该广播网时才需要进行该项配置,并且两台路由器都要进行此项配置。
本文中将未开启多实例功能的IS-IS进程称为传统IS-IS进程;将开启了多实例功能的IS-IS进程称为IS-IS多实例进程。
传统的IS-IS协议限制在一台设备的一个接口上只能使能一个IS-IS进程,如果需要在这台设备上使能多个IS-IS进程,则需要增加接口数量和接口配置过程。为了减少接口数量和接口配置过程,可以在IS-IS视图下开启IS-IS进程的多实例功能,这样就可以在同一个接口下使能多个IS-IS多实例进程。同时,还可以在该接口下使能一个传统IS-IS进程。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 开启IS-IS进程的多实例功能,并指定该进程的实例ID。
multi-instance enable iid iid-value
缺省情况下,IS-IS进程的多实例功能处于关闭状态。
(4) 在接口下使能IS-IS多实例进程。
a. 退回系统视图。
quit
b. 进入接口视图。
interface interface-type interface-number
c. 配置指定接口关联IS-IS多实例进程。
(IPv4网络)
isis enable [ process-id ]
缺省情况下,接口上的IS-IS功能处于关闭状态,且没有关联任何IS-IS进程。
(IPv6网络)
isis ipv6 enable [ process-id ]
缺省情况下,接口上IS-IS的IPv6能力处于关闭状态,且没有关联任何IS-IS进程。
IPv6 IS-IS和IPv4 IS-IS使用同样的最短路径进行路由计算,IPv4和IPv6的混合拓扑被看成是一个集成的拓扑,这就要求所有IPv4和IPv6的拓扑信息必须一致。但是IPv4和IPv6协议在网络中的部署可能不一致,IPv4和IPv6的拓扑信息可能不同。当一些路由器和链路不支持IPv6协议时,支持双协议栈的路由器因为无法感知到这些路由器和链路不支持IPv6,仍然会把IPv6报文转发给它们,这就导致IPv6报文由于无法转发而被丢弃。
IS-IS MTR(Multi-Topology Routing,多拓扑路由)的功能之一就是实现IS-IS支持IPv6单播拓扑,即IPv4和IPv6分拓扑计算,从而解决上面的问题。
图1-7 IS-IS支持IPv6单播拓扑功能示意图
如图1-7所示,图中的数值表示对应链路上的开销值;Router A、Router B和Router D支持IPv4和IPv6双协议栈;Router C只支持IPv4协议,不能转发IPv6报文。
在Router A、Router B、Router C、Router D上都配置IS-IS支持IPv6单播拓扑,所有的路由器对于IPv4、IPv6都分为两个拓扑进行计算,则Router A能够感知到Router B和Router C之间,Router C和Router D之间的链路不支持IPv6,即不会将到达Router D的IPv6报文转发给Router B而造成报文丢弃。
当IS-IS网络中同时存在IPv4和IPv6拓扑时,建议用户配置此功能,否则可能导致路由计算错误。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置IS-IS开销值的类型。
cost-style { compatible | wide | wide-compatible }
缺省情况下,IS-IS只收发采用narrow方式的报文。
(4) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(5) 配置IS-IS支持IPv6单播拓扑。
multi-topology [ compatible ]
缺省情况下,IS-IS不支持IPv6单播拓扑。
IS-IS有三种方式来配置接口的链路开销值,按照选择顺序依次为:
· 在接口视图下为指定接口配置的链路开销值。
· 在系统视图下全局配置的链路开销值,该配置将对该IS-IS进程关联的接口同时生效。
· 自动计算开销值:将根据带宽参考值自动计算接口的链路开销值。当开销值的类型为wide或wide-compatible时,可以根据公式“开销=(带宽参考值÷接口期望带宽)×10”计算接口的链路开销值,取值范围为1~16777214。当开销值类型为其他类型时,具体情况如下:接口带宽≤10Mbps时,值为60;接口带宽≤100Mbps时,值为50;接口带宽≤155Mbps时,值为40;接口带宽≤622Mbps时,值为30;接口带宽≤2500Mbps时,值为20;接口带宽>2500Mbps时,值为10。接口期望带宽通过命令bandwidth进行配置。
如果没有采用上述三种方式中的任一种进行开销值的配置,接口的链路开销值将取系统设置的缺省值10。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) (可选)配置IS-IS开销值的类型。
cost-style { narrow | wide | wide-compatible | { compatible | narrow-compatible } [ relax-spf-limit ] }
缺省情况下,IS-IS开销值的类型为narrow。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 配置IS-IS接口的链路开销值。
isis [ process-id process-id ] cost cost-value [ level-1 | level-2 ]
缺省情况下,未配置IS-IS接口的链路开销值。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 全局配置IS-IS的链路开销值。
circuit-cost cost-value [ level-1 | level-2 ]
缺省情况下,未全局配置IS-IS的链路开销值。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能自动计算接口链路开销值功能。
auto-cost enable
缺省情况下,自动计算接口链路开销值功能处于关闭状态。
(4) (可选)配置IS-IS自动计算链路开销值时依据的带宽参考值。
bandwidth-reference value
缺省情况下,带宽参考值为100Mbps。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) (可选)配置IS-IS开销值的类型。
cost-style { narrow | wide | wide-compatible | { compatible | narrow-compatible } [ relax-spf-limit ] }
缺省情况下,IS-IS只收发采用narrow方式的报文。
(4) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(5) 退回IS-IS视图。
quit
(6) 退回系统视图。
quit
(7) 进入接口视图。
interface interface-type interface-number
(8) 使能接口IS-IS的IPv6能力。
isis ipv6 enable [ process-id ]
缺省情况下,接口上IS-IS的IPv6能力处于关闭状态。
(9) 配置接口的IPv6链路开销值。
isis [ process-id process-id ] ipv6 cost cost-value [ level-1 | level-2 ]
缺省情况下,未配置接口的IPv6链路开销值。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 全局配置IPv6 IS-IS的链路开销值。
circuit-cost cost-value [ level-1 | level-2 ]
缺省情况下,未全局配置IPv6 IS-IS的链路开销值。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置IS-IS开销值的类型。
cost-style { wide | wide-compatible }
缺省情况下,IS-IS只收发采用narrow方式的报文。
(4) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(5) 使能自动计算接口链路开销值功能。
auto-cost enable
缺省情况下,自动计算接口链路开销值功能处于关闭状态。
(6) (可选)配置IPv6 IS-IS自动计算链路开销值时依据的带宽参考值。
bandwidth-reference value
缺省情况下,带宽参考值为100Mbps。
IS-IS网络中,链路发生故障并从故障中恢复,或接口状态变化时,IS-IS会重新建立邻接关系,路由会重新进行收敛。在路由重新收敛的过程中,由于各个节点的路由收敛速度不一致,可能会形成环路,造成流量丢失。为了在路由收敛过程中保持转发路径不变,可以使用本功能使IS-IS在一段时间内向邻居通告最大链路开销,这段时间结束后IS-IS向邻居通告的链路开销从最大值恢复为原始开销值,IS-IS重新进行路由优选。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置IS-IS通告给邻居的链路开销保持最大值的持续时间。
isis peer hold-max-cost duration time
缺省情况下,未配置IS-IS通告给邻居的链路开销值保持最大值的持续时间。
一台路由器可同时运行多个路由协议,当多个路由协议都发现到同一目的地的路由时,将选用高优先级路由协议所发现的路由。
以下配置用来为IS-IS路由设置优先级,使用路由策略可以为特定的路由设置特定的优先级,路由策略的相关知识请参见“三层技术-IP路由配置指导”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 配置IS-IS协议的路由优先级。
preference { preference | route-policy route-policy-name } *
缺省情况下,IPv4 IS-IS协议的路由优先级为15。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置IPv6 IS-IS路由优先级。
preference { route-policy route-policy-name | preference } *
缺省情况下,IPv6 IS-IS路由优先级为15。
如果到一个目的地有几条开销相同的路径,可以通过等价路由负载分担来提高链路利用率。该配置用以设置IS-IS协议的最大等价路由条数。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 配置在负载分担方式下IS-IS最大等价路由条数。
maximum load-balancing number
缺省情况下,IPv4 IS-IS支持的等价路由的最大条数与系统支持的最大等价路由的条数相同。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置在负载分担方式下IPv6 IS-IS等价路由的最大数量。
maximum load-balancing number
缺省情况下,IPv6 IS-IS可用的等价路由最大条数与系统支持的最大等价路由的条数相同。
通过配置路由聚合,可以减小路由表规模,还可以减少本路由器生成的LSP报文大小和LSDB的规模。其中,被聚合的路由可以是IS-IS协议发现的路由,也可以是引入的外部路由。
路由器只对本地生成的LSP中的路由进行聚合。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 配置聚合路由。
summary ip-address { mask-length | mask } [ avoid-feedback | generate_null0_route | [ level-1 | level-1-2 | level-2 ] | tag tag ] *
缺省情况下,不对路由进行聚合。
聚合后路由的开销值取所有被聚合路由中最小的开销值。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置IPv6 IS-IS聚合路由。
summary ipv6-prefix prefix-length [ avoid-feedback | generate_null0_route | [ level-1 | level-1-2 | level-2 ] | tag tag ] *
缺省情况下,未配置IPv6 IS-IS聚合路由。
对于运行IS-IS的路由器来说,无法引入缺省路由,因此也无法通过将目的地为0.0.0.0/0的路径信息(即缺省路由)通过LSP发布给其它路由器,可以通过配置发布一条缺省路由,将目的地为0.0.0.0/0的路径信息通过LSP发布出去,其它同级别的路由器中将在自己的路由表中新增一条缺省路由。
当现网中有大量设备时,配置IS-IS发布缺省路由的方式比配置缺省静态路由的方式更灵活。例如,如果在IS-IS路由域中存在多台边界设备,那么可以通过配置路由策略,使某台边界设备在满足条件时才发布缺省路由,从而避免造成路由黑洞。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 配置IS-IS发布Level-1或Level-2级别的缺省路由。
default-route-advertise [ [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name ] *
缺省情况下,IPv4 IS-IS不发布Level-1或Level-2级别的缺省路由。
产生的缺省路由只被发布到同级别的路由器。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置IPv6 IS-IS发布缺省路由。
default-route-advertise [ avoid-learning | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,不生成IPv6 IS-IS缺省路由。
在IS-IS路由域边界设备上配置IS-IS发布缺省路由后,IS-IS域内的其他设备将去往外部路由域的流量转发到该设备,然后通过该设备去往外部路由域。当大量流量被转发到发布缺省路由的边界设备时,会导致该设备负担过重。另外,IS-IS域中有多台边界设备时,会存在去往其他路由域的最优路由的选择问题。通过让IS-IS域内的其他设备获悉全部或部分外部路由的方法可以解决上述问题。
IS-IS引入IGP路由协议的路由或BGP路由协议的路由时,可指定引入路由的缺省开销。IS-IS通过ACL、IP地址前缀列表或路由策略可以对引入的路由信息进行过滤,只有满足条件的路由信息才能加入到IS-IS路由表中,否则不能加入到IS-IS路由表中。没有加入IS-IS路由表的路由将不会通过LSP发布出去。
在实际组网环境中,每台路由器的性能即处理能力不同,如果在处理能力强的高端设备上引入大量外部路由,那么可能会对网络上其它低端设备的性能造成较大的冲击,网络管理员可以通过配置支持的最大引入路由条数,限制引入外部路由的条数,从而最终限制发布路由的数量。
只能引入路由表中状态为active的路由,是否为active状态可以通过display ip routing-table protocol命令来查看。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 从其它路由协议或其它IS-IS进程引入路由信息。
import-route bgp [ as-number ] [ allow-ibgp ] [ cost cost-value | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
import-route bgp [ as-number ] [ allow-ibgp ] inherit-cost [ [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
import-route { direct | static } [ cost cost-value | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
import-route { direct | static } inherit-cost [ [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
import-route { isis | ospf | rip } [ process-id | all-processes ] [ allow-direct | cost cost-value | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
import-route { isis | ospf | rip } [ process-id | all-processes ] inherit-cost [ allow-direct | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,IPv4 IS-IS不从其它路由协议或其它IS-IS进程引入路由信息。
(4) (可选)配置引入Level1/Level2的IPv4路由最大条数。
import-route limit number
缺省情况下,对于S5560X-EI系列交换机,允许引入Level1/Level2的IPv4路由最大条数为32768;对于S5500V2-EI、MS4520V2和ES5500系列交换机,允许引入Level1/Level2的IPv4路由最大条数为6144。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置IPv6 IS-IS引入外部路由信息。
import-route bgp4+ [ as-number ] [ allow-ibgp ] [ [ cost cost-value | inherit-cost ] | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
import-route { direct | static } [ [ cost cost-value | inherit-cost ] | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
import-route { isisv6 | ospfv3 | ripng } [ process-id ] [ allow-direct | [ cost cost-value | inherit-cost ] | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] *
缺省情况下,IPv6 IS-IS不引入外部路由信息。
(5) (可选)配置引入Level1/Level2的IPv6路由最大条数。
import-route limit number
缺省情况下,允许引入Level1/Level2的IPv6路由最大条数为6144。
运行IS-IS的路由器会把从邻居收到的LSP保存到自己维护的链路状态数据库中,使用SPF算法计算出以自己为根的最短路径树,并把计算好的路由信息加入到IS-IS路由表中,最终把最优路由加入到IP路由表中。
通过ACL、IP地址前缀列表或路由策略可以对将要加入到IP路由表中的路由进行过滤,满足条件则加入到IP路由表中,否则将不能加入到IP路由表中。没有加入IP路由表的路由仍然在IS-IS路由表中,可以通过LSP发布出去。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 配置IS-IS对接收的路由信息进行过滤。
filter-policy { ipv4-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } import
缺省情况下,IPv4 IS-IS不对接收的路由信息进行过滤。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置IPv6 IS-IS对接收的路由进行过滤。
filter-policy { ipv6-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } import
缺省情况下,IPv6 IS-IS不对接收的路由进行过滤。
IS-IS可以从其它路由协议或其它IS-IS进程引入路由信息,把它直接加入到IS-IS的路由表中并通过LSP发布出去。
通过ACL、IP地址前缀列表或路由策略可以对引入的路由信息进行过滤,满足条件加入到IS-IS路由表中,否则将不能加入到IS-IS路由表中。没有加入IS-IS路由表的路由将不会通过LSP发布出去。
本命令一般和import-route命令结合使用。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 配置IS-IS对引入的路由信息进行过滤。
filter-policy { ipv4-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } export [ protocol process-id ]
缺省情况下,IPv4 IS-IS不对引入的路由信息进行过滤。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置IPv6 IS-IS对引入的路由进行过滤。
filter-policy { ipv6-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } export [ protocol process-id ]
缺省情况下,IPv6 IS-IS不对引入的路由信息进行过滤。
当网络中同时部署了Level-1区域和Level-2区域时,缺省情况下,Level-2路由器不会将自己知道的其他Level-1区域以及Level-2区域的路由信息发布到Level-1区域。这样,Level-1路由器不了解本区域以外的路由信息,只将去往其他区域的报文发送到最近的Level-1-2路由器,所以可能导致对本区域之外的目的地址无法选择最佳的路由。
路由渗透功能通过在Level-1-2路由器上定义路由策略、Tag标记等方式,将符合条件的路由筛选出来,然后将其他Level-1区域和骨干区域的部分路由信息发布到自己所在的Level-1区域,使得Level-1区域能够获得全网的路由信息。
例如,如图1-8所示,Device A发送报文给Device F的最佳路径应该是Device A->Device B-> Device D-> Device E-> Device F,该路径的开销值为40。但是Device A上查看到达Device F的路径是Device A->Device C-> Device E-> Device F,其开销值为70,是一条次优路径。
这是由于Device A不知道本区域外部的路由,所以发往非本区域网段的报文都是由最近的Level-1-2路由器转发出去。这种情况下,分别在Device C和Device D上配置路由渗透功能后,Device A到达Device F的路径将变为Device A->Device B-> Device D-> Device E-> Device F。
通过IS-IS路由渗透功能(Level-2 to Level-1),可以将Level-2级别的路由信息和其他区域的Level-1级别的路由信息渗透到Level-1区域。
通过控制IS-IS路由渗透(Level-1 to Level-2),可以控制Level-1区域的IS-IS路由信息不向Level-2渗透,达到有效控制Level-2级别的路由信息的目的。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 配置将Level-1区域的路由信息引入到Level-2区域。
import-route isis level-1 into level-2 [ filter-policy { ipv4-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } | tag tag ] *
缺省情况下,Level-1区域的路由信息向Level-2区域发布。
(4) 配置将Level-2区域的路由信息引入到Level-1区域。
import-route isis level-2 into level-1 [ filter-policy { ipv4-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } | tag tag ] *
缺省情况下,Level-2区域的路由信息不向Level-1区域发布。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置从Level-2向Level-1进行路由渗透。
import-route isisv6 level-2 into level-1 [ filter-policy { ipv6-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } | tag tag ] *
缺省情况下,不从Level-2向Level-1进行路由渗透。
(5) 配置从Level-1向Level-2进行路由渗透。
import-route isisv6 level-1 into level-2 [ filter-policy { ipv6-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } | tag tag ] *
缺省情况下,从Level-1向Level-2进行路由渗透。
本功能允许设备将链路状态信息发布到BGP,由BGP向外发布,以满足需要知道链路状态信息的应用的需求。BGP LS的相关内容请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置允许设备将IS-IS链路状态信息发布到BGP。
distribute bgp-ls [ instance-id id ] [ level-1 | level-2 ]
缺省情况下,不允许设备将IS-IS链路状态信息发布到BGP。
配置接口链路标记的设备和开启IPv6 IS-IS链路标记继承功能的设备相互配合,可以实现路由筛选。具体机制如下:
(1) 设备上配置了IPv6 IS-IS接口的链路标记后,该设备将发布携带链路标记的LSP。
(2) 开启IPv6 IS-IS链路标记继承功能的设备收到携带链路标记的LSP时,设备将提取并继承LSP中的链路标记值。如果设备提取到了多个链路标记值(假设为tag 1、tag 2、tag n),设备将根据一定的规则选取其中一个(假设为tag 1)进行继承。设备计算出来的到达某个目的地的路径包含携带链路标记的链路时,将该路由的路由标记设置为tag 1,借助路由标记可以实现路由筛选。
上述机制通常用于域内SAVA(Source Address Validation Architecture,源地址验证架构)场景。该场景中,如果局域网存在多个网关设备,那么这些设备上的IPv6 SAVA表项需要保持一致,以避免用户的合法报文被错误丢弃。具体机制如下:
(1) 需要发布IPv6 SAVA表项的网关设备上,在靠近用户侧接口上开启接口链路标记功能。
(2) 在接收IPv6 SAVA表项的网关设备上开启链路标记继承功能。当该设备计算出来的IPv6 IS-IS路由条目的路由标记与自身为远端路由指定的路由标记相同时,设备将使用IPv6 IS-IS路由的目的前缀生成IPv6 SAVA表项,从而实现IPv6 SAVA表项的同步。
关于SAVA功能以及IPv6 SAVA表项的详细介绍,请参见“安全配置指导”中的“SAVA”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置IPv6 IS-IS接口的链路标记。
isis ipv6 link-tag tag
缺省情况下,未配置接口的链路标记。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 开启IPv6 IS-IS的链路标记继承功能。
link-tag inherit enable
缺省情况下,IPv6 IS-IS链路标记继承功能处于关闭状态。
IS-IS协议通过收发Hello报文来维护与相邻设备的邻居关系,如果路由器在邻居关系保持时间内(即Hello报文失效数目与Hello报文发送时间间隔的乘积)没有收到来自邻居路由器的Hello报文时将宣告邻居关系失效。通过设置Hello报文失效数目和Hello报文的发送时间间隔,可以调整邻居关系保持时间,即邻居路由器要花多长时间能够监测到链路已经失效并重新进行路由计算。
DIS发送Hello报文的时间间隔是isis timer hello设置的时间的1/3。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置Hello报文的发送时间间隔。
isis timer hello seconds [ level-1 | level-2 ]
缺省情况下,Hello报文的发送时间间隔为10秒。
当网络类型为广播网时,DIS使用CSNP报文来进行LSDB同步,因此只有在被选举为DIS的路由器上进行该项配置才有效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DIS在广播网络上发送CSNP报文的时间间隔。
isis timer csnp seconds [ level-1 | level-2 ]
缺省情况下,CSNP报文的发送时间间隔为10秒。
每个LSP都有一个最大生存时间,随着时间的推移最大生存时间将逐渐减小,当LSP的最大生存时间为0时,IS-IS将启动清除过期LSP的过程。用户可根据网络规模对LSP的最大生存时间进行调整。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置LSP最大生存时间。
timer lsp-max-age seconds
缺省情况下,LSP最大生存时间为1200秒。
路由器必须定时刷新自己生成的LSP,防止LSP的最大生存时间减小为0。另外,通过定时刷新LSP可以使整个区域中的LSP保持同步。用户可对LSP的刷新周期进行配置,提高LSP的刷新频率可以加快网络收敛速度,但是将占用更多的带宽。
除了定时刷新可以重新生成LSP外,当网络拓扑发生变化,如邻居路由器up或down,接口Metric值、System ID或区域地址发生变化等,将触发路由器重新生成LSP。为了防止网络拓扑频繁变化而导致LSP频繁重新生成,用户可配置LSP生成时间间隔,以抑制网络变化频繁导致占用过多的带宽资源和路由器资源。
LSP重新生成的时间间隔的变化规则如下:
· 如果只指定了maximum-interval参数,那么LSP重新生成的时间间隔固定为maximum-interval。
· 如果未指定incremental-interval参数,LSP重新生成的时间间隔最大为maximum-interval,最小为minimum-interval。
· 如果指定了incremental-interval参数,那么在网络变化频繁的情况下将LSP重新生成的时间间隔按照incremental-interval×2n-2(n为连续触发路由计算的次数)进行延长,最大不超过maximum-interval。在网络变化不频繁的情况下将LSP重新生成时间间隔缩小到minimum-interval。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置LSP刷新周期。
timer lsp-refresh seconds
缺省情况下,LSP刷新周期为900秒。
(4) 配置LSP重新生成的时间间隔。
timer lsp-generation maximum-interval [ minimum-interval [ incremental-interval ] ] [ level-1 | level-2 ]
缺省情况下,LSP重新生成的最大时间间隔为5秒,最小时间间隔为50毫秒,时间间隔惩罚增量为200毫秒。
当LSDB的内容发生变化时,IS-IS将把发生变化的LSP扩散出去,用户可以对LSP的最小发送时间间隔进行调节。
请合理配置LSP发送时间间隔,当存在大量IS-IS接口或大量路由时,会发送大量的LSP报文,导致LSP风暴的出现。
在点到点链路上,发送的LSP需要得到对端的应答,否则将在指定的时间间隔内重新发送该LSP,重传时间间隔决定了当一个LSP在P2P链路上丢失时它被重传需要等待的时间。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置发送LSP的最小时间间隔以及一次最多可以发送的LSP报文数目。
isis timer lsp time [ count count ]
缺省情况下,LSP的发送最小时间间隔为33毫秒,一次最多可以发送5个LSP报文。
(4) 配置LSP在点到点链路上的重传时间间隔。
isis timer retransmit seconds
缺省情况下,LSP在点到点链路上的重传时间间隔为5秒。
根据本地维护的LSDB,运行IS-IS协议的路由器通过SPF算法计算出以自己为根的最短路径树,并根据这一最短路径树决定到目的网络的下一跳。通过调节SPF的计算间隔,可以抑制网络频繁变化可能导致的占用过多带宽资源和路由器资源。
本命令在网络变化不频繁的情况下将连续路由计算的时间间隔缩小到minimum-interval,而在网络变化频繁的情况下可以进行相应惩罚,增加incremental-interval×2n-2(n为连续触发路由计算的次数),将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置IPv4 IS-IS路由计算时间间隔。
timer spf maximum-interval [ minimum-interval [ incremental-interval ] ]
缺省情况下,IPv4 IS-IS路由计算的最大时间间隔为5秒,最小时间间隔为50毫秒,时间间隔惩罚增量为200毫秒。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置IPv6 IS-IS路由计算的时间间隔。
timer spf maximum-interval [ minimum-interval [ incremental-interval ] ]
缺省情况下,IPv6 IS-IS路由计算的最大时间间隔为5秒,最小时间间隔为50毫秒,时间间隔惩罚增量为200毫秒。
在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS。
对于IS-IS,Level-1和Level-2的DIS是分别选举的,可以为不同级别的DIS选举设置不同的优先级。优先级数值越高,被选中的可能性就越大。如果所有路由器的DIS优先级相同,将会选择MAC地址最大的路由器作为DIS。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的DIS优先级。
isis dis-priority priority [ level-1 | level-2 ]
缺省情况下,接口的DIS优先级为64。
管理标记特性允许在IS-IS域中通过管理标记对地址前缀进行控制,达到简化管理的目的。
如图1-9所示,Device A需要与处于其他Level-1区域的Device B、Device C、Device D相互通信。为了保证信息安全,其他Level-1区域内的设备不能收到Device A发送的报文。为了达到此目的,可以在Device B、Device C、Device D上使能了IS-IS的接口配置相同的管理标记值tag。然后在Area 4的Level-1-2设备上将Level-2区域的路由信息渗透到Level-1区域时,需要匹配指定的tag。这样就可以满足Device A仅与其他Level-1区域中的Device B、Device C、Device D进行通信的目的。此时,在Device A上形成的拓扑结构如图1-10所示。
图1-9 IS-IS组网示意图
图1-10 IS-IS管理标记应用示意图
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的管理标记值。
isis tag tag
缺省情况下,未配置接口的管理标记值。
仅当IS-IS开销值类型为wide、wide-compatible或compatible时,IS-IS才会在发布的LSP的IPv4网段地址信息中携带tag值。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的管理标记值。
isis ipv6 tag tag
缺省情况下,未配置接口的管理标记值。
无论IS-IS使用何种开销值类型,IS-IS均会在发布的LSP的IPv6地址前缀信息中携带tag值。
Hello报文失效数目,即宣告邻居失效前IS-IS没有收到的邻居Hello报文的数目。
如果路由器在邻居关系保持时间内(即Hello报文失效数目与Hello报文发送时间间隔的乘积)没有收到来自邻居路由器的Hello报文时将宣告邻居关系失效。通过设置Hello报文失效数目和Hello报文的发送时间间隔,可以调整邻居关系保持时间,即邻居路由器要花多长时间能够监测到链路已经失效并重新进行路由计算。
在广播链路上,Level-1和Level-2 Hello报文会分别发送,Hello报文失效数目需要分别设置;在点到点链路中,Level-1和Level-2的Hello报文是在同一个点到点Hello报文中发送,因此不需要指定Level-1或Level-2。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置Hello报文失效数目。
isis timer holding-multiplier value [ level-1 | level-2 ]
缺省情况下,Hello报文失效数目为3。
通过禁止接口发送和接收IS-IS报文,禁止了该接口与相邻路由器建立邻居关系,但仍然可以把该接口直连网络的路由信息放在LSP中从其它接口宣告出去。由于不用建立邻居关系,可以节省带宽和路由器处理时间,同时,其它路由器也可以知道到达该接口直连网络的路由信息。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 禁止接口发送和接收IS-IS报文。
isis silent
缺省情况下,接口既发送也接收IS-IS报文。
IS-IS协议报文直接封装在链路层报文头后面,无法实现协议报文在IP层的自动分片。因此,运行IS-IS的路由器与对端路由器建立邻居关系时,会发送达到链路MTU大小的Hello报文,双方进行MTU大小的通信协商,来保证建立邻居双方接口MTU的一致性,从而避免双方MTU大小不一致导致较小的PDU可以通过,但是较大的PDU无法通过。
当邻居路由器双方MTU大小一样的时候,为了避免发送过大的Hello报文浪费带宽,可以配置接口发送不加入填充CLV的小型Hello报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口发送不加入填充CLV的小型Hello报文。
isis small-hello
缺省情况下,接口发送标准Hello报文。
IS-IS协议报文直接封装在链路层报文头后面,无法实现协议报文在IP层的自动分片。
为了不影响LSP的正常扩散,要求同一区域内所有IS-IS路由器生成LSP报文的最大长度不能超过该区域内所有路由器IS-IS接口MTU的最小值。
如果IS-IS运行的区域中各IS-IS接口的MTU值不一致,建议用户对IS-IS生成LSP报文的最大长度进行配置,将同一区域内所有IS-IS路由器生成LSP报文的最大长度配置为该区域内所有路由器IS-IS接口MTU的最小值。如果不进行配置,系统将根据当前设备IS-IS接口最小MTU值的变化而自动重启IS-IS进程动态调整生成LSP报文的最大长度,会在一定程度上影响业务的正常运行。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置生成的Level-1 LSP和Level-2 LSP的最大长度。
lsp-length originate size [ level-1 | level-2 ]
缺省情况下,生成的Level-1 LSP和Level-2 LSP的最大长度为1497字节。
(4) 配置可以接收LSP的最大长度。
lsp-length receive size
缺省情况下,接收的LSP报文的最大长度为1497字节。
通过使能LSP快速扩散功能,当LSP发生变化而导致SPF重新计算时,在SPF重新计算前,把导致SPF重新计算的LSP快速扩散出去,将大大缩短路由器之间由于进行LSP同步而导致LSDB不一致的时间,提高全网的快速收敛性能。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置LSP快速扩散功能。
flash-flood [ flood-count flooding-count | max-timer-interval flooding-interval | [ level-1 | level-2 ] ] *
缺省情况下,LSP快速扩散功能处于关闭状态。
当LSP容量不足时,新引入的路由以及新增的TLV均无法添加到LSP中。此时,可以使用LSP分片扩展功能扩大LSP容量,当LSP容量扩大时,IS-IS会自动尝试将引入失败的路由以及添加失败的TLV重新添加到LSP中。
LSP分片扩展功能可以使IS-IS设备生成更多的LSP分片,用来携带更多的IS-IS信息。
LSP分片扩展功能涉及如下基本概念:
· 初始系统(Originating System):实际运行IS-IS协议的进程。
· 初始系统ID(Normal System ID):初始系统的系统ID。
· 虚拟系统ID(Additional System ID):虚拟系统ID由用户配置。虚拟系统ID和初始系统ID一样,在整个路由域中必须唯一。
· 虚拟系统(Virtual System):由虚拟系统ID标识的系统,用来生成扩展LSP分片。扩展LSP分片的LSP ID中携带虚拟系统ID。
· 24号TLV(IS Alias ID TLV):用来表示初始系统与虚拟系统的关系。
一个IS-IS进程最多可以产生256个分片,能够携带的路由数量有限。分片扩展功能通过增加虚拟系统ID,IS-IS进程可以生成更多的LSP分片。每个虚拟系统ID都允许生成256个扩展的LSP分片。配置虚拟系统和分片扩展功能后,IS-IS会将初始系统发布的LSP报文无法装下的内容,放入虚拟系统的LSP中发出,并在LSP中添加IS Alias ID TLV来声明此虚拟系统和初始系统的关系。
如图1-11所示,Device A和Device B均支持LSP分片扩展功能。在Device A上配置LSP分片扩展功能后,Device A将一部分路由信息放入Device A1和Device A2的LSP报文中向外发送。当Device B收到Device A1和Device A2发送的LSP时,Device B通过IS Alias ID TLV判断出报文的初始系统是Device A,则把Device A1和Device A2发布的信息均视为Device A的信息。这种情况下,虚拟系统不参与路由计算。
图1-11 IS-IS LSP分片扩展
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能IS-IS进程的LSP分片扩展功能。
lsp-fragments-extend [ level-1 | level-1-2 | level-2 ]
缺省情况下,LSP分片扩展功能处于关闭状态。
使能分片扩展功能后,使能该IS-IS进程的所有接口的MTU不能小于512,否则LSP分片扩展功能将不会生效。
(4) 配置IS-IS进程的虚拟系统ID。
virtual-system virtual-system-id
缺省情况下,未配置IS-IS进程的虚拟系统ID。
为了使路由器生成扩展LSP分片,应至少配置一个虚拟System ID。
当接口的网络类型为P2P时,对端的IP地址与当前接口不在同一网段也可以建立邻接关系。通过配置与对端路由器建立邻接关系必须在同一网段的检查功能,即接口上接收Hello报文时,对端的IP地址与当前接口必须在同一网段才可以建立邻接关系。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置在P2P接口上建立邻接关系必须在同一网段的检查功能。
isis peer-ip-check
缺省情况下,在网络类型为P2P的接口上建立邻接关系时,不对接口是否处于同一网段进行检查。
IS-IS协议中,当网络拓扑发生变化时,路由要重新收敛。IS-IS路由收敛的优先级由高到低包括:
· Critical:最高优先级。
· High:高优先级。
· Medium:中优先级。
· Low:低优先级。
IS-IS路由收敛的优先级越高收敛的速度越快。
配置IS-IS路由收敛优先级后,IS-IS按照如下机制设置路由的收敛优先级。
· 对于已经存在的IS-IS路由,IS-IS按照prefix-priority命令重新设置路由的收敛优先级。
· 对于新增加的IS-IS路由,IS-IS按照prefix-priority命令的过滤结果设置路由的收敛优先级。
· 如果一条路由符合多个收敛优先级的匹配规则,则这些收敛优先级中最高者当选为路由的收敛优先级。
(1) 进入系统视图。
system-view
(2) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(3) 配置IPv4 IS-IS路由收敛的优先级。请选择其中一项进行配置。
¡ 配置指定前缀列表的IPv4 IS-IS路由收敛的优先级。
prefix-priority { critical | high | medium } { prefix-list prefix-list-name | tag tag-value }
¡ 通过路由策略指定IPv4 IS-IS路由收敛的优先级。
prefix-priority route-policy route-policy-name
缺省情况下,IPv4 IS-IS路由收敛的优先级为低优先级。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置IPv6 IS-IS路由收敛的优先级。
prefix-priority { critical | high | medium } { prefix-list prefix-list-name | tag tag-value }
prefix-priority route-policy route-policy-name
缺省情况下,IPv6 IS-IS路由收敛的优先级为低优先级。
IS-IS使用过载标志位来标识过载状态。IS-IS过载标志位是指LSP报文中的OL位。对设备设置过载标志位后,其他设备在进行SPF计算时不会使用这台设备做转发,只计算该设备上的直连路由。
当运行IS-IS的路由器因为内存不足或其他原因无法记录完整的LSDB时,将会导致区域路由的计算错误,在故障排除过程中,通过给怀疑有问题的路由器设置过载标志位,可以将其从IS-IS网络中暂时隔离,便于进行故障定位。
如图1-12所示,正常情况下,Device A到达IP network网段的报文由Device D转发。当Device D发送的LSP报文中的过载标志位置位后,Device A到达IP network网段的报文将通过Device B、Device C转发到IP network网段,但转发到Device D直连网段的报文则不受影响。
图1-12 LSDB过载示意图
同时存在IPv4和IPv6拓扑时,在不同的视图下配置set-overload命令的生效范围与是否配置multi-topology命令有关,具体如下:
· 如果未配置multi-topology命令,则在IS-IS视图下配置set-overload命令后,同时对IPv4 IS-IS和IPv6 IS-IS生效。
· 如果未配置multi-topology命令,且未在IS-IS视图下配置set-overload命令,则在IS-IS IPv6单播地址族视图下配置set-overload命令后,不会对IPv6 IS-IS生效。
· 如果配置了multi-topology命令,则在IS-IS视图下配置set-overload命令后,仅对IPv4 IS-IS生效。需要在IS-IS IPv6单播地址族视图下配置set-overload命令,才会对IPv6 IS-IS生效。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置过载标志位。
set-overload [ on-startup [ [ start-from-nbr system-id [ timeout1 [ nbr-timeout ] ] ] | timeout2 | wait-for-bgp [ timeout3 ] ] ] [ allow { external | interlevel } * ]
缺省情况下,未配置过载标志位。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置IS-IS开销值的类型。
cost-style { compatible | wide | wide-compatible }
缺省情况下,IS-IS只收发采用narrow方式的报文。
(4) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(5) 配置IS-IS支持IPv6单播拓扑。
multi-topology [ compatible ]
缺省情况下,IS-IS不支持IPv6单播拓扑。
(6) 配置IPv6拓扑的LSDB过载标志位。
set-overload [ on-startup [ [ start-from-nbr system-id [ timeout1 [ nbr-timeout ] ] ] | timeout2 | wait-for-bgp4+ [ timeout3 ] ] ] [ allow { external | interlevel } * ]
缺省情况下,未配置过载标志位。
Isolate是一种对网络设备进行软件或硬件维护的方式。Isolate使用网络中的冗余路径,平滑移除需要维护的设备。当完成设备维护后,关闭Isolate功能可以让该设备重新投入使用。
当用户需要对网络中某台设备的IS-IS协议进行升级时,为了不对当前网络中通过该设备发布的IS-IS路由指导转发的流量产生影响,可以使用IS-IS isolate功能把该设备上的IS-IS协议从当前网络中隔离出来。具体工作机制如下:
(1) 开启IS-IS isolate功能后,IS-IS发布的LSP报文中的过载标志位置位,并将IS-IS接口的链路开销值调整为最大值,以便邻居重新进行路径优选。
(2) 邻居收到LSP完成路由计算后,将选择更优的路径转发流量,不再将流量发往IS-IS isolate设备。此时,设备的IS-IS协议完全从当前组网中隔离出来,可以对该设备上的IS-IS协议进行升级处理。
(3) 对IS-IS协议的维护结束后,关闭IS-IS isolate功能清除过载标志位,并将链路度量值恢复为调整前的值,从而让该设备的IS-IS协议重新加入网络。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使用IS-IS isolate功能对设备的IS-IS协议进行维护。
a. 开启IS-IS协议的隔离功能,将设备的IS-IS协议从网络中隔离出来。
isolate enable
b. IS-IS协议维护结束后,关闭IS-IS协议的隔离功能,让设备的IS-IS协议重新加入网络。
undo isolate enable
缺省情况下,IS-IS协议的隔离功能处于关闭状态。
当用户需要对某台设备进行调试或升级等维护操作时,可以使用IS-IS shutdown功能暂时关闭设备的IS-IS进程,邻居设备将流量切换到备份路径上,不再通过该设备转发流量,从而降低设备维护对网络的影响。具体工作机制如下:
· 使用IS-IS shutdown功能的IS-IS进程将本端邻居关系置为down。
· 停止收发IS-IS协议报文,清除邻居信息、LSDB(包括自己产生的LSP和接收到的LSP)以及IS-IS路由等信息。
邻居设备在邻居关系保持时间内没有收到来自上述设备的Hello报文,将断开与上述设备的邻居关系。
当完成对网络设备的维护后,通过undo shutdown process命令重新开启IS-IS进程,以便IS-IS重新建立邻居关系。
与undo isis命令相比,本功能在关闭IS-IS进程后,不会删除该进程下的配置,降低了用户维护设备的成本。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置IS-IS shutdown功能。
a. 关闭IS-IS进程。
shutdown process
b. IS-IS协议维护结束后,重新开启IS-IS进程,让设备的IS-IS进程重新建立邻居关系。
undo shutdown process
缺省情况下,IS-IS进程处于开启状态。
ATT连接位由Level-1-2路由器产生,但仅与L1 LSP有关,表示产生此LSP的路由器(Level-1-2路由器)与多个区域相连接。ATT连接位的缺省置位规则如下:
· Level-1-2路由器在其生成的Level-1 LSP中将ATT比特位置位,用来通知同一区域中的Level-1设备自己与其他区域相连,也就是说与Level-2骨干区域相连。当Level-1区域中的设备收到Level-1-2路由器发送的ATT比特位被置位的Level-1 LSP后,它将生成一条目的地为Level-1-2路由器的缺省路由,实现和其他区域相互通信。
· 如果Level-1-2路由器只连接了一个区域,Level-1-2路由器发送的Level-1 LSP中的ATT比特位不会置位。
通过本功能可以改变缺省置位规则,具体方式如下:
· 如果希望发布的Level-1 LSP的ATT比特位一直置位,请使用set-att always命令。
· 如果不希望Level-1-2路由器所连接的Level-1路由器都因为ATT比特位生成缺省路由,可以通过如下两种方式实现:
¡ 在Level-1-2路由器相连的Level-1路由器上配置ignore-att命令。
¡ 在Level-1-2路由器上配置set-att never命令,该设备将不再发布ATT比特位置位的LSP。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置IS-IS不采用ATT位计算缺省路由。
ignore-att
缺省情况下,IS-IS采用ATT位计算缺省路由。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置系统自身发布的Level-1 LSP的ATT位置位。
set-att { always | never }
缺省情况下,Level-1-2路由器根据缺省置位规则来决定是否置位。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置系统自身发布的Level-1 LSP的ATT位置位。
set-att { always | never }
缺省情况下,Level-1-2路由器根据缺省置位规则来决定是否置位。
IS-IS用System ID来在区域内唯一标识主机或路由器,System ID长度固定为6字节。当网络管理员检查IS-IS邻居关系的状态、IS-IS路由表以及LSDB中的内容时,十六进制表示的System ID以及LSP标识符不够直观,查看也不方便。
主机名映射提供了一种将System ID映射到主机名的服务,运行IS-IS的路由器维护一个主机名到System ID的映射关系表,在维护和管理以及网络故障诊断时,使用主机名比使用System ID会更直观,也更容易记忆。
可以通过静态配置和动态生成两种方式生成和维护此关系映射表:
· 静态配置,要求网络中的每一台路由器为其它路由器配置System ID和主机名的映射关系。当网络中路由器数目增多时,网络中每新增一台路由器或修改某台路由器的主机名映射关系,其它路由器都要做相应配置,增加了维护工作量。
· 动态生成,IS-IS网络中的每台路由器只需要在本机上配置自己的主机名称即可,配置的主机名称将通过动态主机名CLV发布出去,最后IS-IS网络中使能动态主机名映射功能的路由器都将收集到其它路由器System ID与主机名称的映射关系并生成映射表。同时还可以为广播网中的DIS配置局域网名称来代表这个广播网中的伪节点,便于网络管理员查看LSDB内容时判断LSP是由哪个DIS产生的。
只有使能动态主机名映射功能后,使用display isis lsdb等命令才可以看到路由器的主机名而不是System ID。
倘若网络中的一台路由器使能了动态主机名映射功能且在当前路由器也通过静态方式为那台路由器配置了主机名,动态配置的主机名将覆盖当前路由器为其静态配置的主机名称。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 为远端IS配置System ID与主机名称的映射关系。
is-name map sys-id map-sys-name
缺省情况下,没有为远端IS配置System ID与主机名称的映射关系。
每个System ID只能对应一个主机名称。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能动态主机名映射功能并为当前路由器配置主机名称。
is-name sys-name
缺省情况下,动态主机名映射功能处于关闭状态且没有为当前路由器配置主机名称。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 配置本地局域网名称。
isis dis-name symbolic-name
缺省情况下,未配置本地局域网名称。
该命令只有在使能了动态主机名进程的路由器上有效。该命令在点到点链路的接口上无效。
在IS-IS网络中,邻居关系震荡会导致网络不稳定、网络频繁收敛消耗设备资源,甚至可能会造成用户流量丢失。因此,当出现邻居关系震荡时,必须尽快定位并解决。
为了方便在出现邻居关系震荡时及时定位问题,可以打开IS-IS邻接状态变化的输出开关,将邻居状态变化信息记录到日志中。
打开邻接状态输出开关后,IS-IS邻接状态变化时会生成日志信息发送到设备的信息中心,通过设置信息中心的参数,最终决定日志信息的输出规则(即是否允许输出以及输出方向)。(有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。)
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 打开邻接状态变化的输出开关。
log-peer-change
缺省情况下,邻接状态变化的输出开关处于打开状态。
IS-IS的日志信息包括接收和发送Hello报文的日志信息以及邻居状态改变的日志信息。使用本功能可以设置IS-IS记录各类日志信息的最大个数。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置IS-IS记录日志信息的最大个数。
event-log { hello { peer-change | received-abnormal | received-dropped | sent-abnormal | sent-failed } | peer } size count
缺省情况下,IS-IS记录各类日志信息的最大个数均为100。
IS-IS会对邻居关系断开的故障检测信息进行记录,通过本功能可以设置记录故障检测信息的最大条数。
(1) 进入系统视图。
system-view
(2) 配置IS-IS记录邻居关系断开的故障检测信息的最大个数。
isis troubleshooting max-number number
缺省情况下,IS-IS记录邻居关系断开的故障检测信息的最大个数为100。
配置IS-IS进程绑定MIB功能后,可以通过网管软件对指定的IS-IS进程进行管理。
开启IS-IS模块的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。(有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。)
(1) 进入系统视图。
system-view
(2) 配置IS-IS进程绑定MIB。
isis mib-binding process-id
缺省情况下,MIB绑定在进程号最小的IS-IS进程上。
(3) 开启IS-IS的告警功能。
snmp-agent trap enable isis [ adjacency-protocol-change | adjacency-state-change | area-mismatch | authentication | authentication-type | buffsize-mismatch | id-length-mismatch | lsdboverload-state-change | lsp-corrupt | lsp-parse-error | lsp-size-exceeded | manual-address-drop | max-seq-exceeded | maxarea-mismatch | own-lsp-purge | protocol-support | rejected-adjacency | skip-sequence-number | version-skew ] *
缺省情况下,IS-IS的告警功能处于开启状态。
(4) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(5) 配置管理IS-IS的SNMP实体所使用的上下文名称。
snmp context-name context-name
缺省情况下,未配置管理IS-IS的SNMP实体所使用的上下文名称。
ISPF(Incremental Shortest Path First,增量最短路径优先)计算是对IS-IS中最短路径树的增量计算,当网络的拓扑结构发生变化,即影响到最短路径树的结构时,只对受影响的部分节点进行重新计算拓扑结构,对最短路径树中受影响的部分进行修正,而不需要重建整棵最短路径树。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能IPv4 IS-IS ISPF功能。
ispf enable
缺省情况下,IPv4 IS-IS ISPF功能处于开启状态。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 使能IPv6 IS-IS ISPF功能。
ispf enable
缺省情况下,IPv6 IS-IS ISPF功能处于开启状态。
接口上配置本功能后,设备将禁止在LSP中携带此接口的前缀,屏蔽内部节点,提高安全性,加快路由收敛。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的前缀抑制功能。
isis prefix-suppression
缺省情况下,未配置接口的前缀抑制功能。
本命令对接口从地址同样生效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的前缀抑制功能。
isis ipv6 prefix-suppression
缺省情况下,未配置接口的前缀抑制功能。
PIC(Prefix Independent Convergence,前缀无关收敛),即收敛时间与前缀数量无关,加快收敛速度。传统的路由计算快速收敛都与前缀数量相关,收敛时间与前缀数量成正比。
PIC和IS-IS快速重路由功能同时配置时,IS-IS快速重路由功能生效。
邻居发送的LSP才会进行PIC。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能前缀无关收敛功能。
pic [ additional-path-always ]
缺省情况下,前缀无关收敛功能处于使能状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能IS-IS协议中主用链路的BFD(Ctrl方式)检测功能。
isis primary-path-detect bfd ctrl
缺省情况下,IS-IS协议中主用链路的BFD(Ctrl方式)检测功能处于关闭状态。
配置本功能后,可以加快IS-IS协议的收敛速度。使用control报文双向检测方式时,需要建立IS-IS邻居的两端设备均支持BFD配置。
(1) 进入系统视图。
system-view
(2) 配置BFD Echo报文源地址。
bfd echo-source-ip ip-address
缺省情况下,未配置BFD Echo报文源地址。
echo报文的源IP地址用户可以任意指定。建议配置echo报文的源IP地址不属于该设备任何一个接口所在网段。
本命令的详细情况请参见“可靠性命令参考”中的“BFD”。
(3) 进入接口视图。
interface interface-type interface-number
(4) 使能IS-IS协议中主用链路的BFD(Echo方式)检测功能。
isis primary-path-detect bfd echo
缺省情况下,IS-IS协议中主用链路的BFD(Echo方式)检测功能处于关闭状态。
配置本功能后,可以加快IS-IS协议的收敛速度。使用echo报文单跳检测方式时,仅需要一端设备支持BFD配置。
在安全性要求较高的网络中,可以通过配置IS-IS验证来提高IS-IS网络的安全性。IS-IS验证特性分为邻居关系的验证和区域或路由域的验证。
配置邻居关系验证后,验证密钥将会按照设定的方式封装到Hello报文中,并对接收到的Hello报文进行验证密钥的检查,通过检查才会形成邻居关系,否则将不会形成邻居关系,用以确认邻居的正确性和有效性,防止与无法信任的路由器形成邻居。
两台路由器要形成邻居关系必须配置相同的验证方式和验证密钥。
切换密钥时可以通过配置发送报文携带验证信息,接收报文时不进行验证,实现认证密钥无缝切换。
两台路由器要形成邻居关系必须配置相同的验证方式和验证密钥。
IS-IS使用keychain验证模式时,keychain内的key必须使用HMAC-MD5或HMAC-SM3认证算法才能正常工作。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置邻居关系验证方式和验证密钥。
isis [ process-id process-id ] authentication-mode { { gca key-id { hmac-sha-1 | hmac-sha-224 | hmac-sha-256 | hmac-sha-384 | hmac-sha-512 } [ nonstandard ] | md5 | simple } { cipher | plain } string | keychain keychain-name } [ level-1 | level-2 ] [ ip | osi ]
缺省情况下,接口没有配置邻居关系验证方式和验证密钥。
(4) (可选)配置对收到的Hello报文忽略认证信息检查。
isis authentication send-only [ level-1 | level-2 ]
缺省情况下,如果配置了接口验证方式和验证密钥,对收到的报文执行认证信息检查。
通过配置区域验证,可以防止将从不可信任的路由器学习到的路由信息加入到本地Level-1的LSDB中。
配置区域验证后,验证密钥将会按照设定的方式封装到Level-1报文(LSP、CSNP、PSNP)中,并对收到的Level-1报文进行验证密钥的检查。
同一区域内的路由器必须配置相同的验证方式和验证密钥。
切换密钥时可以通过配置发送报文携带验证信息,接收报文时不进行验证,实现认证密钥无缝切换。
同一区域内的路由器必须配置相同的验证方式和验证密钥。
IS-IS使用keychain验证模式时,keychain内的key必须使用HMAC-MD5或HMAC-SM3认证算法才能正常工作。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置区域验证方式和验证密钥。
area-authentication-mode { { gca key-id { hmac-sha-1 | hmac-sha-224 | hmac-sha-256 | hmac-sha-384 | hmac-sha-512 } [ nonstandard ] | md5 | simple } { cipher | plain } string | keychain keychain-name } [ ip | osi ]
缺省情况下,系统没有配置区域验证方式和验证密钥。
(4) (可选)配置对收到的Level-1报文(包括LSP、CSNP、PSNP)忽略认证信息检查。
area-authentication send-only
缺省情况下,如果配置了区域验证方式和验证密钥,对收到的报文执行认证信息检查。
通过配置路由域验证,可以防止将不可信的路由信息注入当前路由域。
配置路由域验证后,验证密钥将会按照设定的方式封装到Level-2报文(LSP、CSNP、PSNP)中,并对收到的Level-2报文进行验证密钥的检查。
切换密钥时可以通过配置发送报文携带验证信息,接收报文时不进行验证,实现认证密钥无缝切换。
设备配置了路由域验证后,可以和未配置路由域验证的设备建立邻接关系,但是会将未携带验证信息的LSP丢弃,导致路由学习与预期不符。建议在所有骨干层(Level-2)设备上配置相同的验证方式和验证密钥,避免产生上述问题。
IS-IS使用keychain验证模式时,keychain内的key必须使用HMAC-MD5或HMAC-SM3认证算法才能正常工作。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置路由域验证方式和验证密钥。
domain-authentication-mode { { gca key-id { hmac-sha-1 | hmac-sha-224 | hmac-sha-256 | hmac-sha-384 | hmac-sha-512 } [ nonstandard ] | md5 | simple } { cipher | plain } string | keychain keychain-name } [ ip | osi ]
缺省情况下,系统未配置路由域验证方式和验证密钥。
(4) (可选)配置对收到的Level-2报文(包括LSP、CSNP、PSNP)忽略认证信息检查。
domain-authentication send-only
缺省情况下,如果配置了路由域验证方式和验证密钥,对收到的报文执行认证信息检查。
GR(Graceful Restart,平滑重启)是一种通过备份IS-IS配置信息,在协议重启或主备倒换时IS-IS进行平滑重启,保持邻接关系,并对LSDB进行同步,从而保证转发业务不中断的机制。
GR有两个角色:
· GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
· GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
只需要在作为GR Restarter的设备上进行以下配置,设备缺省都是GR Helper。
T1、T2和T3定时器用来控制GR流程,分别如下:
· T1定时器:用来控制发送带有RR标志位的Restart TLV的次数。重启路由器发送带有RR标志位的Restart TLV,如果在超时时间内收到对端回复的带有RA标志的Restart TLV,才能正常进入GR流程;否则GR流程失败。
· T2定时器:用来控制LSDB同步时间。每个LSDB都有一个T2定时器,对于Level-1-2路由器来说,就需要有两个T2定时器,一个为Level-1的T2定时器,另外一个为Level-2的T2定时器。如果Level-1和Level-2的T2定时器都超时,LSDB同步还没有完成,则GR失败。
· T3定时器:用来控制路由器的重启时间间隔。重启时间间隔在IS-IS的Hello PDU中设置为保持时间,这样在该路由器重启的时间内邻居不会断掉与其的邻接关系。如果T3定时器超时后GR还没有完成,则GR失败。
配置GR定时器时请遵循以下规则,否则将导致定时器配置失败:
· T1定时器超时值×超时次数小于T2定时器的超时值。
· T2定时器超时值小于T3定时器的超时值。
(1) 进入系统视图。
system-view
(2) 使能IS-IS路由进程,进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能IS-IS协议的GR能力。
graceful-restart
缺省情况下,IS-IS协议的GR能力处于关闭状态。
(4) (可选)配置重启时抑制SA位。
graceful-restart suppress-sa
缺省情况下,重启时不抑制SA位。
配置重启时抑制SA(Suppress-Advertisement)位,即在重启路由器的Hello PDU中设置抑制发布SA位,重启路由器的邻居将继续发布该邻接关系。
(5) (可选)配置T1定时器。
graceful-restart t1 seconds count count
缺省情况下,T1定时器的超时值为3秒,超时次数为10次。
(6) (可选)配置T2定时器。
graceful-restart t2 seconds
缺省情况下,T2定时器的超时值为60秒。
(7) (可选)配置T3定时器。
graceful-restart t3 seconds
缺省情况下,T3定时器的超时值为300秒。
GR特性存在一些缺陷,如主备倒换期间需要周边设备配合才能完成路由信息的恢复,在网络应用中有一定的限制;而且在主备倒换后IS-IS进程重新学习所有的路由,如果在主备倒换期间拓扑发生变化,删除的路由不能及时更新,容易造成黑洞路由。
NSR(Nonstop Routing,不间断路由)就是为了解决GR特性的一些缺陷和使用场景限制而实现的一种新特性。NSR将IS-IS链路状态信息从主进程备份到备进程,在发生主备倒换时不需要周边设备配合就可以完成链路状态的恢复和路由的重新生成。
IS-IS NSR与IS-IS GR具有如下区别,请根据实际情况选择合适的方式确保数据转发不中断:
· 对设备要求不同:IS-IS协议的主进程和备进程运行在不同的IRF成员设备上,因此要运行IS-IS NSR功能,必须进行IRF堆叠且IRF必须有两个或两个以上的成员设备。要运行IS-IS GR功能,可以不进行IRF堆叠或IRF可以只有一个成员设备。(集中式IRF设备)
· 对IS-IS邻居的要求不同:使用IS-IS NSR功能时,IS-IS邻居不会感知本地设备发生了IS-IS进程的异常重启或主备倒换等故障,不需要IS-IS邻居协助恢复IS-IS路由信息。IS-IS GR要求IS-IS邻居具有GR Helper能力,协助GR Restarter完成GR流程。
如果在设备上同时配置了IS-IS NSR和IS-IS GR功能,则二者的关系如下:
· IS-IS NSR功能优先级高于IS-IS GR功能,即IS-IS主进程中断时通过IS-IS NSR确保转发不中断,设备不会作为GR Restarter启动GR流程。
· IS-IS启动GR流程后,在GR Helper协助GR Restarter恢复重启前状态时,如果GR Helper发生了主备进程倒换,则即便GR Helper上配置了IS-IS NSR,也无法保证GR过程成功。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能IS-IS NSR功能。
non-stop-routing
IS-IS协议的NSR功能处于关闭状态。
各个进程的NSR功能是相互独立的,只对本进程生效。如果存在多个IS-IS进程,建议在各个进程下分别使能IS-IS NSR功能。
BFD(Bidirectional Forwarding Detection,双向转发检测)能够为IS-IS邻居之间的链路提供快速检测功能。当邻居之间的链路出现故障时,BFD能够快速检测到该故障,以加快IS-IS协议的收敛速度。关于BFD的介绍和基本功能配置,请参见“可靠性配置指导”中的“BFD”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 指定接口上使能BFD。
isis bfd enable
缺省情况下,IPv4 IS-IS的BFD功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 在指定接口上使能IPv6 IS-IS BFD。
isis ipv6 bfd enable
缺省情况下,IPv6 IS-IS的BFD功能处于关闭状态。
IS-IS FRR(Fast Reroute,快速重路由)使用链路状态数据库预先计算出备份路径,并将备份路径保存到FIB表中,当主用路径发生故障时,可以快速切换到备份路径,从而降低路由收敛所需时间。
当前支持的FRR技术包括LFA(Loop Free Alternate) FRR和Remote LFA(Remote Loop Free Alternate) FRR:
· LFA:以可提供备份链路的邻居为根节点,利用SPF算法计算出到目的节点的最短路径树。然后,按照LFA算法计算出一条开销最小且无环的备份链路。
· Remote LFA:根据保护路径计算PQ节点,并在源节点与PQ节点之间建立LSP形成备份路径保护。当主用链路发生故障时,流量自动切换到隧道备份路径,继续转发,从而提高网络可靠性。
IS-IS FRR流量保护类型分为:
· 链路保护:当需要保护的对象是经过特定链路的流量时,流量保护类型为链路保护。
· 节点保护:当需要保护的对象是经过特定设备的流量时,流量保护类型为节点保护。
节点保护优先级高于链路保护。
当IS-IS网络中的链路或某台路由器发生故障时,需要通过故障链路或故障路由器传输才能到达目的地的报文将会丢失,数据流量将会中断,直到IS-IS根据新的拓扑网络路由收敛完毕后,被中断的流量才能恢复正常的传输。
为了尽可能缩短网络故障导致的流量中断时间,网络管理员可以配置IS-IS快速重路由功能。
图1-13 IS-IS快速重路由功能示意图
如图1-13所示,通过在Router B上使能快速重路由功能,IS-IS将为路由计算或指定备份下一跳,当Router B检测到网络故障时,IS-IS会使用事先获取的备份下一跳替换失效下一跳,通过备份下一跳来指导报文的转发,从而大大缩短了流量中断时间。在使用备份下一跳指导报文转发的同时,IS-IS会根据变化后的网络拓扑重新计算最短路径,网络收敛完毕后,使用新计算出来的最优路由来指导报文转发。
网络管理员可以配置给所有IS-IS路由通过LFA(Loop Free Alternate)算法选取备份下一跳,也可以在路由策略中指定备份下一跳,为符合过滤条件的路由指定备份下一跳。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) (可选)禁止接口参与LFA计算。
isis fast-reroute lfa-backup exclude [ level-1 | level-2 ]
缺省情况下,接口参与LFA计算,能够被选为备份接口。
(4) 退回系统视图。
quit
(5) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(6) 配置IS-IS支持快速重路由功能(通过LFA算法选取备份下一跳信息)。
fast-reroute lfa [ ecmp-shared | level-1 | level-2 ]
缺省情况下,IS-IS支持快速重路由功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) (可选)禁止接口参与LFA计算。
isis fast-reroute lfa-backup exclude [ level-1 | level-2 ]
缺省情况下,接口参与LFA计算,能够被选为备份接口。
(4) 退回系统视图。
quit
(5) 进入IS-IS IPv4单播地址族视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv4 [ unicast ]
(6) 配置IS-IS支持快速重路由功能(通过路由策略指定备份下一跳)。
¡ 创建路由策略,并通过apply fast-reroute backup-interface命令在路由策略中指定备份下一跳。
apply fast-reroute backup-interface命令以及路由策略的相关配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
¡ 配置IS-IS支持快速重路由功能。
fast-reroute route-policy route-policy-name
缺省情况下,IPv4 IS-IS支持快速重路由功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能IS-IS协议中主用链路的BFD(Ctrl方式)检测功能。
isis primary-path-detect bfd ctrl
缺省情况下,IPv4 IS-IS协议中主用链路的BFD(Ctrl方式)检测功能处于关闭状态。
配置本功能后,可以加快IS-IS协议的收敛速度。使用control报文双向检测方式时,需要建立IS-IS邻居的两端设备均支持BFD配置。
(1) 进入系统视图。
system-view
(2) 配置BFD Echo报文源地址。
bfd echo-source-ip ip-address
缺省情况下,未配置BFD Echo报文源地址。
echo报文的源IP地址用户可以任意指定。建议配置echo报文的源IP地址不属于该设备任何一个接口所在网段。
本命令的详细情况请参见“可靠性命令参考”中的“BFD”。
(3) 进入接口视图。
interface interface-type interface-number
(4) 使能IS-IS协议中主用链路的BFD(Echo方式)检测功能。
isis primary-path-detect bfd echo
缺省情况下,IPv4 IS-IS协议中主用链路的BFD(Echo方式)检测功能处于关闭状态。
配置本功能后,可以加快IS-IS协议的收敛速度。使用echo报文单跳检测方式时,仅需要一端设备支持BFD配置。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) (可选)禁止接口参与LFA计算。
isis ipv6 fast-reroute lfa-backup exclude [ level-1 | level-2 ]
缺省情况下,接口参与LFA计算,能够被选为备份接口。
(4) 退回系统视图。
quit
(5) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(6) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(7) 配置IPv6 IS-IS支持快速重路由功能(通过LFA算法选取备份下一跳信息)。
fast-reroute lfa [ level-1 | level-2 ]
缺省情况下,IPv6 IS-IS支持快速重路由功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) (可选)禁止接口参与LFA计算。
isis ipv6 fast-reroute lfa-backup exclude [ level-1 | level-2 ]
缺省情况下,接口参与LFA计算,能够被选为备份接口。
(4) 退回系统视图。
quit
(5) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(6) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(7) 配置IPv6 IS-IS支持快速重路由功能(通过路由策略指定备份下一跳)。
¡ 创建路由策略,并通过apply ipv6 fast-reroute backup-interface命令在路由策略中指定备份下一跳。
apply ipv6 fast-reroute backup-interface命令以及路由策略的相关配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
¡ 配置IPv6 IS-IS支持快速重路由功能。
fast-reroute route-policy route-policy-name
缺省情况下,IPv6 IS-IS快速重路由功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能IPv6 IS-IS协议中主用链路的BFD检测功能。
isis ipv6 primary-path-detect bfd ctrl
配置本功能后,可以加快IPv6 IS-IS协议的收敛速度。使用control报文双向检测方式时,需要建立IPv6 IS-IS邻居的两端设备均支持BFD配置。
(1) 进入系统视图。
system-view
(2) 配置BFD Echo报文源地址。
bfd echo-source-ipv6 ip-address
缺省情况下,未配置BFD Echo报文源地址。
echo报文的源IPv6地址用户可以任意指定。建议配置echo报文的源IP地址不属于该设备任何一个接口所在网段。
本命令的详细情况请参见“可靠性命令参考”中的“BFD”。
(3) 进入接口视图。
interface interface-type interface-number
(4) 使能IPv6 IS-IS协议中主用链路的BFD检测功能。
isis ipv6 primary-path-detect bfd echo
缺省情况下,IPv6 IS-IS协议中主用链路的BFD检测功能(Echo方式)处于关闭状态。
配置本功能后,可以加IPv6 快IS-IS协议的收敛速度。使用echo报文单跳检测方式时,仅需要一端设备支持BFD配置。
在环形组网中,IS-IS LFA快速重路由无法计算出备份路径,不能满足可靠性要求,可以通过部署Remote LFA快速重路由解决该问题。
Remote LFA主要涉及以下概念:
· P空间:以保护链路(避免出现故障的链路)源端为根节点建立SPF树,所有从根节点不经过保护链路可达的节点集合称为P空间。
· 扩展P空间:以保护链路源端的所有邻居为根节点分别建立SPF树,所有从根节点不经过保护链路可达的节点集合称为扩展P空间。
· Q空间:以保护链路末端为根节点建立反向SPF树,所有从根节点不经过保护链路可达的节点集合称为Q空间。
· PQ节点:PQ节点是指既在扩展P空间又在Q空间的节点。在Remote LFA中,PQ节点会作为保护隧道的目的端。
如图1-14所示,链路中间的数字表示cost值。假设流量路径为PE 1->P 1->P 2->PE 2,为避免P 1、P 2之间的链路故障导致流量丢失,Remote LFA会计算出PQ节点P 4,并在P 1和PQ节点之间建立LDP隧道。当P 1检测到P 1、P 2之间的链路故障时,将报文封装为MPLS报文转发给P 4,P 4收到该报文后,去掉MPLS标签,重新查找IP路由表,将报文转发给下一跳,并最终到达目的地PE 2,实现了快速保护,避免流量丢失。
在图1-14中,PQ节点的计算过程为:
· 分别计算以所有P 1的邻居(不包括通过保护链路的邻居)为根的SPF树,每棵SPF树中从根节点不经过P 1->P 2链路可达的节点为P空间,所有邻居的P空间集合得到扩展P空间{PE 1,P 1,P 3,P 4}。
· 计算以P 2为根节点的反向SPF树,得到Q空间{PE 2,P 4}。
· 通过扩展P空间和Q空间得到既在扩展P空间又在Q空间的节点,即PQ节点{P 4}。
图1-14 Remote LFA典型组网图
只有开启了相应Level的IS-IS LFA快速重路由功能,Remote LFA快速重路由功能才可以在指定Level生效,否则配置不生效。
在参与MPLS转发的各个节点和接口上开启MPLS和MPLS LDP能力,配置方法请参见“MPLS配置指导”中的“MPLS基础”和“LDP”。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv4单播地址族视图。
address-family ipv4 [ unicast ]
(4) 开启IS-IS的Remote LFA快速重路由功能。
fast-reroute remote-lfa tunnel ldp [ level-1 | level-2 ]
缺省情况下,IS-IS的Remote LFA快速重路由功能处于关闭状态。
(5) (可选)配置Remote LFA源节点到指定PQ节点的最大开销值。
fast-reroute remote-lfa maximum-cost cost [ level-1 | level-2 ]
缺省情况下,Remote LFA源节点到指定PQ节点的最大开销值为16777215。
(6) (可选)配置过滤Remote LFA PQ节点的地址前缀列表。
fast-reroute remote-lfa prefix-list prefix-list-name [ level-1 | level-2 ]
缺省情况下,所有PQ节点都可以成为Remote LFA的备份下一跳。
Remote LFA通过计算得到PQ节点集,但并不是集合中的所有节点都适合成为PQ节点。通过过滤掉不符合条件的节点,选取符合条件的PQ节点,从而达到优化网络的目的。
(7) (可选)关闭接口的IS-IS Remote LFA快速重路由功能。
a. 退回系统视图。
quit
b. 进入接口视图。
interface interface-type interface-number
c. 关闭接口的IS-IS Remote LFA快速重路由功能。
isis fast-reroute remote-lfa disable [ level-1 | level-2 ]
缺省情况下,接口的IS-IS Remote LFA快速重路由功能处于开启状态。
IS-IS FRR备份路径选择方式包括如下几种:
· 节点保护:选择网络中特定节点转发流量。
· 最小路径开销:选择网络中链路开销最小的链路转发流量。
如图1-15所示,主路径为Device A->Device D->Device E->Device F,备份路径有Device A->Device C->Device E->Device F和Device A->Device B->Device E->Device F两种选择:
· 当主要求备份路径通过特定网络节点转发流量时,例如由Device C转发流量,则选择节点保护方式,备份路优选为Device A->Device C->Device E->Device F。
· 当主要求备份路径通过链路开销最小链路转发流量时,则选择最小路径开销方式,备份路优选为Device A->Device B->Device E->Device F。
图1-15 IS-IS FRR备份路径选择示意图
优先采用节点保护方式计算备份路径时,如果不能计算出备份路径,则再通过最小开销路径方式计算备份路径。如果仍不能计算备份路径,则主链路故障后无法保证可靠性。
优先采用最小开销路径方式计算备份路径时,如果不能计算出备份路径,则不会再通过节点保护方式计算备份路径,主链路故障后无法保证可靠性。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv4地址族视图。
address-family ipv4 [ unicast ]
(4) 配置快速重路由备份路径优选方案的优先级。
fast-reroute tiebreaker { lowest-cost | node-protecting } preference preference [ level-1 | level-2 ]
缺省情况下,最小开销路径优选方案的优先级为20,节点保护优选方案的优先级为40。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 配置快速重路由备份路径优选方案的优先级。
fast-reroute tiebreaker { lowest-cost | node-protecting } preference preference [ level-1 | level-2 ]
缺省情况下,最小开销路径优选方案的优先级为20,节点保护优选方案的优先级为40。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IS-IS的运行情况,用户可以通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除IS-IS进程所有的数据结构信息。
表1-3 IPv4 IS-IS显示和维护
操作 |
命令 |
显示IS-IS的进程信息 |
display isis [ process-id ] |
显示IS-IS GR日志信息 |
display isis event-log graceful-restart slot slot-number |
显示IS-IS接收或发送Hello报文的日志信息 |
display isis event-log hello { peer-change | received-abnormal | received-dropped | sent-abnormal | sent-failed } [ process-id ] |
显示IS-IS LSP日志信息 |
display isis event-log lsp { purged | refreshed } [ level-1 | level-2 ] [ process-id ] |
显示IS-IS NSR日志信息 |
display isis event-log non-stop-routing slot slot-number |
显示邻居状态改变的日志信息 |
display isis event-log peer [ process-id ] |
显示IS-IS的IPv4路由计算日志信息 |
display isis event-log spf [ ipv4 ] [ [ level-1 | level-2 ] | verbose ] * [ process-id ] |
显示IS-IS协议的GR状态 |
display isis graceful-restart status [ level-1 | level-2 ] [ process-id ] |
显示IS-IS的接口信息 |
display isis interface [ [ interface-type interface-number ] [ verbose ] | statistics ] [ process-id ] |
显示接口最近发送Hello报文的信息 |
display isis interface [ interface-type interface-number ] hello-sent [ process-id ] |
显示IS-IS的链路状态数据库信息 |
display isis lsdb [ [ level-1 | level-2 ] | local | lsp-id lspid | [ lsp-name lspname ] | verbose ] * [ process-id ] |
显示IS-IS链路状态数据库的统计信息 |
display isis lsdb statistics [ level-1 | level-2 ] [ process-id ] |
显示系统ID到主机名称的映射关系表 |
display isis name-table [ process-id ] |
显示IS-IS的NSR状态 |
display isis non-stop-routing status |
显示IS-IS报文的统计信息 |
display isis packet { csnp | hello | lsp | psnp } [ verbose ] [ interface-type interface-number ] [ process-id ] |
显示IS-IS的邻居信息 |
display isis peer [ statistics | verbose ] [ process-id ] |
显示从邻居路由器接收Hello报文的信息 |
display isis peer hello-received [ process-id ] |
显示IS-IS引入的IPv4路由信息 |
display isis redistribute [ ipv4 [ ip-address mask-lengh ] ] [ level-1 | level-2 ] [ process-id ] |
显示IS-IS的IPv4路由信息 |
display isis route [ ipv4 [ ip-address mask-length ] ] [ [ level-1 | level-2 ] | verbose ] * [ process-id ] |
显示IS-IS的IPv4拓扑信息 |
display isis spf-tree [ ipv4 ] [ [ level-1 | level-2 ] | [ source-id source-id | verbose ] ] * [ process-id ] |
显示IS-IS的IPv4统计信息 |
display isis statistics [ ipv4 ] [ level-1 | level-1-2 | level-2 ] [ process-id ] |
显示IS-IS邻居关系断开的故障检测信息 |
display isis troubleshooting |
显示OSI连接的信息 |
display osi [ slot slot-number ] |
显示OSI连接的报文统计信息 |
display osi statistics [ slot slot-number ] |
清除IS-IS进程所有的数据结构信息 |
reset isis all [ process-id ] [ graceful-restart ] |
清除IS-IS日志信息 |
reset isis event-log { hello { peer-change | received-abnormal | received-dropped | sent-abnormal | sent-failed } | peer } [ process-id ] |
清除IS-IS GR的日志信息 |
reset isis event-log graceful-restart slot slot-number |
清除IS-IS LSP日志信息 |
reset isis event-log lsp { purged | refreshed } [ process-id ] |
清除IS-IS NSR的日志信息 |
reset isis event-log non-stop-routing slot slot-number |
清除IS-IS路由计算日志信息 |
reset isis event-log spf [ process-id ] |
清除IS-IS报文的统计信息 |
reset isis packet [ csnp | hello | lsp | psnp ] by-interface [ interface-type interface-number ] [ process-id ] |
清除IS-IS指定邻居的数据结构信息 |
reset isis peer system-id [ process-id ] |
清除IS-IS邻居关系断开的故障检测信息 |
reset isis troubleshooting |
清除OSI连接的报文统计信息 |
reset osi statistics |
表1-4 IPv6 IS-IS显示和维护
操作 |
命令 |
显示IS-IS的进程信息 |
display isis [ process-id ] |
显示IS-IS接收或发送Hello报文的日志信息 |
display isis event-log hello { peer-change | received-abnormal | received-dropped | sent-abnormal | sent-failed } [ process-id ] |
显示IS-IS LSP日志信息 |
display isis event-log lsp { purged | refreshed } [ level-1 | level-2 ] [ process-id ] |
显示邻居状态改变的日志信息 |
display isis event-log peer [ process-id ] |
显示IS-IS的IPv6路由计算日志信息 |
display isis event-log spf ipv6 [ [ level-1 | level-2 ] | verbose ] * [ process-id ] |
显示IS-IS的接口信息 |
display isis interface [ [ interface-type interface-number ] [ verbose ] | statistics ] [ process-id ] |
显示接口最近发送Hello报文的信息 |
display isis interface [ interface-type interface-number ] hello-sent [ process-id ] |
显示IS-IS的链路状态数据库信息 |
display isis lsdb [ [ level-1 | level-2 ] | local | lsp-id lspid | [ lsp-name lspname ] | verbose ] * [ process-id ] |
显示IS-IS链路状态数据库的统计信息 |
display isis lsdb statistics [ level-1 | level-2 ] [ process-id ] |
显示系统ID到主机名称的映射关系表 |
display isis name-table [ process-id ] |
显示IS-IS报文的统计信息 |
display isis packet { csnp | hello | lsp | psnp } [ verbose ] [ interface-type interface-number ] [ process-id ] |
显示IS-IS的邻居信息 |
display isis peer [ statistics | verbose ] [ process-id ] |
显示从邻居路由器接收Hello报文的信息 |
display isis peer hello-received [ process-id ] |
显示IS-IS引入的IPv6路由信息 |
display isis redistribute ipv6 [ ipv6-address mask-length ] [ level-1 | level-2 ] [ process-id ] |
显示IS-IS的IPv6路由信息 |
display isis route ipv6 [ ipv6-address ] [ [ level-1 | level-2 ] | verbose ] * [ process-id ] |
显示IS-IS的IPv6拓扑信息 |
display isis spf-tree ipv6 [ [ level-1 | level-2 ] | [ source-id source-id | verbose ] ] * [ process-id ] |
显示IS-IS的IPv6统计信息 |
display isis statistics ipv6 [ level-1 | level-1-2 | level-2 ] [ process-id ] |
显示IS-IS邻居关系断开的故障检测信息 |
display isis troubleshooting |
显示OSI连接的信息 |
display osi [ slot slot-number ] |
显示OSI连接的报文统计信息 |
display osi statistics [ slot slot-number ] |
清除IS-IS进程所有的数据结构信息 |
reset isis all [ process-id ] [ graceful-restart ] |
清除IS-IS日志信息 |
reset isis event-log { hello { peer-change | received-abnormal | received-dropped | sent-abnormal | sent-failed } | peer } [ process-id ] |
清除IS-IS LSP日志信息 |
reset isis event-log lsp { purged | refreshed } [ process-id ] |
清除IS-IS路由计算日志信息 |
reset isis event-log spf [ process-id ] |
清除IS-IS报文的统计信息 |
reset isis packet [ csnp | hello | lsp | psnp ] by-interface [ interface-type interface-number ] [ process-id ] |
清除IS-IS指定邻居的数据结构信息 |
reset isis peer system-id [ process-id ] |
清除IS-IS邻居关系断开的故障检测信息 |
reset isis troubleshooting |
清除OSI连接的报文统计信息 |
reset osi statistics |
如图1-16所示,Switch A、Switch B、Switch C和Switch D属于同一自治系统,要求它们之间通过IS-IS协议达到IP网络互连的目的。
Switch A和Switch B为Level-1交换机,Switch D为Level-2交换机,Switch C作为Level-1-2交换机将两个区域相连。Switch A、Switch B和Switch C的区域号为10,Switch D的区域号为20。
图1-16 IS-IS基本功能配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置IS-IS
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] is-level level-1
[SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[SwitchA-isis-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] isis enable 1
[SwitchA-Vlan-interface100] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] is-level level-1
[SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[SwitchB-isis-1] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] isis enable 1
[SwitchB-Vlan-interface200] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] isis 1
[SwitchC-isis-1] network-entity 10.0000.0000.0003.00
[SwitchC-isis-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] isis enable 1
[SwitchC-Vlan-interface100] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] isis enable 1
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] isis enable 1
[SwitchC-Vlan-interface300] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] isis 1
[SwitchD-isis-1] is-level level-2
[SwitchD-isis-1] network-entity 20.0000.0000.0004.00
[SwitchD-isis-1] quit
[SwitchD] interface vlan-interface 100
[SwitchD-Vlan-interface100] isis enable 1
[SwitchD-Vlan-interface100] quit
[SwitchD] interface vlan-interface 300
[SwitchD-Vlan-interface300] isis enable 1
[SwitchD-Vlan-interface300] quit
# 显示各交换机的IS-IS LSDB信息,查看LSP是否完整。
[SwitchA] display isis lsdb
Database information for IS-IS(1)
---------------------------------
Level-1 Link State Database
---------------------------
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
--------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000004 0xdf5e 1096 68 0/0/0
0000.0000.0002.00-00 0x00000004 0xee4d 1102 68 0/0/0
0000.0000.0002.01-00 0x00000001 0xdaaf 1102 55 0/0/0
0000.0000.0003.00-00 0x00000009 0xcaa3 1161 111 1/0/0
0000.0000.0003.01-00 0x00000001 0xadda 1112 55 0/0/0
*-Self LSP, +-Self LSP(Extended), ATT-Attached, P-Partition, OL-Overload
[SwitchB] display isis lsdb
Database information for IS-IS(1)
---------------------------------
Level-1 Link State Database
---------------------------
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
--------------------------------------------------------------------------
0000.0000.0001.00-00 0x00000006 0xdb60 988 68 0/0/0
0000.0000.0002.00-00* 0x00000008 0xe651 1189 68 0/0/0
0000.0000.0002.01-00* 0x00000005 0xd2b3 1188 55 0/0/0
0000.0000.0003.00-00 0x00000014 0x194a 1190 111 1/0/0
0000.0000.0003.01-00 0x00000002 0xabdb 995 55 0/0/0
*-Self LSP, +-Self LSP(Extended), ATT-Attached, P-Partition, OL-Overload
[SwitchC] display isis lsdb
Database information for IS-IS(1)
---------------------------------
Level-1 Link State Database
---------------------------
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
--------------------------------------------------------------------------
0000.0000.0001.00-00 0x00000006 0xdb60 847 68 0/0/0
0000.0000.0002.00-00 0x00000008 0xe651 1053 68 0/0/0
0000.0000.0002.01-00 0x00000005 0xd2b3 1052 55 0/0/0
0000.0000.0003.00-00* 0x00000014 0x194a 1051 111 1/0/0
0000.0000.0003.01-00* 0x00000002 0xabdb 854 55 0/0/0
*-Self LSP, +-Self LSP(Extended), ATT-Attached, P-Partition, OL-Overload
Level-2 Link State Database
---------------------------
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
--------------------------------------------------------------------------
0000.0000.0003.00-00* 0x00000012 0xc93c 842 100 0/0/0
0000.0000.0004.00-00 0x00000026 0x331 1173 84 0/0/0
0000.0000.0004.01-00 0x00000001 0xee95 668 55 0/0/0
*-Self LSP, +-Self LSP(Extended), ATT-Attached, P-Partition, OL-Overload
[SwitchD] display isis lsdb
Database information for IS-IS(1)
---------------------------------
Level-2 Link State Database
---------------------------
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0003.00-00 0x00000013 0xc73d 1003 100 0/0/0
0000.0000.0004.00-00* 0x0000003c 0xd647 1194 84 0/0/0
0000.0000.0004.01-00* 0x00000002 0xec96 1007 55 0/0/0
*-Self LSP, +-Self LSP(Extended), ATT-Attached, P-Partition, OL-Overload
# 显示各交换机的IS-IS路由信息。Level-1交换机的路由表中应该有一条缺省路由,且下一跳为Level-1-2交换机,Level-2交换机的路由表中应该有所有Level-1和Level-2的路由。
[SwitchA] display isis route
Route information for IS-IS(1)
------------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.1.1.0/24 10 NULL Vlan100 Direct D/L/-
10.1.2.0/24 20 NULL Vlan100 10.1.1.1 R/-/-
192.168.0.0/24 20 NULL Vlan100 10.1.1.1 R/-/-
0.0.0.0/0 10 NULL Vlan100 10.1.1.1 R/-/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
[SwitchC] display isis route
Route information for IS-IS(1)
------------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
192.168.0.0/24 10 NULL Vlan300 Direct D/L/-
10.1.1.0/24 10 NULL Vlan100 Direct D/L/-
10.1.2.0/24 10 NULL Vlan200 Direct D/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
192.168.0.0/24 10 NULL D/L/-
10.1.1.0/24 10 NULL D/L/-
10.1.2.0/24 10 NULL D/L/-
172.16.0.0/16 20 NULL Vlan300 192.168.0.2 R/-/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
[SwitchD] display isis route
Route information for IS-IS(1)
------------------------------
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
192.168.0.0/24 10 NULL Vlan300 Direct D/L/-
10.1.1.0/24 20 NULL Vlan300 192.168.0.1 R/-/-
10.1.2.0/24 20 NULL Vlan300 192.168.0.1 R/-/-
172.16.0.0/16 10 NULL Vlan100 Direct D/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
如图1-17所示,Switch A、Switch B、Switch C和Switch D都运行IS-IS路由协议以实现互连,它们属于同一区域10,网络类型为广播网(以太网)。
Switch A和Switch B是Level-1-2交换机,Switch C为Level-1交换机,Switch D为Level-2交换机。要求通过改变接口的DIS优先级,将Switch A配置为Level-1-2的DIS。
图1-17 IS-IS的DIS选择配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置IS-IS
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[SwitchA-isis-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] isis enable 1
[SwitchA-Vlan-interface100] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[SwitchB-isis-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] isis enable 1
[SwitchB-Vlan-interface100] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] isis 1
[SwitchC-isis-1] network-entity 10.0000.0000.0003.00
[SwitchC-isis-1] is-level level-1
[SwitchC-isis-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] isis enable 1
[SwitchC-Vlan-interface100] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] isis 1
[SwitchD-isis-1] network-entity 10.0000.0000.0004.00
[SwitchD-isis-1] is-level level-2
[SwitchD-isis-1] quit
[SwitchD] interface vlan-interface 100
[SwitchD-Vlan-interface100] isis enable 1
[SwitchD-Vlan-interface100] quit
# 查看Switch A的IS-IS邻居信息。
[SwitchA] display isis peer
Peer information for IS-IS(1)
----------------------------
System ID: 0000.0000.0002
Interface: Vlan100 Circuit Id: 0000.0000.0003.01
State: Up HoldTime: 21s Type: L1(L1L2) PRI: 64
System ID: 0000.0000.0003
Interface: Vlan100 Circuit Id: 0000.0000.0003.01
State: Up HoldTime: 27s Type: L1 PRI: 64
System ID: 0000.0000.0002
Interface: Vlan100 Circuit Id: 0000.0000.0004.01
State: Up HoldTime: 28s Type: L2(L1L2) PRI: 64
System ID: 0000.0000.0004
Interface: Vlan100 Circuit Id: 0000.0000.0004.01
State: Up HoldTime: 30s Type: L2 PRI: 64
# 显示Switch A的IS-IS接口信息。
[SwitchA] display isis interface
Interface information for IS-IS(1)
----------------------------------
Interface: Vlan-interface100
Index IPv4 state IPv6 state Circuit ID MTU Type DIS
00001 Up Down 1 1497 L1/L2 No/No
# 显示Switch C的IS-IS接口信息。
[SwitchC] display isis interface
Interface information for IS-IS(1)
----------------------------------
Interface: Vlan-interface100
Index IPv4 state IPv6 state Circuit ID MTU Type DIS
00001 Up Down 1 1497 L1/L2 Yes/No
# 显示Switch D的IS-IS接口信息。
[SwitchD] display isis interface
Interface information for IS-IS(1)
----------------------------------
Interface: Vlan-interface100
Index IPv4 state IPv6 state Circuit ID MTU Type DIS
00001 Up Down 1 1497 L1/L2 No/Yes
从接口信息中可以看到,在使用缺省DIS优先级的情况下,Switch C为Level-1的DIS,Switch D为Level-2的DIS。Level-1和Level-2的伪节点分别是0000.0000.0003.01和0000.0000.0004.01。
# 配置Switch A的DIS优先级。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] isis dis-priority 100
[SwitchA-Vlan-interface100] quit
# 查看Switch A的IS-IS邻居信息。
[SwitchA] display isis peer
Peer information for IS-IS(1)
----------------------------
System ID: 0000.0000.0002
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 21s Type: L1(L1L2) PRI: 64
System ID: 0000.0000.0003
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 27s Type: L1 PRI: 64
System ID: 0000.0000.0002
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 28s Type: L2(L1L2) PRI: 64
System ID: 0000.0000.0004
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 30s Type: L2 PRI: 64
# 查看Switch A的IS-IS接口信息。
[SwitchA] display isis interface
Interface information for IS-IS(1)
----------------------------------
Interface: Vlan-interface100
Index IPv4 state IPv6 state Circuit ID MTU Type DIS
00001 Up Down 1 1497 L1/L2 Yes/Yes
从上述信息中可以看到,在改变IS-IS接口的DIS优先级后,Switch A立即成为Level-1-2的DR(DIS),且伪节点是0000.0000.0001.01。
# 显示Switch C的IS-IS邻居和接口信息。
[SwitchC] display isis peer
Peer information for IS-IS(1)
----------------------------
System ID: 0000.0000.0002
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 25s Type: L1 PRI: 64
System ID: 0000.0000.0001
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 7s Type: L1 PRI: 100
[SwitchC] display isis interface
Interface information for IS-IS(1)
----------------------------------
Interface: Vlan-interface100
Index IPv4 state IPv6 state Circuit ID MTU Type DIS
00001 Up Down 1 1497 L1/L2 No/No
# 显示Switch D的IS-IS邻居和接口信息。
[SwitchD] display isis peer
Peer information for IS-IS(1)
----------------------------
System ID: 0000.0000.0001
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 9s Type: L2 PRI: 100
System ID: 0000.0000.0002
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 28s Type: L2 PRI: 64
[SwitchD] display isis interface
Interface information for IS-IS(1)
----------------------------------
Interface: Vlan-interface100
Index IPv4 state IPv6 state Circuit ID MTU Type DIS
00001 Up Down 1 1497 L1/L2 No/No
如图1-18所示:
· Switch A、Switch B、Switch C和Switch D属于同一自治系统,要求它们之间通过IS-IS协议达到IP网络互连的目的。
· Switch A和Switch B为Level-1路由器,Switch D为Level-2路由器,Switch C作为Level-1-2路由器将两个区域相连。Switch A、Switch B和Switch C的区域号为10,Switch D的区域号为20。
· 在Switch D的IS-IS进程中引入RIP路由。
图1-18 IS-IS引入外部路由配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置IS-IS基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] is-level level-1
[SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[SwitchA-isis-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] isis enable 1
[SwitchA-Vlan-interface100] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] is-level level-1
[SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[SwitchB-isis-1] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] isis enable 1
[SwitchB-Vlan-interface200] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] isis 1
[SwitchC-isis-1] network-entity 10.0000.0000.0003.00
[SwitchC-isis-1] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] isis enable 1
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] isis enable 1
[SwitchC-Vlan-interface100] quit
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] isis enable 1
[SwitchC-Vlan-interface300] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] isis 1
[SwitchD-isis-1] is-level level-2
[SwitchD-isis-1] network-entity 20.0000.0000.0004.00
[SwitchD-isis-1] quit
[SwitchD] interface interface vlan-interface 300
[SwitchD-Vlan-interface300] isis enable 1
[SwitchD-Vlan-interface300] quit
[SwitchD] interface interface vlan-interface 400
[SwitchD-Vlan-interface400] isis enable 1
[SwitchD-Vlan-interface400] quit
# 显示各路由器的IS-IS路由信息。
[SwitchA] display isis route
Route information for IS-IS(1)
------------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.1.1.0/24 10 NULL VLAN100 Direct D/L/-
10.1.2.0/24 20 NULL VLAN100 10.1.1.1 R/-/-
192.168.0.0/24 20 NULL VLAN100 10.1.1.1 R/-/-
0.0.0.0/0 10 NULL VLAN100 10.1.1.1 R/-/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
[SwitchC] display isis route
Route information for IS-IS(1)
------------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.1.1.0/24 10 NULL VLAN100 Direct D/L/-
10.1.2.0/24 10 NULL VLAN200 Direct D/L/-
192.168.0.0/24 10 NULL VLAN300 Direct D/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.1.1.0/24 10 NULL D/L/-
10.1.2.0/24 10 NULL D/L/-
192.168.0.0/24 10 NULL D/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
[SwitchD] display isis route
Route information for IS-IS(1)
------------------------------
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
192.168.0.0/24 10 NULL VLAN300 Direct D/L/-
10.1.1.0/24 20 NULL VLAN300 192.168.0.1 R/-/-
10.1.2.0/24 20 NULL VLAN300 192.168.0.1 R/-/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
(3) 在Switch D和Switch E之间运行RIPv2,在Switch D上配置IS-IS进程引入RIP路由。
# 在Switch D上配置RIPv2。
[SwitchD] rip 1
[SwitchD-rip-1] network 10.0.0.0
[SwitchD-rip-1] version 2
[SwitchD-rip-1] undo summary
# 在Switch E上配置RIPv2。
[SwitchE] rip 1
[SwitchE-rip-1] network 10.0.0.0
[SwitchE-rip-1] version 2
[SwitchE-rip-1] undo summary
[SwitchE-rip-1] quit
# 在Switch D上配置IS-IS进程引入RIP进程的路由。
[SwitchD-rip-1] quit
[SwitchD] isis 1
[SwitchD–isis-1] address-family ipv4
[SwitchD–isis-1-ipv4] import-route rip level-2
[SwitchD–isis-1-ipv4] quit
[SwitchD–isis-1] quit
# 显示Switch C的IS-IS路由信息。
[SwitchC] display isis route
Route information for IS-IS(1)
------------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.1.1.0/24 10 NULL VLAN100 Direct D/L/-
10.1.2.0/24 10 NULL VLAN200 Direct D/L/-
192.168.0.0/24 10 NULL VLAN300 Direct D/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.1.1.0/24 10 NULL D/L/-
10.1.2.0/24 10 NULL D/L/-
192.168.0.0/24 10 NULL D/L/-
10.1.4.0/24 20 NULL VLAN300 192.168.0.2 R/L/-
10.1.5.0/24 10 0 VLAN300 192.168.0.2 R/L/-
10.1.6.0/24 10 0 VLAN300 192.168.0.2 R/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
如图1-19所示,Switch A、Switch B、Switch C和Switch D属于同一路由域,要求它们之间通过IS-IS协议达到IP网络互连的目的。
其中,Switch A、Switch B和Switch C属于同一个区域,区域号为10,Switch D属于另外一个区域,区域号为20。
在区域10内配置区域验证,防止不可信任的路由信息加入到区域10的LSDB中;在Switch C和Switch D上配置路由域验证,防止将不可信的路由信息注入当前路由域;分别在Switch A、Switch B、Switch C和Switch D上配置邻居关系验证。
图1-19 IS-IS验证配置举例图
(1) 配置各接口的IP地址(略)
(2) 配置IS-IS基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[SwitchA-isis-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] isis enable 1
[SwitchA-Vlan-interface100] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[SwitchB-isis-1] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] isis enable 1
[RouterB--Vlan-interface200] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] isis 1
[SwitchC-isis-1] network-entity 10.0000.0000.0003.00
[SwitchC-isis-1] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] isis enable 1
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] isis enable 1
[SwitchC-Vlan-interface300] quit
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] isis enable 1
[SwitchC-Vlan-interface300] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] isis 1
[SwitchD-isis-1] network-entity 20.0000.0000.0001.00
[SwitchD-isis-1] quit
[SwitchD] interface vlan-interface 300
[SwitchD-Vlan-interface300] isis enable 1
[SwitchD-Vlan-interface300] quit
(3) 在Switch A、Switch B、Switch C和Switch D之间建立邻居关系验证
# 分别在Switch A的Vlan-interface100、Switch C的Vlan-interface100配置邻居关系验证,验证方式为MD5明文,验证密钥为“eRg”。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] isis authentication-mode md5 plain eRg
[SwitchA-Vlan-interface100] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] isis authentication-mode md5 plain eRg
[SwitchC-Vlan-interface100] quit
# 分别在Switch B的Vlan-interface200、Switch C的Vlan-interface200上配置邻居关系验证,验证方式为MD5明文,验证密钥为“t5Hr”。
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] isis authentication-mode md5 plain t5Hr
[SwitchB-Vlan-interface200] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] isis authentication-mode md5 plain t5Hr
[SwitchC-Vlan-interface200] quit
# 分别在Switch C的Vlan-interface300、Switch D的Vlan-interface300配置邻居关系验证,验证方式为MD5明文,验证密钥为“hSec”。
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] isis authentication-mode md5 plain hSec
[SwitchC-Vlan-interface300] quit
[SwitchD] interface vlan-interface 300
[SwitchD-Vlan-interface300] isis authentication-mode md5 plain hSec
[SwitchD-Vlan-interface300] quit
(4) 在Switch A、Switch B和Switch C上配置区域验证,验证方式为MD5明文验证,验证密钥为“10Sec”。
[SwitchA] isis 1
[SwitchA-isis-1] area-authentication-mode md5 plain 10Sec
[SwitchA-isis-1] quit
[SwitchB] isis 1
[SwitchB-isis-1] area-authentication-mode md5 plain 10Sec
[SwitchB-isis-1] quit
[SwitchC] isis 1
[SwitchC-isis-1] area-authentication-mode md5 plain 10Sec
[SwitchC-isis-1] quit
(5) 在Switch C和Switch D上配置路由域验证,验证方式为MD5明文验证,验证密钥为“1020Sec”。
[SwitchC] isis 1
[SwitchC-isis-1] domain-authentication-mode md5 plain 1020Sec
[SwitchC-isis-1] quit
[SwitchD] isis 1
[SwitchD-isis-1] domain-authentication-mode md5 plain 1020Sec
如图1-20所示,Switch A、Switch B和Switch C属于同一域。这三台交换机都运行IS-IS协议以实现路由互连。
图1-20 IS-IS GR配置组网图
(1) 配置各交换机接口的IP地址和IS-IS协议
请按照图1-20配置各接口的IP地址和子网掩码,具体配置过程略。
配置各交换机之间采用IS-IS协议进行互连,确保Switch A、Switch B和Switch C之间能够在网络层互通,并且各交换机之间能够借助IS-IS协议实现动态路由更新,具体配置过程略。
(2) 配置IS-IS GR
# 使能Switch A的IS-IS协议的GR能力。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] graceful-restart
[SwitchA-isis-1] quit
[SwitchA] quit
# 重启Switch A的IS-IS进程。
<SwitchA> reset isis all 1 graceful-restart
Reset IS-IS process? [Y/N]:y
# 查看Switch A上IS-IS协议的GR状态。
<SwitchA> display isis graceful-restart status
Restart information for IS-IS(1)
--------------------------------
Restart status: COMPLETE
Restart phase: Finish
Restart t1: 3, count 10; Restart t2: 60; Restart t3: 300
SA Bit: supported
Level-1 restart information
---------------------------
Total number of interfaces: 1
Number of waiting LSPs: 0
Level-2 restart information
---------------------------
Total number of interfaces: 1
Number of waiting LSPs: 0
如图1-21所示,Switch S、Switch A、Switch B属于同一IS-IS区域,通过IS-IS协议实现网络互连。要求对Switch S进行主备倒换时,Switch A和Switch B到Switch S的邻居没有中断,Switch A到Switch B的流量没有中断。
图1-21 IS-IS NSR配置组网图
(1) 配置各路由器接口的IP地址和IS-IS协议
请按照图1-21配置各接口的IP地址和子网掩码,具体配置过程略。
配置各路由器之间采用IS-IS协议进行互连,确保Switch S、Switch A和Switch B之间能够在网络层互通,并且各路由器之间能够借助IS-IS协议实现动态路由更新。具体配置过程略。
(2) 配置IS-IS NSR
# 使能Switch S的IS-IS NSR功能。
<SwitchS> system-view
[SwitchS] isis 1
[SwitchS-isis-1] non-stop-routing
[SwitchS-isis-1] quit
# Switch S进行主备倒换。
[SwitchS] placement reoptimize
Predicted changes to the placement
Service Group(instance name) Cur location New location
----------------------------------------------------------------------------
rib 0/0 0/0
staticroute 0/0 0/0
rib6 0/0 0/0
staticroute6 0/0 0/0
isis 0/0 1/0
Continue? [y/n]:y
Re-optimization of the placement start. You will be notified on completion.
Re-optimization of the placement complete. Use 'display placement' to view the new placement.
# 查看Switch A上IS-IS协议的邻居和路由。
<SwitchA> display isis peer
Peer information for IS-IS(1)
----------------------------
System ID: 0000.0000.0001
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 25s Type: L1(L1L2) PRI: 64
System ID: 0000.0000.0001
Interface: Vlan100 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 27s Type: L2(L1L2) PRI: 64
<SwitchA> display isis route
Route information for IS-IS(1)
-----------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
12.12.12.0/24 10 NULL vlan100 Direct D/L/-
22.22.22.22/32 10 NULL Loop0 Direct D/-/-
14.14.14.0/32 10 NULL vlan100 12.12.12.2 R/L/-
44.44.44.44/32 10 NULL vlan100 12.12.12.2 R/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
12.12.12.0/24 10 NULL vlan100 Direct D/L/-
22.22.22.22/32 10 NULL Loop0 Direct D/-/-
14.14.14.0/32 10 NULL
44.44.44.44/32 10 NULL
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
# 查看Switch B上IS-IS协议的邻居和路由。
<SwitchB> display isis peer
Peer information for IS-IS(1)
----------------------------
System ID: 0000.0000.0001
Interface: Vlan200 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 25s Type: L1(L1L2) PRI: 64
System ID: 0000.0000.0001
Interface: Vlan200 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 27s Type: L2(L1L2) PRI: 64
<SwitchB> display isis route
Route information for IS-IS(1)
-----------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
14.14.14.0/24 10 NULL vlan200 Direct D/L/-
44.44.44.44/32 10 NULL Loop0 Direct D/-/-
12.12.12.0/32 10 NULL vlan200 14.14.14.4 R/L/-
22.22.22.22/32 10 NULL vlan200 14.14.14.4 R/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
14.14.14.0/24 10 NULL vlan200 Direct D/L/-
44.44.44.44/32 10 NULL Loop0 Direct D/-/-
12.12.12.0/32 10 NULL
22.22.22.22/32 10 NULL
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
通过上面信息可以看出Switch A和Switch B的邻居和路由信息保持不变,即NSR特性使周边设备无法感知Switch S的主备倒换。
· Switch A、Switch B和Switch C上运行IS-IS,网络层相互可达。
· 当Switch A和Switch B通过L2 Switch通信的链路出现故障时BFD能够快速感知通告IS-IS协议,并且切换到Switch C进行通信。
图1-22 IS-IS与BFD联动配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int10 |
10.1.0.102/24 |
Switch B |
Vlan-int10 |
10.1.0.100/24 |
|
Vlan-int11 |
11.1.1.1/24 |
|
Vlan-int13 |
13.1.1.1/24 |
|
Loop0 |
121.1.1.1/32 |
|
Loop0 |
120.1.1.1/32 |
Switch C |
Vlan-int11 |
11.1.1.2/24 |
|
|
|
|
Vlan-int13 |
13.1.1.2/24 |
|
|
|
(1) 配置各接口的IP地址(略)
(2) 配置IS-IS基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis
[SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[SwitchA-isis-1] quit
[SwitchA] interface loopback 0
[SwitchA-LoopBack0] isis enable
[SwitchA-LoopBack0] quit
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] isis enable
[SwitchA-Vlan-interface10] quit
[SwitchA] interface vlan-interface 11
[SwitchA-Vlan-interface11] isis enable
[SwitchA-Vlan-interface11] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis
[SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[SwitchB-isis-1] quit
[SwitchB] interface loopback 0
[SwitchB-LoopBack0] isis enable
[SwitchB-LoopBack0] quit
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] isis enable
[SwitchB-Vlan-interface10] quit
[SwitchB] interface vlan-interface 13
[SwitchB-Vlan-interface13] isis enable
[SwitchB-Vlan-interface13] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] isis
[SwitchC-isis-1] network-entity 10.0000.0000.0003.00
[SwitchC-isis-1] quit
[SwitchC] interface vlan-interface 11
[SwitchC-Vlan-interface11] isis enable
[SwitchC-Vlan-interface11] quit
[SwitchC] interface vlan-interface 13
[SwitchC-Vlan-interface13] isis enable
[SwitchC-Vlan-interface13] quit
(3) 配置BFD功能
# 在Switch A上使能BFD检测功能,并配置BFD参数。
[SwitchA] bfd session init-mode passive
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] isis bfd enable
[SwitchA-Vlan-interface10] bfd min-receive-interval 500
[SwitchA-Vlan-interface10] bfd min-transmit-interval 500
[SwitchA-Vlan-interface10] bfd detect-multiplier 7
[SwitchA-Vlan-interface10] quit
# 在Switch B上使能BFD检测功能,并配置BFD参数。
[SwitchB] bfd session init-mode active
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] isis bfd enable
[SwitchB-Vlan-interface10] bfd min-receive-interval 500
[SwitchB-Vlan-interface10] bfd min-transmit-interval 500
[SwitchB-Vlan-interface10] bfd detect-multiplier 8
[SwitchB-Vlan-interface10] quit
下面以Switch A为例,Switch B和Switch A类似,不再赘述。
# 显示Switch A的BFD信息。
[SwitchA] display bfd session
Total sessions: 1 Up sessions: 1 Init mode: Active
IPv4 session working in control packet mode:
LD/RD SourceAddr DestAddr State Holdtime Interface
3/1 192.168.0.102 192.168.0.100 Up 1700ms Vlan10
# 在Switch A上查看120.1.1.1/32的路由信息,可以看出Switch A和Switch B是通过L2 Switch进行通信的。
[SwitchA] display ip routing-table 120.1.1.1 verbose
Summary count : 1
Destination: 120.1.1.1/32
Protocol: IS_L1
Process ID: 1
SubProtID: 0x1 Age: 04h20m37s
Cost: 10 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x26000002 LastAs: 0
AttrID: 0xffffffff Neighbor: 0.0.0.0
Flags: 0x1008c OrigNextHop: 192.168.0.100
Label: NULL RealNextHop: 192.168.0.100
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL BkSRLabel: NULL
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid Interface: Vlan-interface10
BkTunnel ID: Invalid BkInterface: N/A
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A PathID: 0x0
LinkCost: 0 MicroSegID: 0
RealFIRType: Normal RealThres: 0
当Switch A和Switch B通过L2 Switch通信的链路出现故障时:
# 在Switch A上查看120.1.1.1/32的路由信息,可以看出Switch A和Switch B已经切换到Switch C进行通信。
[SwitchA] display ip routing-table 120.1.1.1 verbose
Summary count : 1
Destination: 120.1.1.1/32
Protocol: IS_L1
Process ID: 1
SubProtID: 0x1 Age: 04h20m37s
Cost: 20 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x26000002 LastAs: 0
AttrID: 0xffffffff Neighbor: 0.0.0.0
Flags: 0x1008c OrigNextHop: 10.1.1.100
Label: NULL RealNextHop: 10.1.1.100
BkLabel: NULL BkNextHop: N/A
SRLabel: NULL BkSRLabel: NULL
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid Interface: Vlan-interface11
BkTunnel ID: Invalid BkInterface: N/A
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A PathID: 0x0
LinkCost: 0 MicroSegID: 0
RealFIRType: Normal RealThres: 0
如图1-23所示,Switch A、Switch B和Switch C属于同一IS-IS路由域,通过IS-IS协议实现网络互连。要求当Switch A和Switch B之间的链路出现故障时,业务可以快速切换到链路B上。
图1-23 IS-IS快速重路由配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int100 |
12.12.12.1/24 |
Switch B |
Vlan-int101 |
24.24.24.4/24 |
|
Vlan-int200 |
13.13.13.1/24 |
|
Vlan-int200 |
13.13.13.2/24 |
|
Loop0 |
1.1.1.1/32 |
|
Loop0 |
4.4.4.4/32 |
Switch C |
Vlan-int100 |
12.12.12.2/24 |
|
|
|
|
Vlan-int101 |
24.24.24.2/24 |
|
|
|
(1) 配置各交换机接口的IP地址和IS-IS协议
请按照图1-20配置各接口的IP地址和子网掩码,具体配置过程略。
配置各交换机之间采用IS-IS协议进行互连,确保Switch A、Switch B和Switch C之间能够在网络层互通,并且各交换机之间能够借助IS-IS协议实现动态路由更新。
具体配置过程略。
(2) 配置IS-IS快速重路由
IS-IS支持快速重路由配置有两种配置方法,一种是通过LFA(Loop Free Alternate)算法选取备份下一跳,另一种是在路由策略中指定备份下一跳,两种方法任选一种。
方法一:使能Switch A和Switch B的IS-IS协议的自动计算快速重路由能力
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] address-family ipv4
[SwitchA-isis-1-ipv4] fast-reroute lfa
[SwitchA-isis-1-ipv4] quit
[SwitchA-isis-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] address-family ipv4
[SwitchB-isis-1-ipv4] fast-reroute lfa
[SwitchB-isis-1-ipv4] quit
[SwitchB-isis-1] quit
方法二:使能Switch A和Switch B的IS-IS协议的指定路由策略快速重路由能力
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ip prefix-list abc index 10 permit 4.4.4.4 32
[SwitchA] route-policy frr permit node 10
[SwitchA-route-policy-frr-10] if-match ip address prefix-list abc
[SwitchA-route-policy-frr-10] apply fast-reroute backup-interface vlan-interface 100 backup-nexthop 12.12.12.2
[SwitchA-route-policy-frr-10] quit
[SwitchA] isis 1
[SwitchA-isis-1] address-family ipv4
[SwitchA-isis-1-ipv4] fast-reroute route-policy frr
[SwitchA-isis-1-ipv4] quit
[SwitchA-isis-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ip prefix-list abc index 10 permit 1.1.1.1 32
[SwitchB] route-policy frr permit node 10
[SwitchB-route-policy-frr-10] if-match ip address prefix-list abc
[SwitchB-route-policy-frr-10] apply fast-reroute backup-interface vlan-interface 101 backup-nexthop 24.24.24.2
[SwitchB-route-policy-frr-10] quit
[SwitchB] isis 1
[SwitchB-isis-1] address-family ipv4
[SwitchB-isis-1-ipv4] fast-reroute route-policy frr
[SwitchB-isis-1-ipv4] quit
[SwitchB-isis-1] quit
# 在Switch A上查看4.4.4.4/32路由,可以看到备份下一跳信息。
[SwitchS] display ip routing-table 4.4.4.4 verbose
Summary count : 1
Destination: 4.4.4.4/32
Protocol: IS_L1
Process ID: 1
SubProtID: 0x1 Age: 04h20m37s
Cost: 10 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x26000002 LastAs: 0
AttrID: 0xffffffff Neighbor: 0.0.0.0
Flags: 0x1008c OrigNextHop: 13.13.13.2
Label: NULL RealNextHop: 13.13.13.2
BkLabel: NULL BkNextHop: 12.12.12.2
SRLabel: NULL BkSRLabel: NULL
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid Interface: Vlan-interface200
BkTunnel ID: Invalid BkInterface: Vlan-interface100
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A PathID: 0x0
LinkCost: 0 MicroSegID: 0
RealFIRType: Normal RealThres: 0
# 在Switch B上查看1.1.1.1/32路由,可以看到备份下一跳信息。
[SwitchD] display ip routing-table 1.1.1.1 verbose
Summary count : 1
Destination: 1.1.1.1/32
Protocol: IS_L1
Process ID: 1
SubProtID: 0x1 Age: 04h20m37s
Cost: 10 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x26000002 LastAs: 0
AttrID: 0xffffffff Neighbor: 0.0.0.0
Flags: 0x1008c OrigNextHop: 13.13.13.1
Label: NULL RealNextHop: 13.13.13.1
BkLabel: NULL BkNextHop: 24.24.24.2
SRLabel: NULL BkSRLabel: NULL
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid Interface: Vlan-interface200
BkTunnel ID: Invalid BkInterface: Vlan-interface101
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A PathID: 0x0
LinkCost: 0 MicroSegID: 0
RealFIRType: Normal RealThres: 0
如图1-24所示,IPv4网络和IPv6的接口开销值不同,要求通过IS-IS多实例隔离IPv4和IPv6网络,避免使用传统IS-IS进程导致IPv6路由计算出错的问题。
图1-24 IPv6 IS-IS基本功能配置组网图
设备 |
接口 |
IPv4地址 |
IPv6地址 |
设备 |
接口 |
IPv4地址 |
IPv6地址 |
Switch A |
Vlan10 |
10.1.1.1/24 |
2001::1/64 |
Switch B |
Vlan10 |
10.1.1.2/24 |
2001::2/64 |
|
Loop0 |
1.1.1.1/32 |
10::1/128 |
|
Loop0 |
2.2.2.2/32 |
20::1/128 |
按照组网图配置各接口的IPv4地址和IPv6地址。
(1) 配置传统IPv4 IS-IS进程
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[SwitchA-isis-1] quit
[SwitchA] interface loopback 0
[SwitchA-LoopBack0] isis enable 1
[SwitchA-LoopBack0] quit
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] isis enable 1
[SwitchA-Vlan-interface10] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[SwitchB-isis-1] quit
[SwitchB] interface loopback 0
[SwitchB-LoopBack0] isis enable 1
[SwitchB-LoopBack0] quit
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] isis enable 1
[SwitchB-Vlan-interface10] quit
(2) 配置多实例IPv6 IS-IS进程
# 配置Switch A。
[SwitchA] isis 2
[SwitchA-isis-2] network-entity 20.0000.0000.0010.00
[SwitchA-isis-2] multi-instance enable iid 1
[SwitchA-isis-2] address-family ipv6
[SwitchA-isis-2-ipv6] quit
[SwitchA-isis-2] quit
[SwitchA] interface loopback 0
[SwitchA-LoopBack0] isis ipv6 enable 2
[SwitchA-LoopBack0] quit
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] isis ipv6 enable 2
[SwitchA-Vlan-interface10] isis process-id 2 cost 63
[SwitchA-Vlan-interface10] quit
# 配置Switch B。
[SwitchB] isis 2
[SwitchB-isis-2] network-entity 20.0000.0000.0020.00
[SwitchB-isis-2] multi-instance enable iid 1
[SwitchB-isis-2] address-family ipv6
[SwitchB-isis-2-ipv6] quit
[SwitchB-isis-2] quit
[SwitchB] interface loopback 0
[SwitchB-LoopBack0] isis ipv6 enable 2
[SwitchB-LoopBack0] quit
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] isis ipv6 enable 2
[SwitchB-Vlan-interface10] isis process-id 2 cost 63
[SwitchB-Vlan-interface10] quit
# 查看Switch A的IPv4 IS-IS路由表,可以看到路由计算的结果正确。
[SwitchA] display isis route ipv4
Route information for IS-IS(1)
------------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
1.1.1.1/32 0 NULL Loop0 Direct D/L/-
10.1.1.0/24 10 NULL Vlan10 Direct D/L/-
2.2.2.2/32 10 NULL Vlan10 10.1.1.2 R/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
1.1.1.1/32 0 NULL Loop0 Direct D/L/-
10.1.1.0/24 10 NULL Vlan10 Direct D/L/-
2.2.2.2/32 10 NULL
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
# 查看Switch B的IPv4 IS-IS路由表,可以看到路由计算的结果正确。
[SwitchB] display isis route ipv4
Route information for IS-IS(1)
------------------------------
Level-1 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
1.1.1.1/32 10 NULL Vlan10 10.1.1.1 R/L/-
10.1.1.0/24 10 NULL Vlan10 Direct D/L/-
2.2.2.2/32 0 NULL Loop0 Direct D/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv4 Forwarding Table
-----------------------------
IPv4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
1.1.1.1/32 10 NULL
10.1.1.0/24 10 NULL Vlan10 Direct D/L/-
2.2.2.2/32 0 NULL Loop0 Direct D/L/-
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
# 查看Switch A的IPv6 IS-IS路由表,可以看到路由计算的结果正确。
[SwitchA] display isis route ipv6
Route information for IS-IS(2)
------------------------------
Level-1 IPv6 forwarding table
-----------------------------
Destination : 10::1 PrefixLen: 128
Flag : D/L/- Cost : 0
Next hop : Direct Interface: Loop0
Destination : 2001:: PrefixLen: 64
Flag : D/L/- Cost : 63
Next hop : Direct Interface: Vlan10
Destination : 20::1 PrefixLen: 128
Flag : R/L/- Cost : 63
Next hop : FE80::861F:31FF:FE6D:201 Interface: Vlan10
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv6 forwarding table
-----------------------------
Destination : 10::1 PrefixLen: 128
Flag : D/L/- Cost : 0
Next hop : Direct Interface: Loop0
Destination : 2001:: PrefixLen: 64
Flag : D/L/- Cost : 63
Next hop : Direct Interface: Vlan10
Destination : 20::1 PrefixLen: 128
Flag : -/-/- Cost : 63
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
# 查看Switch B的IPv6 IS-IS路由表,可以看到路由计算的结果正确。
[SwitchB] display isis route ipv6
Route information for IS-IS(2)
------------------------------
Level-1 IPv6 forwarding table
-----------------------------
Destination : 10::1 PrefixLen: 128
Flag : R/L/- Cost : 63
Next hop : FE80::861F:29FF:FE93:101 Interface: Vlan10
Destination : 2001:: PrefixLen: 64
Flag : D/L/- Cost : 63
Next hop : Direct Interface: Vlan10
Destination : 20::1 PrefixLen: 128
Flag : D/L/- Cost : 0
Next hop : Direct Interface: Loop0
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv6 forwarding table
-----------------------------
Destination : 10::1 PrefixLen: 128
Flag : -/-/- Cost : 63
Destination : 2001:: PrefixLen: 64
Flag : D/L/- Cost : 63
Next hop : Direct Interface: Vlan10
Destination : 20::1 PrefixLen: 128
Flag : D/L/- Cost : 0
Next hop : Direct Interface: Loop0
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
如下图所示,Switch A、Switch B、Switch C和Switch D属于同一自治系统,所有交换机已使能了IPv6能力,要求它们之间通过IPv6 IS-IS协议达到IPv6网络互连的目的。
其中Switch A和Switch B是Level-1交换机,Switch D是Level-2交换机,Switch C是Level-1-2交换机。Switch A、Switch B和Switch C属于区域10,而Switch D属于区域20。
图1-25 IPv6 IS-IS基本配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置IPv6 IS-IS
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] is-level level-1
[SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[SwitchA-isis-1] address-family ipv6
[SwitchA-isis-1-ipv6] quit
[SwitchA-isis-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] isis ipv6 enable 1
[SwitchA-Vlan-interface100] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] is-level level-1
[SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[SwitchB-isis-1] address-family ipv6
[SwitchB-isis-1-ipv6] quit
[SwitchB-isis-1] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] isis ipv6 enable 1
[SwitchB-Vlan-interface200] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] isis 1
[SwitchC-isis-1] network-entity 10.0000.0000.0003.00
[SwitchC-isis-1] address-family ipv6
[SwitchC-isis-1-ipv6] quit
[SwitchC-isis-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] isis ipv6 enable 1
[SwitchC-Vlan-interface100] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] isis ipv6 enable 1
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] isis ipv6 enable 1
[SwitchC-Vlan-interface300] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] isis 1
[SwitchD-isis-1] is-level level-2
[SwitchD-isis-1] network-entity 20.0000.0000.0004.00
[SwitchD-isis-1] address-family ipv6
[SwitchD-isis-1-ipv6] quit
[SwitchD-isis-1] quit
[SwitchD] interface vlan-interface 300
[SwitchD-Vlan-interface300] isis ipv6 enable 1
[SwitchD-Vlan-interface300] quit
[SwitchD] interface vlan-interface 301
[SwitchD-Vlan-interface301] isis ipv6 enable 1
[SwitchD-Vlan-interface301] quit
# 查看Switch A的IPv6 IS-IS路由表。
[SwitchA] display isis route ipv6
Route information for IS-IS(1)
------------------------------
Level-1 IPv6 Forwarding Table
-----------------------------
Destination : :: PrefixLen: 0
Flag : R/-/- Cost : 10
Next Hop : FE80::200:FF:FE0F:4 Interface: Vlan100
Destination : 2001:1:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : Direct Interface: Vlan100
Destination : 2001:2:: PrefixLen: 64
Flag : R/-/- Cost : 20
Next Hop : FE80::200:FF:FE0F:4 Interface: Vlan100
Destination : 2001:3:: PrefixLen: 64
Flag : R/-/- Cost : 20
Next Hop : FE80::200:FF:FE0F:4 Interface: Vlan100
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
# 查看Switch B的IPv6 IS-IS路由表。
[SwitchB] display isis route ipv6
Route information for IS-IS(1)
------------------------------
Level-1 IPv6 Forwarding Table
-----------------------------
Destination : :: PrefixLen: 0
Flag : R/-/- Cost : 10
Next Hop : FE80::200:FF:FE0F:4 Interface: Vlan200
Destination : 2001:1:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : FE80::200:FF:FE0F:4 Interface: Vlan200
Destination : 2001:2:: PrefixLen: 64
Flag : R/-/- Cost : 20
Next Hop : Direct Interface: Vlan200
Destination : 2001:3:: PrefixLen: 64
Flag : R/-/- Cost : 20
Next Hop : FE80::200:FF:FE0F:4 Interface: Vlan200
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
# 查看Switch C的IPv6 IS-IS路由表。
[SwitchC] display isis route ipv6
Route information for IS-IS(1)
------------------------------
Level-1 IPv6 Forwarding Table
-----------------------------
Destination : 2001:1:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : Direct Interface: Vlan100
Destination : 2001:2:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : Direct Interface: Vlan200
Destination : 2001:3:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : Direct Interface: Vlan300
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
Level-2 IPv6 Forwarding Table
-----------------------------
Destination : 2001:1:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : Direct Interface: Vlan100
Destination : 2001:2:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : Direct Interface: Vlan200
Destination : 2001:3:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : Direct Interface: Vlan300
Destination : 2001:4::1 PrefixLen: 64
Flag : R/-/- Cost : 10
Next Hop : FE80::20F:E2FF:FE3E:FA3D Interface: Vlan300
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
# 查看Switch D的IPv6 IS-IS路由表。
[SwitchD] display isis route ipv6
Route information for IS-IS(1)
------------------------------
Level-2 IPv6 Forwarding Table
-----------------------------
Destination : 2001:1:: PrefixLen: 64
Flag : R/-/- Cost : 20
Next Hop : FE80::200:FF:FE0F:4 Interface: Vlan300
Destination : 2001:2:: PrefixLen: 64
Flag : R/-/- Cost : 20
Next Hop : FE80::200:FF:FE0F:4 Interface: Vlan300
Destination : 2001:3:: PrefixLen: 64
Flag : D/L/- Cost : 10
Next Hop : Direct Interface: Vlan300
Destination : 2001:4::1 PrefixLen: 64
Flag : D/L/- Cost : 0
Next Hop : Direct Interface: Loop1
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
· Switch A、Switch B通过二层交换机互连,并且在双方接口上使能BFD应用,之间运行IPv6 IS-IS,网络层相互可达。
· 当Switch B和二层交换机之间的链路出现故障后,BFD能够快速检测并通告IPv6 IS-IS协议。
图1-26 IPv6 IS-IS与BFD联动配置组网图
设备 |
接口 |
IPv6地址 |
设备 |
接口 |
IPv6地址 |
Switch A |
Vlan-int10 |
2001::1/64 |
Switch B |
Vlan-int10 |
2001::2/64 |
|
Vlan-int11 |
2001:2::1/64 |
|
Vlan-int13 |
2001:3::2/64 |
Switch C |
Vlan-int11 |
2001:2::2/64 |
|
|
|
|
Vlan-int13 |
2001:3::1/64 |
|
|
|
(1) 配置各接口的IPv6地址(略)
(2) 配置IPv6 IS-IS
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] is-level level-1
[SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[SwitchA-isis-1] address-family ipv6
[SwitchA-isis-1-ipv6] quit
[SwitchA-isis-1] quit
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] isis ipv6 enable 1
[SwitchA-Vlan-interface10] quit
[SwitchA] interface vlan-interface 11
[SwitchA-Vlan-interface11] isis ipv6 enable 1
[SwitchA-Vlan-interface11] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] is-level level-1
[SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[SwitchB-isis-1] address-family ipv6
[SwitchB-isis-1-ipv6] quit
[SwitchB-isis-1] quit
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] isis ipv6 enable 1
[SwitchB-Vlan-interface10] quit
[SwitchB] interface vlan-interface 13
[SwitchB-Vlan-interface13] isis ipv6 enable 1
[SwitchB-Vlan-interface13] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] isis 1
[SwitchC-isis-1] network-entity 10.0000.0000.0003.00
[SwitchC-isis-1] address-family ipv6
[SwitchC-isis-1-ipv6] quit
[SwitchC-isis-1] quit
[SwitchC] interface vlan-interface 11
[SwitchC-Vlan-interface11] isis ipv6 enable 1
[SwitchC-Vlan-interface11] quit
[SwitchC] interface vlan-interface 13
[SwitchC-Vlan-interface13] isis ipv6 enable 1
[SwitchC-Vlan-interface13] quit
(3) 配置BFD功能
# 在Switch A上使能IPv6 IS-IS BFD功能,并配置BFD参数。
[SwitchA] bfd session init-mode active
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] isis ipv6 bfd enable
[SwitchA-Vlan-interface10] bfd min-transmit-interval 500
[SwitchA-Vlan-interface10] bfd min-receive-interval 500
[SwitchA-Vlan-interface10] bfd detect-multiplier 7
[SwitchA-Vlan-interface10] quit
# 在Switch B上使能IPv6 IS-IS BFD功能,并配置BFD参数。
[SwitchB] bfd session init-mode active
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] isis ipv6 bfd enable
[SwitchB-Vlan-interface10] bfd min-transmit-interval 500
[SwitchB-Vlan-interface10] bfd min-receive-interval 500
[SwitchB-Vlan-interface10] bfd detect-multiplier 6
[SwitchB-Vlan-interface10] quit
下面以Switch A为例,Switch B和Switch A类似,不再赘述。
# 显示Switch A的BFD信息。
[SwitchA] display bfd session
Total sessions: 1 Up sessions: 1 Init mode: Active
IPv6 session working in control packet mode:
Local discr: 1441 Remote discr: 1450
Source IP: FE80::20F:FF:FE00:1202(Switch A接口Vlan-interface10的链路本地地址)
Destination IP: FE80::20F:FF:FE00:1200(Switch B接口Vlan-interface10的链路本地地址)
Session state: Up Interface: Vlan10
Hold time: 2319ms
# 在Switch A上查看2001:4::0/64的路由信息,可以看出Switch A和Switch B是通过L2 Switch进行通信的。
[SwitchA] display ipv6 routing-table 2001:4::0 64
Summary count : 1
Destination: 2001:4::/64 Protocol : IS_L1
NextHop : FE80::20F:FF:FE00:1200 Preference: 15
Interface : Vlan10 Cost : 10
当Switch A和Switch B通过L2 Switch通信的链路出现故障时:
# 在Switch A上查看2001:4::0/64的路由信息,可以看出Switch A和Switch B已经切换到Switch C进行通信。
[SwitchA] display ipv6 routing-table 2001:4::0 64
Summary count : 1
Destination: 2001:4::/64 Protocol : IS_L1
NextHop : FE80::BAAF:67FF:FE27:DCD0 Preference: 15
Interface : Vlan11 Cost : 20
如图1-27所示,Switch A、Switch B和Switch C属于同一IS-IS区域,通过IPv6 IS-IS协议实现网络互连。要求当Switch A和Switch B之间的链路出现故障时,业务可以快速切换到链路B上。
图1-27 IPv6 IS-IS快速重路由配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int100 |
1::1/64 |
Switch B |
Vlan-int101 |
3::1/64 |
|
Vlan-int200 |
2::1/64 |
|
Vlan-int200 |
2::2/64 |
|
Loop0 |
10::1/128 |
|
Loop0 |
20::1/128 |
Switch C |
Vlan-int100 |
1::2/64 |
|
|
|
|
Vlan-int101 |
3::2/64 |
|
|
|
(1) 配置各交换机接口的IP地址和IPv6 IS-IS协议
请按照上面组网图配置各接口的IP地址和子网掩码,具体配置过程略。
配置各交换机之间采用IPv6 IS-IS协议进行互连,确保Switch A、Switch B和Switch C之间能够在网络层互通,并且各交换机之间能够借助IPv6 IS-IS协议实现动态路由更新。
具体配置过程略。
(2) 配置IPv6 IS-IS快速重路由
IPv6 IS-IS支持快速重路由的配置方法有两种,一种是通过LFA算法选取备份下一跳,另一种是在路由策略中指定备份下一跳,两种方法任选一种。
方法一:使能Switch A和Switch B的IPv6 IS-IS快速重路由功能(通过LFA算法选取备份下一跳信息)
# 配置Switch A。
<SwitchA> system-view
[SwitchA] isis 1
[SwitchA-isis-1] address-family ipv6
[SwitchA-isis-1-ipv6] fast-reroute lfa
[SwitchA-isis-1-ipv6] quit
[SwitchA-isis-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] isis 1
[SwitchB-isis-1] address-family ipv6
[SwitchB-isis-1-ipv6] fast-reroute lfa
[SwitchB-isis-1-ipv6] quit
[SwitchB-isis-1] quit
方法二:使能Switch A和Switch B的IPv6 IS-IS快速重路由功能(通过路由策略指定备份下一跳)
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ipv6 prefix-list abc index 10 permit 20::1 128
[SwitchA] route-policy frr permit node 10
[SwitchA-route-policy-frr-10] if-match ipv6 address prefix-list abc
[SwitchA-route-policy-frr-10] apply ipv6 fast-reroute backup-interface vlan-interface 100 backup-nexthop 1::2
[SwitchA-route-policy-frr-10] quit
[SwitchA] isis 1
[SwitchA-isis-1] address-family ipv6
[SwitchA-isis-1-ipv6] fast-reroute route-policy frr
[SwitchA-isis-1-ipv6] quit
[SwitchA-isis-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ipv6 prefix-list abc index 10 permit 10::1 128
[SwitchB] route-policy frr permit node 10
[SwitchB-route-policy-frr-10] if-match ipv6 address prefix-list abc
[SwitchB-route-policy-frr-10] apply ipv6 fast-reroute backup-interface vlan-interface 101 backup-nexthop 3::2
[SwitchB-route-policy-frr-10] quit
[SwitchB] isis 1
[SwitchB-isis-1] address-family ipv6
[SwitchB-isis-1-ipv6] fast-reroute route-policy frr
[SwitchB-isis-1-ipv6] quit
[SwitchB-isis-1] quit
# 在Switch A上查看20::1/128的路由信息,可以看到备份下一跳信息。
[SwitchA] display ipv6 routing-table 20::1 128 verbose
Summary count : 1
Destination: 20::1/128
Protocol: IS_L1
Process ID: 1
SubProtID: 0x1 Age: 00h27m45s
Cost: 10 Preference: 15
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0xa OrigVrf: default-vrf
TableID: 0xa OrigAs: 0
NibID: 0x24000005 LastAs: 0
AttrID: 0xffffffff Neighbor: ::
Flags: 0x10041 OrigNextHop: FE80::34CD:9FF:FE2F:D02
Label: NULL RealNextHop: FE80::34CD:9FF:FE2F:D02
BkLabel: NULL BkNextHop: FE80::7685:45FF:FEAD:102
SRLabel: NULL BkSRLabel: NULL
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid Interface: Vlan-interface200
BkTunnel ID: Invalid BkInterface: Vlan-interface100
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A PathID: 0x0
LinkCost: 0 MicroSegID: 0
RealFIRType: Normal RealThres: 0
# 在Switch B上查看10::1/128的路由信息,可以看到备份下一跳信息。
[SwitchB] display ipv6 routing-table 10::1 128 verbose
Summary count : 1
Destination: 10::1/128
Protocol: IS_L1
Process ID: 1
SubProtID: 0x1 Age: 00h33m23s
Cost: 10 Preference: 15
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0xa OrigVrf: default-vrf
TableID: 0xa OrigAs: 0
NibID: 0x24000006 LastAs: 0
AttrID: 0xffffffff Neighbor: ::
Flags: 0x10041 OrigNextHop: FE80::34CC:E8FF:FE5B:C02
Label: NULL RealNextHop: FE80::34CC:E8FF:FE5B:C02
BkLabel: NULL BkNextHop: FE80::7685:45FF:FEAD:102
SRLabel: NULL BkSRLabel: NULL
SIDIndex: NULL InLabel: NULL
Tunnel ID: Invalid Interface: Vlan-interface200
BkTunnel ID: Invalid BkInterface: Vlan-interface101
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A PathID: 0x0
LinkCost: 0 MicroSegID: 0
RealFIRType: Normal RealThres: 0
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!