一、IS-IS概述
IS-IS(Intermediate System to Intermediate System) 是一种链路状态内部网关协议(IGP),设计用于自治系统(AS)内部的路由选择。最初由ISO为OSI模型的无连接网络服务(CLNS)开发,后通过扩展支持IPv4和IPv6,成为现代IP网络中的重要路由协议。
二、IS-IS特征
-
链路状态算法:每个节点维护全网拓扑数据库,通过SPF(Dijkstra算法)计算最短路径树。
-
分层设计:
-
Level 1(L1):处理区域内路由,类似OSPF的非骨干区域。
-
Level 2(L2):处理区域间路由,形成骨干区域,类似OSPF Area 0。
-
L1/L2路由器:作为区域边界,转发L1和L2路由信息。
-
-
地址结构(NSAP):
- IS-IS使用NSAP地址标识节点,结构为[Area ID] [System ID] [NSEL]
-
Area ID:可变长,标识区域(如49.0001)。
-
System ID:固定6字节(常用MAC地址或IPv4转换,如1921.6800.1001)。
-
NSEL:1字节,服务选择符(IP网络中常为00)。
-
IS-IS支持VLSM(可变长子网掩码)和CIDR(无类别域间路由),支持明文和MD5验证
三、报文类型
-
Hello报文:发现和维护邻居关系,区分层级(L1/L2)。
-
LSP(Link-State PDU):携带链路状态信息,泛洪至全网。
-
SNP(Sequence Number PDU 序列号报文):
-
CSNP(全序列号数据包):同步数据库摘要(类似OSPF的DD报文)。
-
PSNP(部分序列号数据包):请求或确认单个LSP(类似OSPF的LSR/LSAck)。
-
四、工作流程
-
邻居发现:通过Hello报文建立邻接关系。
-
数据库同步:交换LSP和SNP,确保拓扑一致。
-
SPF计算:基于拓扑数据库生成最短路径树,更新路由表。
-
快速收敛:LSP泛洪机制确保拓扑变化快速传播。
五、与OSPF对比
特性 | IS-IS | OSPF |
---|---|---|
协议起源 | ISO/CLNS扩展支持IP | 专为IP设计(RFC 2328) |
分层结构 | 灵活两级(L1/L2) | 严格骨干区域(Area 0) |
地址依赖 | 基于NSAP,与IP无关 | 依赖IP地址 |
扩展性 | 更适合超大规模网络 | 企业网常见 |
认证 | 支持MD5、明文等 | 支持多种认证方式 |
六、优缺点
-
优点:
-
无类路由,支持VLSM/CIDR。
-
分层设计减少泛洪范围。
-
收敛速度快,适合高动态网络。
-
-
缺点:
-
NSAP地址配置较复杂。
-
排错工具和文档相对OSPF较少。
-
七、单区域集成IS-IS
R1的配置
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1]isis //启用ISIS进程,进程默认为1
[R1-isis-1]network-entity 49.0123.0000.0000.0001.00 //配置NET地址
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]isis enable //在接口启用IS-IS
[R1]int LoopBack 0
[R1-LoopBack0]isis enable
R2 配置
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 12.1.1.2 24
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 23.1.1.2 24
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2]isis
[R2-isis-1]network-entity 49.0123.0000.0000.0002.00
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]isis enable
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]isis enable
[R2]int LoopBack 0
[R2-LoopBack0]isis enable
R3的配置
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 23.1.1.3 24
[R3]int LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3]isis
[R3-isis-1]network-entity 49.0123.0000.0000.0003.00
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]isis enable
[R3]int LoopBack 0
[R3-LoopBack0]isis enable
测试
查看R1的邻接表
从上面可以看出路由表维护两个邻接关系,分为L1和L2
System ld:描述邻居的系统ID。
Interface:描述通过该路由器的哪个端口与邻居建立邻接关系。
Circuit ld:电路ID。
State:状态为 Up。
HoldTime:保持时间为30s,Hello包的间隔时间为 10s。
Type:邻居类型。
PRI:邻居选举 DIS时的优先级,默认为64。
查看R1的链路状态数据库
从上面可以看出R1维护两个链路状态数据库,分别为L1和L2
LSPID:链路状态报文ID,由三部分组成:系统ID、伪节点ID、分片号。
Seq Num:LSP序列号。
Checksum:LSP校验和。
Holdtime :LSP 保持时间。
Length:LSP 长度。
ATT/P/OL:连接位、分区位、过载位。
查看IS-IS的路由表
可以看到R1有两张路由表,分别为L1和L2
Flags路由信息标记如下
(1)D-Direct:表示直连路由,
(2)A-Added to URT:表示此路由被加入单播路由表。
(3)L-AdvertisedinLSPs:表示此路由通过LSP发布。
(4)S-IGPShortcut:表示到达该前缀的路径上存在IGP-Shortcut。
(5)U-Up/Down Bit Set:表示Up/Down比特位。
八、多区域集成IS-IS
R1 的配置
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 13.1.1.1 24
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1]isis
[R1-isis-1]network-entity 49.0123.0000.0000.0001.00 //配置NET地址
[R1-isis-1]is-level level-1 //路由器的类型为Level-1
[R1-isis-1]cost-style wide //设置宽度量值
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]isis enable
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]isis enable
[R1]int LoopBack 0
[R1-LoopBack0]isis enable
R2的配置
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 12.1.1.2 24
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 24.1.1.2 24
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2]isis
[R2-isis-1]network-entity 49.0123.0000.0000.0002.00
[R2-isis-1]cost-style wide
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]isis enable
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]isis enable
[R2]int LoopBack 0
[R2-LoopBack0]isis enable
R3的配置
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 13.1.1.3 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 35.1.1.3 24
[R3]int LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3]isis
[R3-isis-1]network-entity 49.0123.0000.0000.0003.00
[R3-isis-1]cost-style wide
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]isis enable
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]isis enable
[R3]int LoopBack 0
[R3-LoopBack0]isis enable
R4的配置
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 24.1.1.4 24
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 45.1.1.4 24
[R4]int LoopBack 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4]isis
[R4-isis-1]network-entity 49.0045.0000.0000.0004.00
[R4-isis-1]is-level level-2
[R4-isis-1]cost-s
[R4-isis-1]cost-style wide
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]isis enable
[R4-GigabitEthernet0/0/1]int g0/0/0
[R4-GigabitEthernet0/0/0]isis enable
[R4]int LoopBack 0
[R4-LoopBack0]isis enable
R5的配置
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip add 35.1.1.5 24
[R5]int g0/0/1
[R5-GigabitEthernet0/0/1]ip add 45.1.1.5 24
[R5]int Logic-Channel
[R5]int LoopBack 0
[R5-LoopBack0]ip add 5.5.5.5 32
[R5]isis
[R5-isis-1]network-en
[R5-isis-1]network-entity 49.0045.0000.0000.0005.00
[R5-isis-1]cost-style wide
[R5-isis-1]is-level level-2
[R5]int g0/0/1
[R5-GigabitEthernet0/0/1]isis enable
[R5-GigabitEthernet0/0/1]int g0/0/0
[R5-GigabitEthernet0/0/0]isis enable
[R5]int LoopBack 0
[R5-LoopBack0]isis enable
在R1上查看邻接表
可以看到R1和R2、R3是Level-1的邻居关系
在R1上查看路由表
默认情况Level-1区域的路由会传给Level-2区域, 但是Level-2区域的路由却不会Level-1区域,Level-1-2的路由器会自动下发默认路由给Level-1区域的路由器
分别在R4和R5上引入一条外部路由
R4配置:
[R4]int LoopBack 100
[R4-LoopBack100]ip add 100.1.1.1 32
[R4]isis
[R4-isis-1]import-route directR5配置:
[R5]int LoopBack 200
[R5-LoopBack200]ip add 200.1.1.1 32
[R5]isis
[R5-isis-1]import-route direct
再次去查看R1的路由表
并没有变化,所以R1没有收到外部路由
分别在R2和R3上把路由泄露给R1
R2配置:
[R2]isis
[R2-isis-1]import-route isis level-2 into level-1 //将Level-2的路由泄露给R1R3配置:
[R3]isis
[R3-isis-1]import-route isis level-2 into level-1
然后去查看R1的路由表
可以看到Level-2的路由传递给了Level-1
九、总结:如何选择?
IS-IS是一种高性能、高扩展的链路状态协议,凭借分层架构和协议无关性,成为运营商及复杂网络的首选IGP,尤其在超大规模、多协议混合场景中表现卓越。
-
选择IS-IS:
-
网络规模极大(如ISP骨干网、超大型数据中心)。
-
需要多协议支持(IP + CLNS)或原生IPv6多拓扑路由。
-
对收敛速度和扩展性要求苛刻。
-
-
选择OSPF:
-
中小型企业网络或园区网。
-
需要丰富的区域类型(如Stub、NSSA)和精细路由控制。
-
依赖IP地址且希望配置简单、社区支持完善。
-