第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的报文结构。 图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协议。在本章后续的实施中都以该图作为逻辑拓扑用以实验。 图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所示 图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的网络类型