关键词:IS-IS、SR-MPLS、Segment Routing、SRv6、TI-LFA、TE、Flex-Algorithm、部署演进
第80篇:IS-IS over SR-MPLS 的部署演进
一、引言
随着网络规模的扩大和业务需求的多样化,传统 IS-IS 的单一最短路径已经无法满足复杂的流量调度需求。SR-MPLS(Segment Routing over MPLS)作为新一代流量工程方案,与 IS-IS 结合后,为网络提供了可编程的转发路径、高效的保护机制和简化的运维模式。
IS-IS over SR-MPLS 的部署演进代表了 IGP 协议从"单纯路由"到"路由+转发编程"的转型,是当前运营商骨干网和大型企业网的主流技术方向。
二、核心概念
2.1 SR-MPLS 基本原理
SR-MPLS(Segment Routing over MPLS)通过 MPLS 标签栈实现路径编程:
| 概念 | 说明 |
|---|---|
| Segment(段) | 网络中一个有明确意义的路径片段,用 MPLS 标签表示 |
| Segment List(段列表) | 多个 Segment 的有序集合,定义一条完整路径 |
| SID(Segment Identifier) | 段的唯一标识符,映射到 MPLS 标签 |
| SRGB(Segment Routing Global Block) | 全局 SID 标签范围 |
| Node SID | 标识目标节点的 SID,等价于到目标的最短路径 |
| Adj-SID(Adjacency SID) | 标识特定出方向的 SID,用于强制流量走特定链路 |
2.2 IS-IS 在 SR-MPLS 中的角色
IS-IS 协议通过扩展 TLV 来分发 SR 相关的路由和标签信息:
| TLV 类型 | 名称 | 作用 |
|---|---|---|
| 137(扩展) | Router-TE Reachability | 分发 TE 度量信息(RFC 5305) |
| 140 | Router-Address | 分发 Loopback 地址(RFC 5305) |
| 141 | TE-Default-Traffic-Parameters | TE 默认流量参数 |
| 148(扩展) | IS Reachability | 分发 TE 邻接度量 |
| 2029 | SRv6 Capability | SRv6 能力(RFC 8667) |
| 2426 | SR-Algorithm | SR 算法定义(RFC 8665) |
| 2427 | SR-Algorithm-Range | SR 算法范围 |
2.3 SR-MPLS 的部署阶段
IS-IS over SR-MPLS 的部署通常分为以下阶段:
| 阶段 | 部署内容 | 目标 |
|---|---|---|
| 阶段1:IS-IS 基础优化 | 宽度量、MT-ISIS、TE | 为 SR 做准备 |
| 阶段2:SR Global Block 规划 | SRGB 范围、Node SID 分配 | SID 地址规划 |
| 阶段3:SR 策略部署 | SR Policy、Explicit Path | 流量工程策略 |
| 阶段4:SR 保护部署 | TI-LFA、BFD | 快速保护和检测 |
| 阶段5:SRv6 演进 | SRv6 SID、End 行为 | IPv6 承载演进 |
2.4 Node SID 与 Adj-SID 的分配
| SID 类型 | 分配方式 | 作用 |
|---|---|---|
| Node SID | 全局唯一,通常按 Router ID 顺序分配 | 表示到目标节点的最短路径 |
| Adj-SID(出向) | 本地有效,标识特定出接口/邻居 | 强制流量走指定链路 |
| Adj-SID(反向) | 本地有效,标识反向链路 | 用于保护路径 |
| Binding SID | 全局或本地,绑定到 SR Policy | 表示一条显式路径 |
三、技术细节
3.1 SR-MPLS 网络架构

数据包转发流程:
- CE1 发往 CE2 的流量到达 R1
- R1 匹配 SR Policy,压入标签栈:[16003, 16004],按顶部标签 16003 转发到 R3(Node SID 16003 = R3 最短路径)
- R3 弹出顶部标签 16003(自身 Node SID),暴露下一标签 16004,转发到 R4(Node SID 16004 = R4 最短路径)
- R4 弹出标签 16004(自身 Node SID),转发到 CE2
3.2 IS-IS 分发 SR 信息
IS-IS 通过扩展的 Router-TE Reachability TLV(137 扩展)分发 SR 信息:
| 子 TLV | 名称 | 作用 |
|---|---|---|
| SR Node SID | 节点 SID 信息 | 通告自己的 Node SID 和 SRGB |
| SR Adjacency SID | 邻接 SID 信息 | 通告特定邻接的 Adj-SID |
| SR Algorithm | SR 算法 | 通告使用的 Flex-Algorithm |
3.3 TI-LFA(Topology-Independent Loop-Free Alternate)
TI-LFA 是 SR-MPLS 提供的高效链路/节点保护机制:
| 保护类型 | 说明 |
|---|---|
| 链路保护 | 当出方向链路故障时,通过绕道路径转发 |
| 节点保护 | 当下一跳节点故障时,通过绕道路径转发 |
| 保护计算 | 基于 IS-IS 拓扑信息,离线计算绕道路径 |
| 保护激活 | 利用 Adj-SID 构造绕道路径的标签栈 |

3.4 Flex-Algorithm
Flex-Algorithm 是 IS-IS 中定义的可定制 SPF 算法:
| 特性 | 说明 |
|---|---|
| 算法编号 | 0 = 最短路径(默认),128~254 = 用户自定义 |
| 度量类型 | 可基于 IGP Metric、TE Metric、Delay 等 |
| 排除规则 | 可排除特定链路或节点 |
| 包含规则 | 可强制包含特定链路或颜色属性 |
| 应用 | 多租户、多业务、差异化 SLA |
四、实战配置/案例分析
4.1 IS-IS 配置 SR-MPLS
# R1 配置 SR-MPLS
sysname R1
#
# 1. 配置宽度量(SR 前置条件)
isis 1
net 49.0001.0000.0000.0001.00
cost-style wide level-2
# 2. 配置 Loopback(作为 SR 头端和 Node SID 绑定地址)
interface LoopBack0
ip address 10.0.0.1 32
#
# 3. 使能 SR 全局能力
segment-routing
global-block 16000 23999 # SRGB: 16000~23999
local-block 24000 24999 # 本地 SID 范围
#
# 4. 在 IS-IS 中使能 SR
isis 1
segment-routing traffic-eng
algorithm 0 enable # 使能默认算法(最短路径)
#
# 5. 配置 Node SID
interface LoopBack0
ip address 10.0.0.1 32
isis enable 1
isis sr sid 16001 # Node SID = 16001
#
# 6. 配置 Adj-SID(接口级别,可选自动分配)
interface GigabitEthernet0/0/0
isis sr adjacent-sid 16001 # 出向 Adj-SID
4.2 配置 SR Policy
# R1 上配置 SR Policy(显式路径)
# 目标:CE1→R1→R3→R4→CE2(不走 R2)
#
# 定义 SR Policy
segment-routing policy color 100 destination 10.0.0.4
segment-list explicit-path-1
#
# 定义段列表(Explicit Path)
segment-routing segment-list explicit-path-1
index 10
sid 16003 # R3 Node SID
index 20
sid 16004 # R4 Node SID
#
# 将策略应用到接口或流量分类
interface GigabitEthernet0/0/3 # CE1 接口
isis enable 1
4.3 配置 TI-LFA 保护
# 全局使能 TI-LFA
segment-routing
ti-lfa enable
#
# IS-IS 进程中也需启用
isis 1
segment-routing traffic-eng
ti-lfa enable
algorithm 0 enable
4.4 验证 SR-MPLS 部署
# 查看 SR 全局配置
<R1> display segment-routing configuration
SR Global Block : 16000 - 23999
SR Local Block : 24000 - 24999
# 查看 Node SID
<R1> display segment-routing sid index 16001
SID Index : 16001
SID Type : Node SID
Mapping : 10.0.0.1
# 查看 IS-IS 分发的 SR 信息
<R1> display isis sr local-block
#
# 查看 SR Policy
<R1> display segment-routing policy
#
# 查看 TI-LFA 保护路径
<R1> display segment-routing ti-lfa
4.5 案例分析:SR-MPLS 标签转发表异常
故障背景:R1 配置的 SR Policy 不生效,流量仍走最短路径而非显式路径。
排查:
# 检查 SR Policy 状态
<R1> display segment-routing policy
Policy Name : color 100 destination 10.0.0.4
State : Active # 状态正常
Segment List : explicit-path-1
Preference : 30
# 检查是否有更高优先级的策略覆盖
<R1> display segment-routing policy detail
# 发现有一条默认策略(最短路径)优先级为 50
# 显式路径策略优先级 30 < 50,被最短路径覆盖
根因:SR Policy 的优先级(Preference)配置较低,默认最短路径策略优先级更高,流量仍走最短路径。
修复:
# 提高显式路径策略的优先级
segment-routing policy color 100 destination 10.0.0.4
segment-list explicit-path-1
preference 70 # 提高到 70
4.6 案例分析:IS-IS 未分发 Node SID
故障背景:R2 无法学到 R1 的 Node SID,导致 SR 标签交换失败。
排查:
# R2 上查看 SR 全局 SID 表
<R2> display segment-routing global-sid
# 缺少 R1 的 Node SID (16001)
# R1 上检查 IS-IS SR 配置
<R1> display isis brief segment-routing
# IS-IS SR 未使能
根因:R1 配置了 SR 全局参数,但未在 IS-IS 进程中使能 SR 信息分发。
修复:
# R1 在 IS-IS 中使能 SR
isis 1
segment-routing traffic-eng
algorithm 0 enable
五、总结
| 部署阶段 | 关键配置 | 验证命令 |
|---|---|---|
| IS-IS 基础 | cost-style wide | display isis brief |
| SRGB 规划 | segment-routing global-block | display segment-routing configuration |
| Node SID | isis sr sid | display segment-routing sid |
| SR Policy | segment-routing policy | display segment-routing policy |
| TI-LFA | ti-lfa enable | display segment-routing ti-lfa |
| SR-MPLS 优势 | 说明 |
|---|---|
| 简化运维 | 无需每台设备维护 RSVP-TE 状态 |
| 灵活调度 | 通过 Segment List 编程转发路径 |
| 高效保护 | TI-LFA 提供毫秒级故障恢复 |
| 可扩展性 | Flex-Algorithm 支持差异化转发 |
| 平滑演进 | 从 SR-MPLS 演进到 SRv6 |
思考
- SR-MPLS 使用 IS-IS 分发 SID 信息,这与传统 RSVP-TE 手动配置 TE 隧道的方式相比,在运维效率上有何优势?
- Node SID 表示到目标节点的最短路径。如果需要流量不走最短路径,应该如何利用 Adj-SID 或 SR Policy 实现?
- TI-LFA 保护基于 IS-IS 拓扑计算绕道路径。如果 IS-IS 拓扑信息不准确(如链路状态延迟更新),TI-LFA 保护会受到什么影响?
下篇预告:第81篇:BGP基础:AS与eBGP/iBGP基本概念