第73篇:IS-IS 与 OSPF 的异同对比
关键词
IS-IS、OSPF、IGP 对比、协议设计、链路状态、SPF
一、同一类,不同路
IS-IS 和 OSPF 都是链路状态 IGP 路由协议,都使用 SPF 算法计算最短路径。但由于历史起源不同,两者在设计哲学上有显著差异。
二、总体对比
| 对比维度 |
OSPF |
IS-IS |
| 标准化组织 |
IETF(RFC 2328) |
ISO(OSI)+ IETF |
| 起源时间 |
1980s 末 |
1980s 初(早于 OSPF) |
| 网络层依赖 |
必须基于 IP(协议 89) |
直接基于二层(不依赖 IP) |
| 寻址方式 |
Router ID (IPv4) |
NET (NSAP 地址) |
| 区域设计 |
基于接口 |
基于路由器 |
| 可靠性机制 |
可靠泛洪(ACK) |
可靠泛洪(PSNP) |
| 扩展机制 |
新增 LSA 类型 |
新增 TLV |
三、核心差异详解
3.1 区域设计
| 对比项 |
OSPF |
IS-IS |
| 区域粒度 |
每个接口可属于不同区域 |
整台路由器属于一个区域 |
| ABR/L1/L2 |
ABR 连接多个区域 |
L1/L2 路由器连接 L1 和 L2 |
| 区域 0 |
Area 0(骨干,固定编号) |
Level-2(逻辑骨干,无编号) |
| 区域间选路 |
Type 3 LSA(距离矢量) |
L1→L2 路由泄露 |
| Virtual Link |
支持 |
不支持(但可配置 L2 隧道) |
3.2 路由计算
| 对比项 |
OSPF |
IS-IS |
| 区域内 |
SPF |
SPF(每个级别分别计算) |
| 区域间 |
距离矢量(Type 3) |
L2 路由跨区域传播 |
| SPF 运行次数 |
每个区域一次 SPF |
L1 一次 + L2 一次 |
| 增量 SPF |
标准 SPF(可优化) |
部分 SPF(PRC)更高效 |
IS-IS 的优势:由于只有 L1 和 L2 两个"SPF 域",无论有多少个区域,每台路由器最多运行两次 SPF。OSPF 每个区域各运行一次 SPF。
3.3 报文封装
OSPF:IP 封装
| MAC 头 | IP 头 | OSPF 头 | Payload |
| --- | --- | --- | --- |
IP 协议号: 89
IS-IS:直接二层封装
| MAC 头 | IS-IS 头 | Payload |
| --- | --- | --- |
LLC: 0xFEFE
IS-IS 的优势:不依赖 IP 层,可以运行在没有配置 IP 的链路上。
3.4 邻居建立
| 对比项 |
OSPF |
IS-IS |
| 邻居发现 |
Hello 组播 224.0.0.5 |
Hello 组播 01-80-C2-00-00-15 |
| 邻居状态 |
8 个状态(Down→Full) |
3 个状态(Down→Init→Up) |
| 邻接建立 |
不需要先建立邻居(有状态机) |
先建立邻居,再同步 LSDB |
| 3 路握手 |
通过邻居状态机 |
通过 IIH 中的邻居列表 |
3.5 LSDB 同步
| 对比项 |
OSPF |
IS-IS |
| LSA/LSP 名称 |
LSA(链路状态通告) |
LSP(链路状态 PDU) |
| LSA/LSP 刷新 |
每 30 分钟刷新(周期) |
默认每 15 分钟刷新 |
| 老化时间 |
MaxAge = 3600s |
MaxAge = 1200s(20 分钟) |
| 确认机制 |
隐式确认 + 显式确认 |
PSNP 确认 |
| 序列号空间 |
线性(0x80000001~0x7FFFFFFF) |
线性 + 剩余寿命 |
四、扩展性对比
4.1 协议扩展方式
OSPF 扩展方式:
定义新 LSA 类型(如 Type 10 Opaque LSA 用于 TE)
优点:结构清晰
缺点:新增功能需要协议标准更新
IS-IS 扩展方式:
定义新 TLV 类型(如 TLV 135 用于 TE Metric)
优点:向后兼容,自由灵活
缺点:不同厂商可能定义不同 TLV
4.2 IPv6 支持
| 对比项 |
OSPF |
IS-IS |
| IPv6 协议 |
OSPFv3(完全新协议) |
IS-IS(新增 TLV 232/236) |
| 是否独立进程 |
是,需要单独运行 OSPFv3 |
否,同一进程同时支持 IPv4/IPv6 |
| 双栈部署 |
需要两套配置 |
一套配置 |
4.3 Segment Routing 支持
| 对比项 |
OSPF |
IS-IS |
| SR 扩展 LSA/TLV |
Opaque LSA |
TLV 扩展 |
| SR-MPLS Prefix-SID |
✅ |
✅ |
| SRv6 |
✅ |
✅ |
五、性能对比
5.1 收敛速度
| 场景 |
OSPF |
IS-IS |
| 链路故障检测 |
依赖物理层/BFD |
依赖物理层/BFD(类似) |
| SPF 计算 |
每个区域独立 SPF |
L1/L2 独立 SPF |
| LSA/LSP 泛洪 |
可靠泛洪(逐跳 ACK) |
可靠泛洪(PSNP 确认) |
| 典型收敛时间 |
<1s(配合 BFD) |
<1s(配合 BFD) |
5.2 资源占用
| 对比项 |
OSPF |
IS-IS |
| CPU 占用 |
区域越多 SPF 计算越多 |
固定 2 次 SPF |
| 内存占用 |
LSDB 大小 = 区域内 LSA |
LSP 总数通常更少 |
| 大型网络 |
300+ 路由器可能压力大 |
可支持 1000+ 路由器 |
六、运维与排错对比
| 运维项 |
OSPF |
IS-IS |
| 配置复杂度 |
略复杂(需要宣告网段) |
简单(接口使能即可) |
| 排查命令 |
display ospf xxx |
display isis xxx |
| 隧道兼容性 |
需要 OSPF 网络类型调整 |
天然支持隧道 |
| 故障定位 |
邻居状态机详细 |
状态少,更容易定位 |
七、选择建议
7.1 什么时候选择 OSPF?
- 企业园区网(90% 以上的企业用 OSPF)
- 中小型网络(几十台到几百台路由器)
- 团队更熟悉 OSPF
- 与其他 OSPF 网络互联
7.2 什么时候选择 IS-IS?
- 运营商骨干网(电信级网络)
- 大型网络(上千台路由器)
- 需要运行 MPLS/SR-MPLS/SRv6
- 需要同时支持 IPv4/IPv6 双栈
- 需要一个极稳定、扩展性强的 IGP
八、总结
| 对比维度 |
OSPF 优势 |
IS-IS 优势 |
| 易用性 |
✅ 更直观易懂 |
❌ 概念较多 |
| 扩展性 |
❌ 需要新增 LSA 类型 |
✅ TLV 机制灵活 |
| IPv6 支持 |
❌ 需要独立 OSPFv3 |
✅ 同一进程 |
| 大规模网络 |
❌ 区域越多 SPF 越多 |
✅ 固定 2 次 SPF |
| 运营商网络 |
❌ 较少使用 |
✅ 主流选择 |
| 企业网络 |
✅ 主流选择 |
❌ 较少使用 |
九、思考
- IS-IS 和 OSPF 在区域划分粒度上有什么本质区别?
- 为什么 IS-IS 在大规模网络中 SPF 计算的 CPU 开销比 OSPF 更可控?
- IS-IS 为什么可以直接封装在二层,而 OSPF 必须封装在 IP 之上?
- 如果一个网络需要同时支持 IPv4 和 IPv6,IS-IS 和 OSPF 哪个部署更简单?
- 在什么场景下应该优先选择 OSPF,什么场景下应该优先选择 IS-IS?
下篇预告:第74篇《IS-IS 网络类型与 DIS 选举》——了解 IS-IS 的 DIS 与 OSPF 的 DR 有什么不同。