第4章 核心路由协议IS-IS
IS-IS(Intermediate System-to-Intermediate System),即中间系统到中间系统,是为ISO无连接网络协议(ISO’s connectionless network protocol , CLNP)设计的路由选择协议。ISIS协议的时间和OSPF发布的时间基本同一时期,稍早或者稍迟一点。其本意是支持从TCP/IP协议栈向OSI的转换,但是前者却成为了实际的工业标准,而ISIS现在更多的作为服务应用商网络的IGP的层面。它是ISO定义的OSI协议栈中无连接网络服务CLNS,(Connectionless Network Service)的一部分,用于动态路由数据包。
IS-IS协议直接封装在2层之上,但目的是建立、更新和维护用于转发3层报文的路由表。现代的IS-IS,我们精确一些应该称之为集成IS-IS,主要目的是和居于业界主导地址的IP融合,其内部和外部路由的AD值都为115(在思科设备上)。ISIS具备一个复合的头部,被封装在TLV(类型、长度和值)中,这一点使得IS-IS相对OSPF具备很好的灵活性和可扩展性。如图4-1为一个具体的IS-IS报文,读者可以从这个实际的报文看到IS-IS的报文结构。
在思科IOS XR上运行中间系统到中间系统协议_第1张图片
图4-1 一个实际的IS-IS报文
在前文中我们提到过IS-IS协议是基于ISO组织发布的OSI模型完成的,在思科系统成长的过程中,它经历了那个融合的时代,所以在传统IOS上还可以支持CLNS协议,而IOS XR系统已经不再支持CLNS了。读者可以忽略掉CLNS协议,因为现在依旧是IP的天下。如下的例子说明了一个CLNS的实施用以满足读者的好奇心
IOS#show clns route //如果读者实施了CLNS协议,那么你会看到节点路由。
Codes: C - connected, S - static, d - DecnetIV
I - ISO-IGRP, i - IS-IS, e - ES-IS
B - BGP, b - eBGP-neighbor

C 49.1256.0000.0000.6666.00 [1/0], Local IS-IS NET
C 49.1256 [2/0], Local IS-IS Area

i 49.1356 [110/10]
via SW1, GigabitEthernet0/1
i 49.2222 [110/20]
via SW1, GigabitEthernet0/1
关于IS-IS的一些基本术语,读者可以参考表5-1
缩略语 英文全名 中文解释
IS-IS Intermediate System-to-Intermediate System intra-domain routing information exchange protocol 中间系统到中间系统的域内路由信息交换协议
PDU Protocol Data Unit 协议数据单元
IIH PDU Intermediate System-to-Intermediate System Hello PDU IS-IS Hello协议报文
LSP Link State Protocol Data Unit 链路状态协议数据单元
LSDB Link State Database 链路状态数据库
SNP Sequence Numbers PDU 序列号报文
PSNP Partial Sequence Numbers PDU 部分序列号报文
CSNP Complete Sequence Numbers PDU 完全序列号报文
NET Network Entity Title 网络实体标题
表4-1 IS-IS的一些基本术语
在接下来的实验中让我们一步步理解IS-IS这个伟大的协议。
4.1 单级别的IS-IS实施
和OSPF这个链路状态协议类似,IS-IS协议也是划分层次的,IS-IS的层次称之为Level。L2作为骨干区域,L1作为非骨干区域,区域ID不再用作区分骨干和非骨干(这点上读者熟悉的OSPF用区域0来作为骨干区域)。一个中间系统可以是一台第1层的路由器(L1)、一台第2层的路由器(L2)或者两种类型皆是的路由器(Ll/L2)。
L1/2路由器类似于OSPF协议中的ABR路由器(更确切的是标识邻居状态)
L1/L2路由器必须同时维护一个L1的链路状态数据库和一个L2的链路状态数据库
Cisco路由器默认为一个L1/L2路由器
如果站在功能性的角度来区分不用的IS-IS路由器类型,读者可以从如下角度去思考:L2路由器:传输区域或者实现对外部路由域的连接
L1路由器:关心本域拓扑结构.
Level-1-2路由器:L1路由器通过L1/L2路由器访问其它区域,并且转发所在区域外的目的网络的数据包到最近的L1/L2路由器
正是基于如上规则,所以IS-IS协议在不同层次间路由更新规则:
区域间的通信都必须通过L2(需要注意的是ISIS不存在虚链路,各个厂商都不支持该特性,主要的原因在于IS-IS的网络需要设计完整和提前规划,而扁平化网络不需要不稳定的虚链路来支撑)
默认,L1/L2路由器不把L2明细路由通告给L1,L1类比OSPF的末节区域
在下面的案例中我们在图4-2上的XR1和XR2实施IS-IS协议。在本章后续的实施中都以该图作为逻辑拓扑用以实验。
在思科IOS XR上运行中间系统到中间系统协议_第2张图片
图4-2 IS-IS逻辑拓扑
4.1.1 基础配置
请读者自行完成IP地址并测试连通性

RP/0/0/CPU0:PE-XR1#sh run int
interface Loopback0
 ipv4 address 11.1.1.1 255.255.255.255
 ipv6 address 2011::1/128
!
interface MgmtEth0/0/CPU0/0
!
interface GigabitEthernet0/0/0/0
 ipv4 address 12.1.1.1 255.255.255.0
 ipv6 enable
!
interface GigabitEthernet0/0/0/1
 ipv4 address 13.1.1.1 255.255.255.0
 ipv6 address 2013::1/64
!
RP/0/0/CPU0:ASBR-2#sh run int
Wed Sep 14 22:49:21.450 UTC
interface Loopback0
 ipv4 address 22.1.1.1 255.255.255.255
 ipv6 address 2022::2/128
!
interface MgmtEth0/0/CPU0/0
 shutdown
!
interface GigabitEthernet0/0/0/0
 ipv4 address 23.1.1.2 255.255.255.0
 ipv6 address 2023::2/64
!
interface GigabitEthernet0/0/0/1
 shutdown
!
interface GigabitEthernet0/0/0/2
 ipv4 address 12.1.1.2 255.255.255.0
 ipv6 address 2012::2/64

测试直连地址的连通性:
RP/0/0/CPU0:ASBR-2#ping 12.1.1.1
Wed Sep 14 22:52:29.037 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/8/39 ms
读者可以从中看到我们熟悉的编址方式:环回口0为XX.1.1.1/32,直连地址为XY.1.1.X/24.后续地址请读者自行完成。
4.1.2 实施IS-IS
我们在XR1和XR2上实施IS-IS,NET地址已经标识完毕
关于NET地址,即网络实体标题,其格式如图4-3所示
在思科IOS XR上运行中间系统到中间系统协议_第3张图片
图4-3 网络实体标题格式示意图
NET地址,该地址包含了区域ID和系统ID,而它本质上是一个ISO地址,最后的SEL类似于TCP的端口号,永远的作为00出现。没有NET地址ISIS无法运行。以下为以下关于NET地址的硬性规定:
AFI(授权和格式标识符)必须为1字节
区域ID字段可变长,介于0到12字节之间
系统ID位必须为6字节,而且在域内唯一
SEL地址必须为1字节(永为00)
实施:

XR1:
router isis QYT //启动IS-IS协议,在XR设备上必须携带本地意义的TAG标识,此处为QYT
 net 49.1356.0000.0000.1111.00 //实施NET地址
 log adjacency changes //XR系统上当邻居发生变化时产生日志的命令
 interface Loopback0
  address-family ipv4 unicast //该接口运行IS-IS协议,并同时把该接口的网络通告到IS-IS数据库
  !
 !
 interface GigabitEthernet0/0/0/0
  address-family ipv4 unicast
XR2:
router isis QYT
 net 49.2222.0000.0000.2222.00
 log adjacency changes
 interface Loopback0
  address-family ipv4 unicast
  !
 !
 interface GigabitEthernet0/0/0/2
  address-family ipv4 unicast
  !
验证IS-IS的邻居
RP/0/0/CPU0:PE-XR1#show isis neighbors 
Wed Sep 14 23:09:13.568 UTC

IS-IS QYT neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
ASBR-2         Gi0/0/0/0        5000.000a.0003 Up    7        L2   Capable
RP/0/0/CPU0:ASBR-2#show isis neighbors 
Wed Sep 14 23:11:56.277 UTC

IS-IS QYT neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
PE-XR1         Gi0/0/0/2        5000.0009.0001 Up    22       L2   Capable
验证IS-IS的简要信息
RP/0/0/CPU0:ASBR-2#show isis protocol 
Wed Sep 14 23:12:09.366 UTC

IS-IS Router: QYT //路由协议进程
  System Id: 0000.0000.2222 //NET地址的系统ID
  IS Levels: level-1-2 //该路由器默认为L1/L2设备
  Manual area address(es):
    49.2222
  Routing for area address(es): //区域ID
    49.2222
  Non-stop forwarding: Disabled
  Most recent startup mode: Cold Restart
  Topologies supported by IS-IS:
    IPv4 Unicast
      Level-1
        Metric style (generate/accept): Narrow/Narrow
        Metric: 10
        ISPF status: Disabled
      Level-2
        Metric style (generate/accept): Narrow/Narrow
        Metric: 10
        ISPF status: Disabled
      No protocols redistributed
      Distance: 115 //IS-IS默认的管理距离为115
      Advertise Passive Interface Prefixes Only: No
  Interfaces supported by IS-IS: //已经激活的IS-IS接口
    Loopback0 is running actively (active in configuration)
    GigabitEthernet0/0/0/2 is running actively (active in configuration)
验证IS-IS的路由
RP/0/0/CPU0:ASBR-2#show route isis 
Wed Sep 14 23:13:44.450 UTC

i L2 11.1.1.1/32 [115/20] via 12.1.1.1, 00:06:19, GigabitEthernet0/0/0/2
RP/0/0/CPU0:PE-XR1#show route isis 
Wed Sep 14 23:13:57.129 UTC

i L2 22.1.1.1/32 [115/20] via 12.1.1.2, 00:06:35, GigabitEthernet0/0/0/0
数据报文测试,可以正常传送:
RP/0/0/CPU0:PE-XR1#ping 22.1.1.1 source 11.1.1.1 
Wed Sep 14 23:14:46.276 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 22.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/9 ms
实施SW5的IS-IS
interface Ethernet0/3
 switchport access vlan 15
 switchport mode access
!
interface Ethernet1/0
 switchport access vlan 25
 switchport mode access
!
interface Vlan15
 description Conn**XR1
 ip address 15.1.1.5 255.255.255.0
!
interface Vlan25
 description Conn**XR2
 ip address 25.1.1.5 255.255.255.0
!
SW5(config)#router isis 
SW5(config-router)#net 49.1356.0000.0000.5555.00
SW5(config-router)#log-adjacency-changes 
SW5(config-router)#exi
SW5(config)#interface vlan 15
SW5(config-if)#ip router isis //在连接XR的SVI接口下实施IS-IS协议
SW5(config-if)#int vlan 25
SW5(config-if)#ip router isis
配置XR1和XR2,XR1:
interface GigabitEthernet0/0/0/2
 ipv4 address 15.1.1.1 255.255.255.0
 no shutdown
!
router isis QYT
 interface GigabitEthernet0/0/0/2
  address-family ipv4 unicast //把连接交换机的接口使能IS-IS协议
XR2:
interface GigabitEthernet0/0/0/4
 ipv4 address 25.1.1.2 255.255.255.0
!
router isis QYT
 interface GigabitEthernet0/0/0/4
  address-family ipv4 unicast //把连接交换机的接口使能IS-IS协议
验证SW5设备的IS-IS邻居和路由表
SW5#show isis neighbors 
*Sep 15 08:48:19.176: %SYS-5-CONFIG_I: Configured from console by console
SW5#show isis neighbors 

System Id      Type Interface   IP Address      State Holdtime Circuit Id
PE-XR1         L1   Vl15        15.1.1.1        UP    23       SW5.01             
PE-XR1         L2   Vl15        15.1.1.1        UP    26       SW5.01             
ASBR-2         L2   Vl25        25.1.1.2        UP    28       SW5.02             
SW5#show ip route isis 
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      11.0.0.0/32 is subnetted, 1 subnets
i L1     11.1.1.1 [115/20] via 15.1.1.1, 00:22:54, Vlan15
      12.0.0.0/24 is subnetted, 1 subnets
i L1     12.1.1.0 [115/20] via 15.1.1.1, 00:22:54, Vlan15
      22.0.0.0/32 is subnetted, 1 subnets
i L2     22.1.1.1 [115/20] via 25.1.1.2, 00:23:07, Vlan25

4.2 IS-IS的网络类型