关键词: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 的迁移

迁移过程中需要注意:

  1. 全网一致性:迁移必须全网同步,不能部分设备为 narrow、部分为 wide
  2. 回退方案:迁移前准备好回退配置
  3. 业务影响:迁移期间 IS-IS 邻居会短暂中断

迁移步骤:

Narrow 到 Wide 的迁移 - 图示

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 迁移需全网同时切换
重新评估度量 迁移后根据带宽重新规划接口度量值
回退准备 迁移前备份配置,确保可回退

思考

  1. Narrow 模式下路径度量上限为 1023。如果一个网络的直径超过 17 跳,即使每跳度量值配置为 1,为什么仍可能出现问题?
  2. 宽度量支持多维度量(Metric、Delay、Bandwidth、Reliability)。在实际部署 SR-MPLS 时,哪些度量维度会被实际使用?为什么?
  3. 在从 Narrow 迁移到 Wide 的过程中,为什么不能部分设备先切换、部分设备后切换?能否设计一个分阶段迁移方案?

下篇预告:第80篇:IS-IS over SR-MPLS 的部署演进