第71篇:IS-IS 协议基础——CLNS 与 OSI 协议栈

关键词

IS-IS、CLNS、OSI、NSAP、NET、System ID、路由协议


一、IS-IS 的起源

IS-IS(Intermediate System to Intermediate System,中间系统到中间系统) 是 ISO(国际标准化组织)为 OSI 协议栈设计的路由协议,后来被 IETF 扩展支持 IP 路由。

1.1 关键历史

时间 事件
1980s ISO 为 OSI 网络层(CLNP)设计了 IS-IS
1990 IETF 发布 RFC 1195——Integrated IS-IS,支持 IP
至今 IS-IS 成为运营商和大型网络的 IGP 首选之一

1.2 IS-IS 的独特地位

在当今网络中,IS-IS 是唯一同时支持 OSI 寻址和 IP 路由的 IGP 协议

  • OSPF:纯 IP 协议
  • IS-IS:原生 OSI 协议,扩展支持 IP

二、OSI 协议栈回顾

要理解 IS-IS,必须先了解 OSI 协议栈的术语:

OSI 层 OSI 名称 IP 世界的对应
网络层 CLNP(无连接网络协议) IP
网络层子层 CLNS(无连接网络服务) IP 服务
网络层 ES(端系统) 主机/终端
网络层 IS(中间系统) 路由器
网络层子层 SNPA(子网连接点) 二层接口/MAC 地址

2.1 ES vs IS

终端(ES)—— IS(路由器)—— IS(路由器)—— 终端(ES)
   |              |               |              |
 主机           路由器           路由器          主机
  • ES(End System):主机,不转发数据包
  • IS(Intermediate System):路由器,转发数据包

2.2 对应协议

OSI 协议 作用 IP 对应
IS-IS IS 之间的路由协议 OSPF
ES-IS ES 发现 IS 的协议 ICMP Router Discovery
CLNP 无连接网络协议 IP
CLNS 无连接网络服务 IP 服务

三、IS-IS 的地址结构(NSAP/NET)

OSPF 使用 Router ID(32 位)标识路由器。IS-IS 使用 NSAP(Network Service Access Point) 地址。

3.1 NSAP 地址结构

NSAP 地址长度可变(8~20 字节),标准结构如下:

| Area Address | System ID | NSEL |
|  1~13 字节   |  6 字节   | 1 字节 |

3.2 NET(Network Entity Title)

NET 是 NSEL 为 0x00 的特殊 NSAP,用于标识路由器本身。

NET = Area Address + System ID + 00

3.3 典型示例

49.0001.1111.1111.1111.00
│      └──────┬──────┘ └┘
│             System ID  NSEL=00
└─ Area Address

解释: - 49.0001:Area Address(区域地址),可以理解为 OSPF 的 Area ID - 1111.1111.1111:System ID(6 字节,12 个十六进制字符) - 00:NSEL(固定为 00 表示 NET)

3.4 System ID 的配置规范

System ID 必须满足: - 全网唯一 - 固定 6 字节(12 个十六进制字符) - 通常用 Router ID 转换或 IP 地址映射

常见做法(用 Loopback 地址映射 System ID):

Loopback 地址: 10.1.1.1  →  System ID: 0100.1001.0001
                              ↑      ↑      ↑
                            10.1   1.1     1.1

或者更简单的方式:

Loopback 地址: 192.168.1.1  →  System ID: 1921.6800.1001

四、IS-IS 与 OSPF 的初步对比

对比项 IS-IS OSPF
协议起源 OSI IP
传输层 直接封装在二层 IP 协议 89
寻址方式 NSAP/NET Router ID (IPv4)
区域结构 基于路由器级别 基于接口区域
Hello 间隔 默认 10s(广播) 默认 10s
认证 支持(更灵活) 支持
扩展性 极强(TLV 机制) 良好

五、IS-IS 的 TLV 机制

IS-IS 采用 TLV(Type-Length-Value) 编码格式,这是它扩展性极强的根本原因。

5.1 TLV 结构

| Type (1 字节) | Length (1 字节) | Value (可变) |

5.2 为什么 TLV 重要

OSPF:LSA 的格式是固定的,要增加新功能(如 IPv6、TE)需要定义新的 LSA 类型。

IS-IS:只需要定义新的 TLV 类型码。例如:

TLV 类型码 名称 用途
1 Area Addresses 区域地址
2 IS Neighbors IS-IS 邻居
4 PART 分区
128 IP Interface Address IP 接口地址
132 IP Interface Address IP 接口地址(IPv4)
135 TE IP Metric TE 路由度量
137 Hostname 动态主机名
232 IPv6 Interface Address IPv6 地址
236 IPv6 Reachability IPv6 路由

添加新功能 → 注册新的 TLV 类型码 → 向后兼容。


六、IS-IS 在现网中的地位

6.1 谁用 IS-IS

场景 原因
大型运营商 扩展性强、稳定性好
MPLS 骨干网 与 LDP/RSVP-TE 配合完美
SR-MPLS/SRv6 原生 TLV 扩展支持 Segment Routing
数据中心 CLOS 架构中的 IGP 选择

6.2 为什么运营商偏爱 IS-IS

  1. 纯二层封装——不需要 IP 即可运行
  2. 双栈原生支持——IPv4/IPv6 在同一进程中
  3. CPU 占用更低——SPF 计算更高效
  4. 与 MPLS 天然集成——LDP 自动使用 IS-IS 路由
  5. 弹性扩展——TLV 机制不依赖协议版本升级

七、总结

知识点 核心要点
IS-IS 起源 为 OSI 协议栈设计,后扩展支持 IP
地址结构 NET = Area Address + System ID + 00
System ID 6 字节,全网唯一
TLV 机制 高度可扩展,新增功能只需定义新 TLV
OSI 术语 IS = 路由器,ES = 主机,SNPA = 接口
现网地位 运营商骨干网 IGP 首选

八、思考

  1. IS-IS 与 OSPF 在协议起源上有什么不同?
  2. NET 地址由哪三部分组成?NSEL 固定为多少?
  3. 为什么 IS-IS 的 TLV 机制使其扩展性优于 OSPF?
  4. System ID 必须满足什么条件?如何使用 Loopback 地址映射 System ID?
  5. 为什么大型运营商网络更倾向于使用 IS-IS 而非 OSPF?

下篇预告:第72篇《IS-IS 区域与路由等级——Level-1、Level-2、Level-1-2》——理解 IS-IS 独特的两层路由体系。