在传统企业网和运营商网络中,OSPF长期占据着IGP协议的主导地位,但当我们进入金融、电信等高端网络领域时,ISIS(Intermediate System to Intermediate System)协议的身影开始频繁出现。这个最初为OSI模型设计的路由协议,经过"集成ISIS"的进化后,在IP网络中展现出独特的优势——更简洁的报文结构、更高效的路由计算、更灵活的区域划分,这些特性使其成为大型网络尤其是运营商网络的首选。
如果你已经熟练掌握了OSPF的各种配置和排错技巧,现在是时候扩展你的协议工具箱了。本文将带你用华为和思科设备搭建ISIS实验环境,通过真实的命令行配置和Wireshark抓包分析,直观比较ISIS与OSPF在邻居建立、LSP泛洪、DR选举等关键机制上的异同。不同于大多数理论介绍,我们会聚焦于实际工程中可能遇到的"坑点",比如多厂商设备互通时的参数匹配、广播网络中伪节点选举的特殊处理,以及如何正确规划NET地址这些看似简单却容易出错的关键细节。
ISIS最初是ISO为OSI网络层协议CLNP设计的路由协议,随着TCP/IP的全面胜利,ISIS通过"集成ISIS"扩展支持了IP路由。这种历史渊源带来了ISIS与生俱来的两大特点:协议无关性和分层架构。与OSPF不同,ISIS直接在数据链路层上运行(OSI Layer 2),这种设计使其报文头部更简洁,处理效率更高。
虽然同属链路状态协议,但ISIS在多个关键设计上与OSPF存在显著区别:
| 特性 | ISIS | OSPF |
|---|---|---|
| 协议层次 | 数据链路层(L2) | 网络层(L3) |
| 区域边界 | 位于链路上(路由器可属于多个区域) | 位于路由器上(ABR) |
| 网络类型支持 | 天然支持Level划分 | 通过Area类型区分 |
| DR选举 | 称为DIS(伪节点) | DR/BDR |
| 报文封装 | 直接使用二层封装 | 需要IP封装 |
提示:ISIS的Level 1路由器类似于OSPF的非骨干区域路由器,Level 2路由器类似于OSPF的骨干区域路由器,而Level 1-2路由器则承担类似ABR的功能。
ISIS使用NET(Network Entity Title)地址作为路由器的唯一标识,这相当于OSPF中的Router ID。一个典型的NET地址格式如下:
code复制49.0001.1921.6800.1001.00
各部分的含义:
在华为设备上配置NET地址:
huawei复制[Router] isis 1
[Router-isis-1] network-entity 49.0001.1921.6800.1001.00
在思科设备上配置:
cisco复制Router(config)# router isis
Router(config-router)# net 49.0001.1921.6800.1001.00
以华为eNSP模拟器为例,我们配置一个简单的Level-2拓扑:
huawei复制<Huawei> system-view
[Huawei] sysname R1
[R1] isis 1
[R1-isis-1] is-level level-2
[R1-isis-1] network-entity 49.0001.0000.0000.0001.00
huawei复制[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] isis enable 1
[R1-GigabitEthernet0/0/0] isis circuit-level level-2
huawei复制[R1-GigabitEthernet0/0/0] isis dis-priority 100
在思科设备上配置相同功能的命令序列:
cisco复制Router> enable
Router# configure terminal
Router(config)# router isis
Router(config-router)# net 49.0001.0000.0000.0001.00
Router(config-router)# is-type level-2-only
cisco复制Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip router isis
Router(config-if)# isis circuit-type level-2
cisco复制Router(config-if)# isis priority 100
华为和思科在ISIS实现上存在一些需要注意的差异:
isis circuit-level,思科使用isis circuit-type注意:在多厂商环境中,确保所有设备的ISIS级别配置一致,特别是边界路由器。Level-1和Level-2路由器之间必须通过Level-1-2路由器进行路由泄露。
使用Wireshark捕获ISIS Hello报文(IIH),我们可以看到邻居建立的三个阶段:
广播网络中的Hello报文示例:
code复制ISIS HELLO (IIH) Packet
Protocol: ISIS
Length: 1497
Reserved: 0x03
Circuit Type: L2
Source ID: 1921.6800.1001
Holding Time: 30
Priority: 100
LAN ID: 1921.6800.1001.01
ISIS协议主要使用三类九种报文:
Hello报文(IIH):
LSP(Link State PDU):
SNP(Sequence Number PDU):
ISIS在广播网络中通过选举DIS(Designated Intermediate System,伪节点)来优化LSP泛洪。DIS选举规则:
查看DIS选举结果(华为):
huawei复制<R1> display isis interface GigabitEthernet 0/0/0
Interface information for ISIS(1)
--------------------------------
Interface: GigabitEthernet0/0/0
Id: 0x1
IPv4 State: Up IPv6 State: Down
MTU: 1497
DIS Priority: 100
Circuit Type: L2
DIS: **YES** (Local)
LAN ID: 1921.6800.1001.01
思科查看命令:
cisco复制Router# show isis interface GigabitEthernet 0/0
ISIS默认情况下,Level-1区域只能看到本区域的路由和默认路由。要实现跨区域通信,需要配置路由泄露:
华为配置示例:
huawei复制[R1-isis-1] import-route isis level-2 into level-1
思科配置示例:
cisco复制Router(config-router)# redistribute isis ip level-2 into level-1
huawei复制<R1> display isis peer
cisco复制Router# show isis neighbors
huawei复制<R1> display isis lsdb
cisco复制Router# show isis database
huawei复制<R1> display isis route
cisco复制Router# show isis route
场景一:邻居无法建立
可能原因:
场景二:路由缺失
排查步骤:
场景三:DIS频繁切换
解决方案:
在实际项目中,ISIS的稳定性很大程度上取决于初始设计的合理性。特别是在NET地址规划、区域划分和路由策略设计上,需要充分考虑未来扩展性。一个常见的经验是:在大型网络中,保持骨干区域(Level-2)的纯净,避免将太多细节路由泄露到骨干区域;同时合理设置DIS优先级,确保关键设备承担DIS角色。