第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-neighborredis
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)
实施:app
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的网络类型less