第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
- 纯二层封装——不需要 IP 即可运行
- 双栈原生支持——IPv4/IPv6 在同一进程中
- CPU 占用更低——SPF 计算更高效
- 与 MPLS 天然集成——LDP 自动使用 IS-IS 路由
- 弹性扩展——TLV 机制不依赖协议版本升级
七、总结
| 知识点 | 核心要点 |
|---|---|
| IS-IS 起源 | 为 OSI 协议栈设计,后扩展支持 IP |
| 地址结构 | NET = Area Address + System ID + 00 |
| System ID | 6 字节,全网唯一 |
| TLV 机制 | 高度可扩展,新增功能只需定义新 TLV |
| OSI 术语 | IS = 路由器,ES = 主机,SNPA = 接口 |
| 现网地位 | 运营商骨干网 IGP 首选 |
八、思考
- IS-IS 与 OSPF 在协议起源上有什么不同?
- NET 地址由哪三部分组成?NSEL 固定为多少?
- 为什么 IS-IS 的 TLV 机制使其扩展性优于 OSPF?
- System ID 必须满足什么条件?如何使用 Loopback 地址映射 System ID?
- 为什么大型运营商网络更倾向于使用 IS-IS 而非 OSPF?
下篇预告:第72篇《IS-IS 区域与路由等级——Level-1、Level-2、Level-1-2》——理解 IS-IS 独特的两层路由体系。