SRv6 段路由:Segment Routing 原理、SID 与云网 / 5G 应用

深入讲解 SRv6 段路由:Segment Routing 起源、SRv6 报文头与 SID 结构、与 SR-MPLS 的对比、流量工程 TE 与按需路径、以及 SRv6 在云数据中心与 5G 承载网的落地实践。

传统 MPLS 用标签栈转发,隧道靠 LDP/RSVP-TE 逐条协商,运维复杂、状态繁多。SRv6 把路径信息直接编码进 IPv6 报文头,用一串「段」(Segment)描述整条路径——源节点一次写入,中间节点无需维护隧道状态。这背后是「源路由」(Source Routing)思想的回归:转发路径由入口决定,网络只是忠实的执行者。

一、Segment Routing 起源

1.1 从标签交换到源路由

MPLS 时代,每条 LSP(标签交换路径)都要在网络中建立状态,控制面复杂:

MPLS 典型状态清单:
  LDP 邻居表、RSVP-TE 会话、每隧道的标记状态、每条 LSP 的预留带宽
  → 节点上「状态」越多,运维与故障面越大

Segment Routing 的简化:
  路径 = 一个有序的 Segment 列表(标签/SID)
  中间节点只看栈顶,无需认识整条路径
  状态集中在入口节点,网络其他部分无状态

一句话:Segment Routing 把「全网的路径状态」收敛到「入口的一个列表」,这是它对网络运维最大的解放。

1.2 SR-MPLS 与 SRv6

Segment Routing 有两个载体:

载体承载方式SID 形态数据面
SR-MPLSMPLS 标签栈32bit Label复用 MPLS 转发面
SRv6IPv6 扩展头128bit IPv6 地址原生 IPv6 数据面
SR-MPLS over IPv6隧道化Label 封装在 IPv6 内混合过渡
SR-MPLS 报文:
[IP头][MPLS Label 1][MPLS Label 2][Payload]

SRv6 报文:
[IPv6头][SRH(Segment Routing Header)][Payload]
SRH 里携带 SID List:SID1 → SID2 → SID3

二、SRv6 报文头与 SID

2.1 Segment Routing Header(SRH)

SRH 是 IPv6 路由扩展头(Routing Type 4),核心字段如下:

SRH 结构(RFC 8754):
┌────────────────────────────────┐
│ Next Header | Hdr Ext Len      │
│ Routing Type=4 | Segments Left │
│ Last Entry | Flags | Tag       │
│ Segment List[0](目的 SID)     │
│ Segment List[1]                │
│ ...(最多 64 个 SID)          │
│ TLVs(可选,如 SRH 扩展)       │
└────────────────────────────────┘
字段作用
Segments Left还剩多少段,中间节点据此递减
Last Entry段列表中最后一个有效项的索引
Segment List完整路径的 SID 序列(倒序存放)
Tag可选,用于分组/染色
SID List 的查找逻辑:
IPv6 目的地址 = Segment List[0](第一个要到达的段)
到达后若 Segments Left > 0:
  弹出当前段 → 目的地址更新为下一段 → 继续转发

2.2 SID 的结构与类型

SID 是 128bit 的 IPv6 地址,通常由 Locator + Function 组成:

SID = Locator(64bit) + Function(其余位)
  Locator:在 SRv6 域内唯一,标识节点与聚合前缀
  Function:标识节点上的具体行为(End / End.X / End.DX6 / End.DT6 ...)

示例:2001:db8:1::1:1
  Locator  = 2001:db8:1::/64(节点前缀)
  Function = 1:1(节点上的行为编码)
SID 类型行为用途
End查找下一跳继续转发节点级别联
End.X指定出接口转发精确的邻接段
End.DX6剥离 SRH 交给 IPv6 处理IPv6 业务解封装
End.DT6查 IPv6 路由表(VRF 内)VPN 业务(类 MPLS VPN)
End.DX4剥离 SRH 交给 IPv4 处理IPv4 业务解封装
End.B6进入另一条 SRv6 Policy策略拼接/分层

2.3 SID 的广告与分配

SID 与 Locator 通过 IGP 扩展通告(IS-IS/OSPF SRv6 Extensions):

IS-IS SRv6 能力通告:
  SRv6-Capability Sub-TLV:节点支持 SRv6
  SRv6 Locator TLV:通告 Locator 前缀与 SID 空间
  SRv6 End SID Sub-TLV:通告 End 行为 SID
  SRv6 End.X SID Sub-TLV:通告邻接段 SID
SRv6 Domain 的规划原则:
  Locator 全局唯一、可聚合(便于 BGP 只通告一条聚合前缀)
  Function 域内唯一,建议用统一编码表管理
  SID 分配自动化:NETCONF/Ansible + YANG 模型下发

三、SR-MPLS 与 SRv6 的对比

3.1 数据面差异

SR-MPLS:
  转发依赖 MPLS 标签,中间设备需支持 MPLS
  IPv4/IPv6 双栈网络里要额外起 MPLS 平面

SRv6:
  只用 IPv6 转发,天然支持逐跳 ECMP(按 IPv6 流哈希)
  无需 MPLS 标签分发协议,控制面大幅简化
  报文开销更大(SRH 128bit×N),MTU 需规划
维度SR-MPLSSRv6
数据面MPLS 标签IPv6 + SRH
控制面需要 IGP SR 扩展需要 IGP SRv6 扩展
三层 VPNBGP L3VPN(label)End.DT6(IPv6)
新协议支持要引入 MPLS 平面复用现有 IPv6
生态成熟度高(多年部署)高(现网加速)
报文开销小大(需调 MTU)

3.2 为什么还要 SRv6

既然 SR-MPLS 成熟,SRv6 的价值在于:

SRv6 的三个「原生」优势:
1. IPv6 原生:无需部署 MPLS 平面,跟 IPv6 战略一起走
2. 网络可编程:SID 携带业务语义(VPN/TE/业务链合一)
3. 云网协同:Controller 直接下发 SID 列表,路径按需编排

一句话:SR-MPLS 是「优化版的 MPLS」,SRv6 是「IPv6 原生的新数据面」——前者图省事,后者图可编程与长期演进。

四、流量工程与 TE

4.1 SRv6 Policy 与按需路径

SRv6 TE 用 SRv6 Policy 表达显式路径:

SRv6 Policy 组成:
  Headend(入口节点)+ Color(业务意图,如 低延迟)
  + Candidate Path(候选路径列表)
  + Binding SID(对外暴露的段标识)

  Headend 按 Color 把业务引流到对应候选路径:
    Color=100 → 路径 A(走海底光缆,低时延)
    Color=200 → 路径 B(走卫星回传,低成本)
# 用 SR Policy 下发一条 TE 路径(FRRouting 示例片段)
$ cat /etc/frr/staticd.conf
srte policy 1 color 100
  name low-latency
  endpoint 2001:db8:100::1
  segment-list primary
  exit
srte segment-list primary
  index 10 sid 2001:db8:1::1
  index 20 sid 2001:db8:2::10
  exit

4.2 自动 TE:Segment Routing 的控制器编排

基于 Telemetry(BGP-LS 上报拓扑 + 链路指标)的集中式 TE:

Controller(如 Cisco WAE / 自研 PCE)
  ├─ 收集 IGP/BGP-LS 拓扑与链路利用率
  ├─ 计算满足约束的最优路径(带宽/时延/SLA)
  ├─ 生成 SID List 并下发 Headend
  └─ 持续监测,SLA 违约时动态重优化

关键机制:
  - Color + 优先级实现业务分级引流
  - 带宽预留:用 Segment 的 TE 属性表达
  - 弹性:链路故障时快速切换到备份 SID 列表

4.3 与 RSVP-TE 对比

能力RSVP-TESRv6 TE
路径状态每跳都要维护只在入口维护
信令逐跳预留(RSVP 消息)无信令,SID 列表携带
快速重路由FRR 旁路TI-LFA(拓扑无关)
可扩展性隧道数受限几乎无限制

五、SRv6 VPN 与业务链

5.1 EVPN/SRv6 VPN 一体化

SRv6 把 L2VPN/L3VPN 与 EVPN 统一到同一数据面:

CE1 ──PE1(End.DT6 SID)──SRv6 域──PE2(End.DT6)──CE2

  PE 用 BGP EVPN 通告 SID + 路由:
    - L3VPN:Type-5 路由携带 End.DT6 SID
    - L2VPN:Type-2 MAC 路由携带 End.DT2 SID
  数据面:PE2 收到带 SRH 的包 → 查 End.DT6 → 转给对应 CE/VRF

一句话:SRv6 让「承载网 + VPN + TE + 业务链」共用一套头,云化网络得以把控制面收敛到 BGP + IGP 两张表。

5.2 Service Function Chaining

业务链(SFC)把流量按顺序穿过安全/优化设备:

传统实现:逐设备改路由 → 状态多、难维护
SRv6 实现:SID List 显式列出每个服务节点
  [Edge-SID][FW-SID][WAF-SID][App-SID]
  流量按 SID 顺序穿过防火墙 → WAF → 应用入口

六、SRv6 在云网络的应用

6.1 云数据中心 Underlay

云数据中心 CLOS 架构下,SRv6 可作为 underlay 叠加 SDN 控制面:

Leaf/Spine 用 SRv6 承载 VXLAN 或直接 SID 转发:
  - 每 Pod 一段 Locator,聚合后全网只需通告少量前缀
  - BGP EVPN 通告 VM/VPC 路由 + SID
  - 控制器编排 SID List 实现跨可用区、跨云专线引流

优势:
  - 去状态化:Spine 不需要识别每个 VPC,只按 SID 转发
  - 弹性:新增 Pod 只需分配新 Locator,无需逐跳配置

6.2 多云互联与按需带宽

企业分支 ──专线/云间──► 云网关(SRv6 Headend)
                          │
  Color=实时 → 走低时延路径(云端计算的 TE 结果)
  Color=批量 → 走低成本路径

云间互联场景:
  云 A 与云 B 之间用 SRv6 Policy 建立多路径
  控制器按带宽需求动态调整各路径的流量比例
# 云网关把 VPC 路由与 SID 通告给对端(BGP EVPN 示意)
router bgp 65001
  neighbor 198.51.100.1 remote-as 65002
  address-family l2vpn evpn
    advertise-all-vni
    neighbor 198.51.100.1 activate
  exit-address-family

七、SRv6 在 5G 承载网的应用

7.1 5G 切片与 Flex-Algo

5G 网络切片需要在同一物理网络里区分不同业务(uRLLC/ eMBB / mMTC)。SRv6 结合 Flexible Algorithm(灵活算法) 实现按约束的最短路径:

Flex-Algo 定义路径计算约束:
  Flex-Algo 128:最小 IGP 度量(普通业务)
  Flex-Algo 129:最小时延(uRLLC 切片)
  Flex-Algo 130:最大可用带宽(视频切片)

  SID + Flex-Algo 结合:一个节点可发布多个算法的 End SID
  流量按 Color/切片映射到对应算法的 SID List

7.2 5G 回传与切片隔离

5G 回传组网(接入环 → 汇聚 → 核心):
  gNodeB ──SRv6 Policy──► UPF(用户面功能)

  每个切片分配独立 Color:
    uRLLC 切片:Color=低时延,Flex-Algo 129,独立带宽预留
    普通上网:Color=默认,走传统最短路径

  故障保护:TI-LFA 秒级切换,满足 5G 承载 50ms 收敛要求

八、总结

主题核心知识点落地建议
数据面SRH 携带 SID List规划好 Locator 聚合与 MTU
SIDLocator + Function用统一编码表管理 Function
TESRv6 Policy + Color控制器编排,避免手工逐跳
VPNEnd.DT6/DT4 + EVPN与 BGP EVPN 一体化部署
云网按需 SID List 引流云网关做 Headend 编排
5GFlex-Algo + 切片按切片分配 Color 与算法

SRv6 是网络可编程从「口号」走向「工程」的关键一步:它把路径、业务与策略都编码进 IPv6 报文,让网络节点回归「无状态转发」的简单本质,把复杂留给入口与控制器。对后端与网络工程师而言,SRv6 意味着云网一体化的控制面底座——无论是多云互联、按需带宽还是 5G 切片,最终都归结为「下发一条 SID List」。理解它的头结构、SID 语义与 TE 机制,就能在这个新数据面上驾驭流量、构建弹性网络。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「network」更多文章

  1. 可编程网络与 P4:数据面编程、PISA 架构与智能网卡
  2. 卫星网络与天地一体:LEO 星座、星地链路与协议优化
  3. 网络自动化与 NetConf/YANG:设备可编程与配置即代码