关键词: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 的理由:

  1. TLV 扩展灵活:IS-IS 通过 TLV 扩展机制,可以轻松支持 SR-MPLS(RFC 7810)、多拓扑(RFC 5120)、IPv6(RFC 5120)等新功能,无需修改协议核心框架
  2. LSDB 规模小:IS-IS 的 LSP 使用 TLV 编码,相比 OSPF 的多种 LSA 类型,LSDB 占用内存更小
  3. 区域设计灵活:无需骨干区域约束,网络拓扑调整时不受"必须直连 Area 0"限制
  4. DIS 抢占式选举:DIS 故障恢复后能自动重新当选,收敛更快
  5. 运营商历史沉淀:该运营商早期 ISDN 网络已运行 IS-IS,技术人员经验丰富

4.4 案例分析:企业网中选择 OSPF

场景:某大型企业园区网络,约 80 台路由器,以 IPv4 为主,运维团队熟悉 Cisco 和 Huawei 设备。

选择 OSPF 的理由:

  1. 生态成熟:OSPF 是 TCP/IP 网络的原生协议,几乎所有网络工程师都熟悉 OSPF
  2. 文档丰富:OSPF 的相关文档、培训资料、故障案例极为丰富
  3. 功能完备:Stub/Totally Stub/NSSA 等特殊区域类型适合企业网的层级化部署
  4. 工具链完善:主流网管平台对 OSPF 的支持和可视化更好
  5. 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

思考

  1. IS-IS 的 TLV 扩展机制为什么被认为比 OSPF 的 LSA 扩展机制更灵活?请从协议报文结构和向后兼容性两个角度分析。
  2. IS-IS 的 DIS 选举采用抢占式,而 OSPF 的 DR 选举是非抢占式的。你认为哪种设计更合理?为什么?
  3. 在已经运行 OSPF 的网络中,如果需要进行 IGP 迁移到 IS-IS,需要考虑哪些风险和迁移策略?

下篇预告:第74篇:IS-IS 网络类型与 DIS 选举