关键词:IS-IS、narrow metric、wide metric、cost-style、RFC 1576、TE、度量值
第79篇:IS-IS 开销类型:narrow 与 wide 模式
一、引言
IS-IS 协议有两种度量值(Metric)模式:窄度量(Narrow Metric)和宽度量(Wide Metric)。窄度量是 IS-IS 的原始度量方式,仅支持 6 位度量值(1~63);宽度量是 RFC 1576 定义的扩展,支持 24 位度量值(1~16777215)。
在现代网络中,尤其是需要部署 MPLS TE(流量工程)或 SR(Segment Routing)的场景下,宽度量模式已成为必须。理解两种度量模式的区别和迁移方法,对网络规划至关重要。
二、核心概念
2.1 窄度量(Narrow Metric)
窄度量是 IS-IS 协议最初的度量设计:
| 特性 | 说明 |
|---|---|
| 度量位宽 | 6 位 |
| 度量范围 | 1~63(0 保留给伪节点链路) |
| 路径最大度量 | 1023(单路径最多 16 跳 × 63) |
| TLV 类型 | 128(Area Addresses)、132(IS Neighbors)、135(IP Internal Route)、142(IP External Route) |
| 度量维度 | 仅支持单一度量(默认表示开销) |
2.2 宽度量(Wide Metric)
宽度量通过 RFC 1576 扩展,提供了更大的度量范围:
| 特性 | 说明 |
|---|---|
| 度量位宽 | 24 位 |
| 度量范围 | 0~16777215(实际使用 1~16777214) |
| 路径最大度量 | 无实际限制 |
| TLV 类型 | 137(IP Extended IP Reachability)、148(IS Neighbors Extended)、150(Internal Route Domain ID)、237(IPv6 Extended Reachability) |
| 度量维度 | 支持开销(Metric)、延迟(Delay)、带宽(Bandwidth)、可靠性(Reliability)四个维度 |
2.3 两种模式的 TLV 对比
| 信息类型 | Narrow TLV | Wide TLV |
|---|---|---|
| IS 邻居 | TLV 132(含 6 位度量) | TLV 148(含 24 位度量) |
| IPv4 内部路由 | TLV 135(含 6 位度量) | TLV 137(含 24 位度量) |
| IPv4 外部路由 | TLV 142(含 6 位度量) | TLV 150(含 24 位度量) |
| IPv6 路由 | 不支持 | TLV 237(含 24 位度量) |
2.4 度量模式一致性要求
IS-IS 网络中的所有路由器必须使用相同的度量模式。如果一台路由器配置为 narrow 模式,另一台配置为 wide 模式:
- narrow 路由器无法解析 wide TLV(137/148/237)
- wide 路由器可以解析 narrow TLV(132/135/142),但不会同时使用两种 TLV
- 结果:双方无法正确学习彼此的路由信息
三、技术细节
3.1 度量值计算规则
| 维度 | Narrow | Wide |
|---|---|---|
| 接口度量配置 | 1~63 | 1~16777215 |
| 默认度量值 | 10 | 10 |
| 路径度量计算 | 逐跳累加 | 逐跳累加 |
| 度量上限检查 | 超过 1023 视为不可达 | 无实际限制 |
| 伪节点度量 | 固定为 0 | 固定为 0 |
3.2 宽度量的多维度量
宽度量不仅支持更宽的度量范围,还支持多维度量:
| 度量维度 | 名称 | 用途 |
|---|---|---|
| Metric | 开销 | 传统路由开销,SPF 计算使用 |
| Delay | 延迟 | 链路延迟(微秒) |
| Bandwidth | 带宽 | 链路可用带宽(bps) |
| Reliability | 可靠性 | 链路可靠性指标 |
注意:虽然宽度量定义了四种度量维度,但目前大多数实现仅使用 Metric(开销)维度。Delay、Bandwidth、Reliability 主要用于 MPLS TE 的场景。
3.3 Narrow 到 Wide 的迁移
迁移过程中需要注意:
- 全网一致性:迁移必须全网同步,不能部分设备为 narrow、部分为 wide
- 回退方案:迁移前准备好回退配置
- 业务影响:迁移期间 IS-IS 邻居会短暂中断
迁移步骤:

3.4 宽度量与 SR-MPLS / MPLS TE
宽度量模式是部署 SR-MPLS 和 MPLS TE 的前置条件:
| 功能 | Narrow 支持 | Wide 支持 |
|---|---|---|
| 基本 IPv4/IPv6 路由 | ✓ | ✓ |
| MPLS TE | ✗ | ✓ |
| 多拓扑路由(MT-ISIS) | ✗ | ✓ |
| SR-MPLS | ✗ | ✓ |
| SRv6 | ✗ | ✓ |
| Flex-Algorithm | ✗ | ✓ |
四、实战配置/案例分析
4.1 配置宽度量模式
# 配置宽度量模式
sysname R1
isis 1
net 49.0001.0000.0000.0001.00
cost-style wide level-1
cost-style wide level-2
# 查看当前度量模式
<R1> display isis brief
Metric type : Wide
4.2 配置接口度量值
# Narrow 模式:度量值 1~63
isis 1
cost-style narrow
#
interface GigabitEthernet0/0/0
isis cost 10 level-2
# Wide 模式:度量值 1~16777215
isis 1
cost-style wide
#
interface GigabitEthernet0/0/0
# 根据带宽设置度量值
isis cost 100 level-2 # 10GE 链路
#
interface GigabitEthernet0/0/1
isis cost 1000 level-2 # 1GE 链路
#
interface GigabitEthernet0/0/2
isis cost 10000 level-2 # 100M 链路
4.3 基于带宽的度量值规划
# 推荐:根据链路带宽配置度量值,实现按带宽负载均衡
# 100GE 链路
interface FortyGigabitEthernet1/0/0
isis cost 10 level-2
# 40GE 链路
interface FortyGigabitEthernet1/0/1
isis cost 25 level-2
# 10GE 链路
interface TenGigabitEthernet1/0/0
isis cost 100 level-2
# 1GE 链路
interface GigabitEthernet1/0/0
isis cost 1000 level-2
4.4 案例分析:Narrow 模式下的路由不可达
故障背景:某大型运营商网络使用 narrow 模式,一条长路径(超过 17 跳)的路由标记为不可达。
排查:
# 路径度量值计算
# 17 跳 × 63(单跳最大度量)= 1071 > 1023(narrow 路径上限)
# 路由标记为不可达(Unreachable)
<R1> display ip routing-table 10.100.0.0
# 该路由不在路由表中
# 原因:IS-IS SPF 计算中该路径度量超过 1023
根因:Narrow 模式下,IS-IS 路径度量上限为 1023。当路径跳数超过 16(1023/63 ≈ 16.2)且每跳使用较大度量值时,目标路由变为不可达。
修复:
# 全网迁移到 Wide 模式
# 所有路由器配置
isis 1
cost-style wide level-1
cost-style wide level-2
4.5 案例分析:Narrow 和 Wide 混配
故障背景:网络升级时,部分设备迁移到 wide 模式,部分仍为 narrow,导致路由不完整。
排查:
# R1(Wide 模式)
<R1> display isis brief
Metric type : Wide
# R2(Narrow 模式)
<R2> display isis brief
Metric type : Narrow
# R1 无法从 R2 学习到路由
<R1> display ip routing-table protocol isis
# 缺少 R2 起源的路由
# R2 也无法从 R1 学习到路由
<R2> display ip routing-table protocol isis
# 缺少 R1 起源的路由
根因:R1 使用 wide TLV(137/148)携带路由信息,R2 使用 narrow TLV(132/135)。双方无法解析对方的 TLV 格式,导致路由信息无法互通。
修复:
# 将 R2 也迁移到 Wide 模式
isis 1
cost-style wide level-1
cost-style wide level-2
4.6 案例分析:宽度量值不合理导致路由偏好异常
故障背景:迁移到 wide 模式后,部分流量走向了次优路径。
排查:
# R1 接口度量值配置
interface GigabitEthernet0/0/0 # 10GE 链路
isis cost 100 level-2
#
interface GigabitEthernet0/0/1 # 1GE 链路
isis cost 10 level-2 # 度量值反而更小!
根因:运维人员迁移到 wide 模式后,没有重新评估接口度量值。1GE 链路的度量值(10)小于 10GE 链路(100),导致流量错误地走 1GE 链路。
修复:
# 修正度量值
interface GigabitEthernet0/0/0 # 10GE 链路
isis cost 10 level-2
#
interface GigabitEthernet0/0/1 # 1GE 链路
isis cost 100 level-2
五、总结
| 对比维度 | Narrow | Wide |
|---|---|---|
| 度量范围 | 1~63 | 1~16777215 |
| 路径上限 | 1023 | 无实际限制 |
| TLV 类型 | 132/135/142 | 137/148/237 |
| 多维度量 | 不支持 | 支持(Metric/Delay/Bandwidth/Reliability) |
| TE/SR 支持 | 不支持 | 支持 |
| 适用场景 | 小型网络(遗留) | 所有现代网络 |
| 迁移建议 | 说明 |
|---|---|
| 优先 Wide | 新建网络直接使用 Wide 模式 |
| 全网同步 | Narrow → Wide 迁移需全网同时切换 |
| 重新评估度量 | 迁移后根据带宽重新规划接口度量值 |
| 回退准备 | 迁移前备份配置,确保可回退 |
思考
- Narrow 模式下路径度量上限为 1023。如果一个网络的直径超过 17 跳,即使每跳度量值配置为 1,为什么仍可能出现问题?
- 宽度量支持多维度量(Metric、Delay、Bandwidth、Reliability)。在实际部署 SR-MPLS 时,哪些度量维度会被实际使用?为什么?
- 在从 Narrow 迁移到 Wide 的过程中,为什么不能部分设备先切换、部分设备后切换?能否设计一个分阶段迁移方案?
下篇预告:第80篇:IS-IS over SR-MPLS 的部署演进