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

关键词

IS-IS、SR-MPLS、Segment Routing、Prefix-SID、Adj-SID、LDP 替代


一、从 LDP 到 SR-MPLS

1.1 传统 MPLS 的标签分发

传统 MPLS 网络中,标签分发依赖 LDP(Label Distribution Protocol)

IGP(IS-IS/OSPF)→ 负责路由
     ↓
LDP → 为每个 IGP 前缀分配标签
     ↓
标签沿着 IGP 最短路径分发
     ↓
MPLS 转发

痛点: - 需要额外运行 LDP 协议 - IGP 和 LDP 的收敛需要协调 - 不支持显式路径(需要 RSVP-TE) - 复杂性高

1.2 SR-MPLS 的思路

SR-MPLS(Segment Routing MPLS) 将标签分配功能集成到 IGP 中:

IS-IS(扩展后)→ 同时负责路由和标签分配
                  ↓
无需 LDP!
IS-IS LSP 中携带 Prefix-SID/Adj-SID
                  ↓
MPLS 转发

二、IS-IS 的 SR 扩展

2.1 新增的 TLV

为了支持 SR-MPLS,IS-IS 在 wide 模式下新增了以下 TLV:

TLV 类型 名称 用途
22 IS-IS Router Capability 宣告路由器的 SR 能力
135 Extended IP Reachability 携带 Prefix-SID 子 TLV
22/222 IS-IS Extended IS Reachability 携带 Adj-SID 子 TLV
137 Dynamic Hostname SRGB 信息

2.2 Prefix-SID(前缀标签)

Prefix-SID 为每个 IGP 前缀分配一个全局标签:

IS-IS 为 Loopback 1.1.1.1/32 分配 Prefix-SID 16001

SRGB(Segment Routing Global Block)= 16000~23999

Prefix-SID = SRGB 起始值 + Index
           = 16000 + 1
           = 16001

特点: - 全局唯一(同一 SR 域内) - 预设的,不需要信令协议 - 沿着 IGP 最短路径转发

2.3 Adj-SID(邻接标签)

Adj-SID 为每个 IS-IS 邻接分配一个本地标签:

RouterA 到 RouterB 的 GE0/0/0 邻接 → 分配 Adj-SID = 24001

Adj-SID 是本地有效的,只在分配的路由器上有意义

特点: - 本地有效(不同路由器可以分配相同值) - 强制流量从指定邻接转发 - 支持显式路径


三、配置示例

3.1 启用 IS-IS SR

# 全局启用 SR
isis 1
 cost-style wide                   # SR 需要 wide Metric
 segment-routing mpls              # 启用 SR-MPLS

# 配置 SRGB
 segment-routing global-block 16000 23999

# 配置 Prefix-SID(在 Loopback 接口下)
interface LoopBack0
 isis enable 1
 isis prefix-sid index 1           # Prefix-SID = SRGB_起始 + 1 = 16001

3.2 配置 Adj-SID

# 接口下配置 Adj-SID(可选)
interface GigabitEthernet0/0/0
 isis enable 1
 isis adjacency-sid 24001          # 为该邻接分配 Adj-SID

# 也可以让 IS-IS 自动分配 Adj-SID
 isis adjacency-sid absolute 24001  # 绝对值的 Adj-SID

3.3 验证

# 查看 IS-IS SR 信息
display isis segment-routing

# 查看 Prefix-SID
display isis prefix-sid

# 查看 MPLS 标签转发表
display mpls forwarding-table

# 查看 SR-MPLS 隧道
display segment-routing mpls forwarding

四、IS-IS SR 的转发流程

4.1 基本转发

目的地:2.2.2.2(Prefix-SID = 16002)

数据包到达 RouterA:
  1. 查找标签 16002 对应的 FEC
  2. 是最短路径 → 标签交换
  3. 转发到下一跳

4.2 显式路径(使用 Segment List)

从 RouterA 到 RouterD 的显式路径:
  A → B → C → D

Segment List = {16003(Adj-A→C), 16004(Adj-C→D)}

数据包:
  RouterA: push 16004, push 16003 → 转发到 B
  RouterB: 查看外层标签 16003 → 从邻接 C 转发
  RouterC: pop → 标签 16004 → 从邻接 D 转发
  RouterD: pop → IP 转发

五、SR-MPLS 对比 LDP

对比项 LDP SR-MPLS
协议依赖 独立协议 集成在 IGP 中
标签分发 信令协议分发 IGP TLV 携带
收敛协调 IGP 收敛 → LDP 收敛 → IGP 重新检查 一次收敛
显式路径 需要 RSVP-TE Segment List 实现
状态维护 LSP 状态(每跳维护) 无状态(源路由)
扩展性 受限于 LSP 数量 更高
部署复杂度 高(多协议协作) 低(一个协议)

六、部署演进策略

6.1 阶段一:启用 IS-IS wide

# 先全网切换为 wide Metric
isis 1
 cost-style wide

6.2 阶段二:替换 LDP 为 SR

# 启用 SR,LDP 和 SR 共存
isis 1
 segment-routing mpls
 segment-routing global-block 16000 23999

# 逐步迁移 LDP 到 SR
mpls
 label advertise non-null-for-explicit-null

6.3 阶段三:关闭 LDP

当所有设备都支持 SR 后,关闭 LDP:

# 在每台路由器上关闭 LDP
mpls ldp
  shutdown
# 或直接删除 LDP 配置
undo mpls ldp

七、IS-IS SR 的优势场景

场景 传统方案 IS-IS SR 方案
MPLS 骨干网 IS-IS + LDP IS-IS SR(简化运维)
流量工程 IS-IS + RSVP-TE IS-IS SR-TE(Segment List)
快速重路由 RSVP-TE FRR TI-LFA(拓扑无关快速重路由)
网络切片 复杂的策略 SR 切片 + Flex-Algo

八、总结

知识点 核心要点
IS-IS SR 本质 将 MPLS 标签分配集成到 IS-IS
Prefix-SID 全局标签,沿 IGP 最短路径转发
Adj-SID 本地标签,强制从指定邻接转发
SRGB Segment Routing Global Block(全局标签块)
相比 LDP 无需独立协议,一次收敛,无状态
部署步骤 wide → SR 启用 → LDP 下线

九、思考

  1. SR-MPLS 相比传统 LDP 方案最大的优势是什么?
  2. Prefix-SID 和 Adj-SID 有什么区别?分别在什么场景下使用?
  3. IS-IS 启用 SR-MPLS 需要什么前提条件(开销模式等)?
  4. 在 SR-MPLS 中,显式路径(Segment List)是如何实现源路由的?
  5. 从传统 LDP 迁移到 SR-MPLS 的推荐部署步骤是什么?

下篇预告:第81篇《BGP 基础——AS 与 eBGP/iBGP 基本概念》——进入 BGP 的世界,了解互联网的路由协议。