关键词:IS-IS、OSPF、对比、TLV、LSA、DIS、DR、扩展性、收敛
第73篇:IS-IS 与 OSPF 的异同对比
一、引言
IS-IS 和 OSPF 是目前部署最广泛的两种链路状态 IGP 协议。两者都基于 Dijkstra 最短路径优先(SPF)算法,都采用链路状态数据库(LSDB)和泛洪机制来构建网络拓扑。然而,它们诞生于不同的技术体系,各自拥有独特的设计哲学和优势。
在网络规划阶段,选择合适的 IGP 协议是一项重要决策。本文将从协议设计、运行机制、扩展能力等多个维度对 IS-IS 和 OSPF 进行深度对比,帮助工程师在实际工程中做出合理选择。
二、核心概念
2.1 协议起源与标准
| 维度 | IS-IS | OSPF |
|---|---|---|
| 标准组织 | ISO(国际标准组织) | IETF(互联网工程任务组) |
| 协议标准 | ISO/IEC 10589 | RFC 2328(OSPFv2)/ RFC 5340(OSPFv3) |
| 诞生年代 | 1987 年 | 1989 年(OSPFv1) |
| 原生协议栈 | OSI 七层模型 | TCP/IP 四层模型 |
| 扩展支持 | RFC 1195 扩展支持 IP | 原生为 IP 设计 |
2.2 协议封装与传输
| 维度 | IS-IS | OSPF |
|---|---|---|
| 封装层次 | 数据链路层(Layer 2) | 网络层(IP 协议号 89) |
| 目的 MAC | 多播 MAC(0180.CA00.0014/0015) | 多播 IP(224.0.0.5/224.0.0.6) |
| EtherType | 0x8137 / 0x8337 | N/A(走 IP 层) |
| IP TTL | 不适用 | TTL=1 |
| 校验和 | 协议自带 Checksum | IP 层和 OSPF 头部均有校验 |
2.3 标识符体系
| 维度 | IS-IS | OSPF |
|---|---|---|
| 路由器标识 | System ID(6 字节) | Router ID(4 字节,类似 IP 格式) |
| 网络标识 | NET(NSAP 格式) | Area ID(4 字节) |
| 邻居标识 | System ID | Router ID |
| 标识符选取 | 可手动指定或基于 MAC 生成 | 手动指定或选取最大 Loopback/接口 IP |
三、技术细节
3.1 网络类型对比
| 网络类型 | IS-IS | OSPF |
|---|---|---|
| 点对点 | 支持 | 支持(P2P) |
| 广播多路访问 | 支持(Broadcast) | 支持(Broadcast) |
| NBMA | 不直接支持(通过 P2P over NBMA) | 支持(NBMA) |
| P2MP | 不直接支持 | 支持(Point-to-Multipoint) |
3.2 区域模型对比
| 维度 | IS-IS | OSPF |
|---|---|---|
| 区域概念 | Level-1(区域内)/ Level-2(区域间) | Area 0(骨干)/ 非骨干 Area |
| 骨干要求 | 无强制骨干区域 | 所有非骨干区域必须直连 Area 0 |
| 区域边界路由器 | Level-1-2 路由器 | ABR |
| ASBR | 无专门角色,任何路由器可引入外部路由 | ASBR(AS 边界路由器) |
| 区域间路由 | 默认不泄漏,需手动配置路由泄露 | 自动通过 ABR 传递 3/4/5/7 类 LSA |
3.3 指定路由器选举
| 维度 | DIS(IS-IS) | DR/BDR(OSPF) |
|---|---|---|
| 选举角色 | 单一角色(DIS) | 双重角色(DR + BDR) |
| 选举方式 | 抢占式(优先级高的直接当选) | 非抢占式(一旦选定不变更) |
| 优先级范围 | 0~127(默认 64) | 0~255(默认 1) |
| 优先级为 0 | 仍可参选(不会被选上,但可成为非 DIS) | 不能成为 DR/BDR |
| 备份机制 | 无备份(DIS 故障后重新选举) | BDR 作为备份,DIS 故障后 BDR 升级 |
| 邻居关系 | 所有路由器与 DIS 建立邻接 | 所有路由器与 DR/BDR 建立邻接 |
| 报文接收 | 所有路由器都接收 DIS 泛洪的 CSNP | 仅 DR/BDR 接收 DBO LSU |
3.4 扩展机制对比
| 维度 | IS-IS | OSPF |
|---|---|---|
| 扩展方式 | TLV(Type-Length-Value) | LSA 类型扩展 |
| 新增功能 | 定义新 TLV 类型即可 | 需定义新的 LSA 类型,修改较多 |
| 忽略未知信息 | 自动忽略未知 TLV | 部分 LSA 类型不支持会导致邻居问题 |
| 扩展灵活性 | 极高(TLV 嵌套、可变长度) | 中等(需保持 LSA 头部兼容) |
3.5 度量值对比
| 维度 | IS-IS(窄度量) | IS-IS(宽度量) | OSPF |
|---|---|---|---|
| 度量范围 | 1~63 | 1~16777215 | 1~65535 |
| 路径度量上限 | 1023(63 × 16) | 无实际限制 | 65535 |
| 度量粒度 | 粗(仅带宽感知) | 细(支持带宽、延迟等多维) | 中等 |
| TE 支持 | 宽度量 + Router-TE 可达性 TLV | 支持 | 支持(Traffic Engineering) |
3.6 收敛机制对比
| 维度 | IS-IS | OSPF |
|---|---|---|
| SPF 算法 | Dijkstra | Dijkstra |
| 增量 SPF | 支持(iSPF) | 支持 |
| BFD 联动 | 支持 | 支持 |
| 触发更新 | LSP 变化立即触发 | LSA 变化,增量更新 |
| 泛洪确认 | PSNP(逐包确认) | 显式 LSA Ack |
| 数据库同步 | CSNP + PSNP 对比同步 | DBD 序列号对比(Exchange 阶段) |
3.7 多协议支持
| 协议 | IS-IS | OSPF |
|---|---|---|
| IPv4 | 原生支持(RFC 1195) | 原生支持 |
| IPv6 | 原生支持(RFC 5120) | 需要 OSPFv3(RFC 5340) |
| SR-MPLS | 原生支持(RFC 7810) | 支持(RFC 7917) |
| SRv6 | 原生支持(RFC 8667) | 支持(RFC 9367) |
| MPLS TE | 原生支持(RFC 5305) | 支持(RFC 3630) |
四、实战配置/案例分析
4.1 相同拓扑的 IS-IS 与 OSPF 配置对比
########## IS-IS 配置 ##########
# R1
sysname R1
isis 1
net 49.0001.0000.0000.0001.00
#
interface GigabitEthernet0/0/0
ip address 10.1.0.1 30
isis enable 1
isis circuit-level level-1-2
#
interface LoopBack0
ip address 10.0.0.1 32
#
########## OSPF 配置 ##########
# R1
sysname R1
ospf 1 router-id 10.0.0.1
#
interface GigabitEthernet0/0/0
ip address 10.1.0.1 30
ospf enable 1 area 0
#
interface LoopBack0
ip address 10.0.0.1 32
ospf enable 1 area 0
4.2 IS-IS 与 OSPF 邻居建立对比
# IS-IS 邻居查看
<Huawei> display isis peer
Total Peer Count : 1
System-id : 0000.0000.0002
Interface : GigabitEthernet0/0/0
State : Up
Level : Level-2
# OSPF 邻居查看
<Huawei> display ospf peer
Router ID: 10.0.0.2
Address: 10.1.0.2
Process ID: 1, Router ID: 10.0.0.2
State: Full Options: 0x02
Address: 10.1.0.2
Interface: GigabitEthernet0/0/0
4.3 案例分析:大规模网络中选择 IS-IS
场景:某省级运营商骨干网,约 500 台路由器,需要承载 IPv4/IPv6 双栈流量,并计划部署 SR-MPLS 进行流量工程。
选择 IS-IS 的理由:
- TLV 扩展灵活:IS-IS 通过 TLV 扩展机制,可以轻松支持 SR-MPLS(RFC 7810)、多拓扑(RFC 5120)、IPv6(RFC 5120)等新功能,无需修改协议核心框架
- LSDB 规模小:IS-IS 的 LSP 使用 TLV 编码,相比 OSPF 的多种 LSA 类型,LSDB 占用内存更小
- 区域设计灵活:无需骨干区域约束,网络拓扑调整时不受"必须直连 Area 0"限制
- DIS 抢占式选举:DIS 故障恢复后能自动重新当选,收敛更快
- 运营商历史沉淀:该运营商早期 ISDN 网络已运行 IS-IS,技术人员经验丰富
4.4 案例分析:企业网中选择 OSPF
场景:某大型企业园区网络,约 80 台路由器,以 IPv4 为主,运维团队熟悉 Cisco 和 Huawei 设备。
选择 OSPF 的理由:
- 生态成熟:OSPF 是 TCP/IP 网络的原生协议,几乎所有网络工程师都熟悉 OSPF
- 文档丰富:OSPF 的相关文档、培训资料、故障案例极为丰富
- 功能完备:Stub/Totally Stub/NSSA 等特殊区域类型适合企业网的层级化部署
- 工具链完善:主流网管平台对 OSPF 的支持和可视化更好
- IPv6 迁移平滑:OSPFv3 支持无状态地址自动配置
4.5 案例分析:IS-IS 邻居异常(MTU 问题)
故障背景:R1 和 R2 之间 IS-IS Level-2 邻居反复 Up/Down。
排查:
# R1 接口 MTU
<R1> display this interface GigabitEthernet0/0/0
mtu 1500
# R2 接口 MTU
<R2> display this interface GigabitEthernet0/0/0
mtu 9000
# IS-IS 日志
*Sep 1 10:23:45.123 +0800 R1 %%%-0262042 IsIsNeighborStateChange[l2]
The state of IS-IS neighbor changed to Down.
Reason: LSP too long
根因:IS-IS LSP 报文直接封装在二层帧中,如果一侧 MTU 为 1500 而另一侧为 9000,当 LSP 大小超过 1500 时,小 MTU 侧无法接收完整报文。
修复方案(二选一):
# 方案1:统一 MTU
interface GigabitEthernet0/0/0
mtu 9000
# 方案2:忽略 MTU 不匹配(应急方案)
isis 1
isis mtu-ignore
五、总结
| 对比维度 | IS-IS 优势 | OSPF 优势 |
|---|---|---|
| 协议扩展性 | TLV 机制灵活扩展 | LSA 机制稳定成熟 |
| 区域设计 | 无需骨干区域约束 | 特殊区域类型丰富 |
| 邻居选举 | DIS 抢占式,收敛快 | DR/BDR 双重备份,稳定 |
| 生态与工具 | 运营商领域经验丰富 | 企业网和企业级产品生态强大 |
| 学习曲线 | 需理解 OSI/CLNS 背景 | 与 TCP/IP 知识体系一致 |
| 多拓扑支持 | 原生支持(RFC 5120) | 需要额外扩展 |
| 适用场景 | 大型运营商/数据中心 | 企业网/园区网 |
| 选择建议 | 推荐协议 |
|---|---|
| 大型运营商骨干网 | IS-IS |
| 数据中心 Spine-Leaf | IS-IS 或 OSPF |
| 企业园区网 | OSPF |
| 已有 OSPF 网络扩容 | OSPF |
| SR-MPLS/SRv6 部署 | IS-IS(更成熟) |
| 多拓扑路由需求 | IS-IS |
思考
- IS-IS 的 TLV 扩展机制为什么被认为比 OSPF 的 LSA 扩展机制更灵活?请从协议报文结构和向后兼容性两个角度分析。
- IS-IS 的 DIS 选举采用抢占式,而 OSPF 的 DR 选举是非抢占式的。你认为哪种设计更合理?为什么?
- 在已经运行 OSPF 的网络中,如果需要进行 IGP 迁移到 IS-IS,需要考虑哪些风险和迁移策略?
下篇预告:第74篇:IS-IS 网络类型与 DIS 选举