1. Segment Routing 在 Juniper MX 中的定位

Segment Routing(SR)是一种源路由(Source Routing)架构:由入口节点在报文头部压入一串有序的“段标识”(SID),中间节点不再维护逐流的路径状态,只按 SID 执行转发动作。它把“路径信息”从网络中间设备搬到了报文本身,因此天然具备无状态、可编程、易与控制器协同的特点。在 Juniper MX 平台上,SR 主要承载于 MPLS 数据面之上,形成 SR-MPLS,这也是本章讨论的重点。

一、SR 的核心理念:把路径写进报文

传统 MPLS 转发依赖标签分发协议(LDP 或 RSVP-TE)在每台设备上建立标签映射或预留路径状态。SR 改变了这一模型:IGP(IS-IS 或 OSPF)通过扩展通告“前缀 SID”和“邻接 SID”,每台路由器为每个前缀分配一个全局唯一的 SID,形成 Segment Routing Global Block(SRGB)。转发时,入口节点把路径表达为 SID 列表(Segment List),压入 MPLS 标签栈,中间节点只需按栈顶标签查表转发。

SR 定义了两类基本段:前缀段(Prefix SID)对应 IGP 最短路径,是全局唯一的节点标识;邻接段(Adjacency SID)对应某条具体链路,是本地有效的链路标识。前缀段用于构建最短路径转发,邻接段用于显式指定链路、实现流量工程或严格路径。二者组合即可表达任意路径,而无需在中间节点保留任何路径状态。

二、SR 与 MPLS、RSVP-TE 的关系

SR-MPLS 并不取代 MPLS,而是复用 MPLS 的数据面:SID 就是 MPLS 标签,标签栈就是 Segment List,转发动作仍是标签交换。区别在于控制面——MPLS 标签由 LDP/RSVP 分发,SR 标签由 IGP 扩展分发。因此 MX 上原有的 MPLS 转发芯片、标签栈处理、PHP(倒数第二跳弹出)等机制可以继续使用。

与 RSVP-TE 相比,差异更明显。RSVP-TE 是“有状态”的:每条隧道在沿途每台设备上都要维护路径状态、预留带宽、刷新软状态,路径数量增长时控制面开销呈线性甚至更高增长。SR-TE 则是“无状态”的:路径由入口节点通过 Segment List 表达,中间节点不感知隧道,控制器(如 Juniper Paragon Pathfinder)可以集中计算路径并下发 SID 列表。下表对比三者的关键差异:

维度LDPRSVP-TESR-MPLS
控制面协议LDPRSVP + IGPIGP 扩展(IS-IS/OSPF)
中间节点状态每 FEC 一条标签映射每条隧道维护路径状态无逐隧道状态
路径表达能力仅最短路径显式路径 + 带宽预留显式路径(SID 列表)
带宽预留不支持支持需配合控制器/其他机制
扩展性中等随隧道数增长压力大随 SID 数增长,扩展性好

需要强调的是,SR 与 RSVP-TE 并非互斥。MX 支持在同一网络中并存:核心用 SR 简化控制面,边缘或需要严格带宽保障的路径仍可保留 RSVP-TE。工程上常见的做法是先用 SR 承载普通业务,再逐步把 TE 需求迁移到 SR-TE + 控制器。

三、MX 平台对 SR 的软硬件支撑

MX 系列是 Juniper 的主力边缘/核心路由器,其 SR 支持取决于三个层面:转发芯片、Junos 版本和线卡类型。转发芯片方面,较新的 Trio 和 Express 系列芯片原生支持 MPLS 标签栈的压入、交换与弹出,能够处理 SR 所需的较深标签栈(典型 SR-TE 路径可能压入 5~10 个标签)。早期线卡在标签栈深度和 SR 相关指令上可能受限,部署前需核对具体型号的 SR 能力矩阵。

软件层面,Junos OS 从 17.x 起逐步完善 SR-MPLS 支持,包括 IS-IS/OSPF 的 SID 通告、SRGB 配置、SR-TE 策略、以及 BGP 出口对等工程(BGP EPE)等。典型配置骨架如下:

set protocols isis source-packet-routing srgb start-label 16000 index-range 8000
set protocols isis source-packet-routing node-segment ipv4-index 1
set protocols isis interface ge-0/0/0.0 level 2
set protocols mpls interface ge-0/0/0.0

其中 srgb start-label 16000 index-range 8000 定义了本地 SRGB 范围 16000~23999,node-segment ipv4-index 1 为本节点分配索引 1,对应全局 SID = 16000 + 1 = 16001。邻居通过 IGP 收到该索引后,用自身 SRGB 基址加索引即可算出转发标签,从而实现全局一致的 SID 语义。

SRGB 的 start-label 与 index-range 必须在同一 SR 域内协调规划。若各设备 SRGB 不一致,前缀 SID 的绝对标签值会不同,但通过“基址 + 索引”的映射仍能正确转发;不过为便于排障,工程上通常统一 SRGB。

四、SR 在 MX 上的定位小结

可以把 SR 在 MX 中的定位概括为:数据面沿用 MPLS,控制面交给 IGP,路径智能交给控制器。它既不是全新协议栈,也不是 RSVP-TE 的简单替代,而是一种更轻量、更可编程的转发范式。理解这一点,是后续学习 SRGB 规划、SID 分配、SR-TE 策略和控制器协同的基础。

SR-MPLS 在 Juniper MX 中的分层定位 控制面(Control Plane) IS-IS / OSPF 通告 Prefix/Adj SID SRGB 规划 基址 + 索引 → SID 控制器 / PCEP 计算并下发 SID 列表 BGP EPE 出口对等 SID 数据面(Data Plane · MPLS 标签栈) 入口 MX 压入 Segment List 中间 MX 按栈顶标签交换 中间 MX 无逐隧道状态 出口 MX 弹出 / PHP 标签栈示例 16001 / 16005 / 16009 SID 列表 = 路径 与 RSVP-TE 的关键差异 RSVP-TE 逐隧道状态 · 带宽预留 控制面随隧道数增长 SR-MPLS 无逐隧道状态 · 源路由 扩展性优 · 控制器协同 共存策略 核心 SR · 边缘保留 RSVP 逐步迁移 TE 需求