SR-TE · PCEP · BGP-LS · EPE

面向开放路由器的 SR-TE 控制器。

路由器从自身所处位置选择最佳路径,对于承载的绝大多数流量,这都是正确的选择。但有三类决策需要掌握整个网络的视图:沿路径预留容量、让两项业务不共用相同链路,以及选择业务从哪个对等互联出网。Vegvísir Systems 的 Traffic Dictator 基于实时拓扑计算这些路径,并将其安装到运行 OcNOS 的 IP Infusion 开放路由器上。

2种开放协议,双向交互
2种策略下发方式
10项能力在联合实验室中完成测试
流量工程的用途

路由器已经具备的能力,以及控制器带来的补充。

OcNOS 路由器本身已能完成大量工作:ECMP、TI-LFA 本地保护,以及在 IGP 内构建的 Flex-Algo 平面。控制器只补充那些需要掌握全网视图的决策。 每张卡片上的标签注明由哪一部分实现。

避免一次故障引发下一次故障

TI-LFA 预先计算本地修复路径,路由器无需等待网络重新收敛即可切换到该路径。控制器则将这部分重路由流量分散到有空闲容量的链路上,使第一次故障不会引发第二次故障。

OcNOS + 控制器

让时延敏感流量走短路径

Flex-Algo 在 IGP 内构建低时延平面。交易、媒体和移动前传流量沿该平面转发,其他流量仍走开销最低的路由。

OcNOS 独立实现

为已售出的业务预留容量

策略携带带宽数值。控制器在安装路径之前先检查是否有空闲容量,如果某条链路已满,则暂缓下发该策略。

OcNOS + 控制器

充分利用已付费的链路

ECMP 已经能够填满等价链路。控制器将业务放置到非等价链路上,把闲置容量转化为可售卖的容量。

OcNOS + 控制器

让备份路径避开主用路径所用的链路

不相交组将路径分离纳入策略本身,因此保护路径永远不会与其所保护的路径共用任何链路。

OcNOS + 控制器
端到端工作原理

输入的约束如何变成路由器压入的标签。

在此设计中,两部分之间只有两种协议交互,且二者均为标准协议,因此 任一部分都可以单独替换.

本页反复用到的两个术语

段列表 是一组有序的标签。每个标签指代一台路由器或一个对等互联,头端路由器将这些标签压入报文,使报文按顺序依次经过。 策略 由头端、端点以及决定二者之间段列表的约束组成。

段路由流量工程控制平面:四台 OcNOS 路由器组成一个 IS-IS 段路由域,其中一台通过 BGP-LS 将链路状态拓扑导出到 Vegvísir Traffic Dictator 控制器,控制器再通过 PCEP 将计算得出的 SR-TE 策略安装回头端路由器;同时一个外部自治系统在边界建立对等互联,并以 BGP Peer SID 表示。
两部分如何衔接:OcNOS 运行带段路由的 IS-IS,并通过 BGP-LS 发布拓扑;Traffic Dictator 按照设定的约束计算路径,再通过 PCEP 将其安装回路由器。
IP Infusion OcNOS 数据平面与控制平面

它以完整路由器的形式交付,由 IP Infusion 对硬件与 OcNOS 进行整体集成、验证和支持,因此硬件与软件的责任统一由一家厂商承担。

  • 运行网络。 运行带段路由扩展的 IS-IS,因此标签、ECMP 和 TI-LFA 快速重路由全部在路由器内部完成。
  • 担任头端。 安装下发的策略,压入段列表,并回报运行状态。
  • 为出口分配标签。 为每个外部对等互联分配一个 BGP Peer SID,使控制器能够在段列表中指定该对等互联。
Vegvísir Systems Traffic Dictator 仅控制平面

它以 Docker 容器形式交付,可运行在服务器上、现有虚拟化环境中,或能够承载容器的路由器上,并提供用于自动化的 HTTP API。

  • 构建拓扑图。 Node、Link 和 Prefix 信息通过 BGP-LS 传入,形成附带段 ID 的实时拓扑。
  • 保存约束。 显式跳、链路亲和性、带宽、不相交组和出口对等体,均以策略约束的形式表达。
  • 计算并安装。 计算出段列表,将其推送到头端,并在拓扑变化时进行更新。
带宽账本保存在哪里

OcNOS 可以借助 Flex-Algo 等 IGP 机制实现分布式流量引导,而外部 PCE 或控制器可以基于全网约束计算显式 SR 策略。 带宽是需要全局视图的约束: 段路由之所以具备扩展性,是因为它不逐跳以信令方式进行预留,因此所有策略已占用带宽的累计总量改为集中保存。该数值按策略设定,目前不会根据实测流量自动调整。 RSVP-TE 则采用另一种方式,在每一跳上以信令方式进行预留。

完整流程

从启用段路由到策略在网络中运行,共分四步。

前两步是在路由器上一次性完成的设置。 后两步在每次创建策略时重复执行。

01

启用段路由

IS-IS 在每台路由器上承载段路由扩展以及流量工程扩展,因此链路带宽和管理组也会一并通告。标签由段路由本身分配。

02

将拓扑导出到控制器

由一台路由器将链路状态数据库重分发到 BGP-LS,所用命令为 distribute bgp-ls ,并与控制器建立对等关系。

03

定义策略及其约束

策略指定头端、端点以及必须满足的约束。控制器基于实时拓扑计算路径,并返回一个 段列表,即头端将压入报文的标签列表。

04

安装策略并保持更新

控制器通过 PCEP 下发策略,头端回报该策略已启用并正在按其转发。如果之后拓扑发生变化,同一策略会原地更新,而不是重新构建。

逐项查看约束

每种约束如何改变控制器返回的路径。

在下方选择一种约束,查看其生成的路径和标签。此处显示的每个段列表和度量值,均为联合实验室中记录的输出。

左右滑动图示以跟踪路径

基于已验证实验室拓扑简化视图的交互式约束选择器 四台路由器 R1 至 R4 和一个外部自治系统。R3 为左侧的头端。两组链路带有标记:BLUE 组包括 R3 至 R1、R1 至 R2 以及 R3 至 R4,YELLOW 组包括 R3 至 R2 以及 R2 至 R4。R2 在右侧与 AS 101 建立对等互联。选择一种约束后,图中会高亮显示控制器计算出的路径,并显示相应的段列表,图示旁也以文字形式给出。 admin-group BLUE admin-group YELLOW eBGP 对等互联 已预留 40 Gbps 已预留 40 Gbps R3 头端 R1 16001 R2 16002 R4 16004 AS 101 25600 目的地 目的地
控制器的计算结果

OcNOS 安装的内容
路径
段列表
聚合度量值

五种约束及其各自返回的路径

保持在蓝色链路上:链路亲和性约束
路径 R3 至 R4。段列表 16004。聚合度量值 10,一跳。路径上的每条链路都必须带有 BLUE 标记,而 R3 至 R4 的直连链路满足条件,因此一个节点段就足够。策略 R3_R4_BLUE, affinity-set BLUE_ONLY.
保持在黄色链路上:链路亲和性约束
路径 R3 至 R2 至 R4。段列表 16002, 16004。聚合度量值 20,两跳。每条链路都必须带有 YELLOW 标记,因此直连链路被排除,控制器经由 R2 选路,网络中任何度量值均未更改。策略 R3_R4_YELLOW, affinity-set YELLOW_ONLY.
预留 40 Gbps:带宽约束
路径 R3 至 R2 至 R4。段列表 16002, 16004。聚合度量值 20,已预留 40 Gbps。路径相同,但附带容量:控制器在安装任何内容之前先确认两条链路都能承载 40 Gbps,并将该预留记录在自己的账本中。策略 R3_R4_YELLOW, bandwidth 40 gbps.
选择出口对等体:出口对等工程
路径 R3 至 R2 至 AS 101。段列表 16002, 25600。聚合度量值 10,一跳加出口。25600 是 R2 为其与 AS 101 的对等互联分配的 BGP Peer SID,因此段列表以指定出口结束。策略 R3_R2_EPE.
经由蓝色链路到达该出口:亲和性 + 出口对等工程
路径 R3 至 R1 至 R2 至 AS 101。段列表 16001, 16002, 25600。聚合度量值 20,两跳加出口。两个约束同时生效:出口仍是 AS 101,而通往该出口的路径必须保持在 BLUE 链路上,因此控制器绕行经过 R1。策略 R3_R2_EPE_BLUE, affinity-set BLUE_ONLY.

此处的每个段列表、度量值和策略名称均来自 IP Infusion 与 Vegvísir 的联合应用说明。在该文档中,每一项均显示为控制器上执行 show traffic-eng policy <name> detail 的实时输出。Traffic Dictator 语法文档见 vegvisir.ie/documentation.

出口对等工程

入口路由器可以选择报文从哪个对等互联出网。

流量工程通常止步于自身网络边界,而出口对等工程将其向外延伸一跳,由入口路由器选择报文从哪个对等互联出网。当中转成本高于对等互联时,这一选择可以降低成本。

对等互联故障后的带宽感知出口对等工程 四台入口路由器各自向同一目的自治系统发送 30 Gbps 流量,负载均衡分布在两条各 100 Gbps 的私有对等互联上。其中一条对等互联发生故障。如果不具备带宽感知,全部 120 Gbps 流量都会落到剩余的 100 Gbps 对等互联上并造成拥塞。有了带宽约束,控制器只接纳可容纳的流量,并将其余流量改经中转上行链路发送。 4 台入口路由器,每台 30 Gbps 输入 120 Gbps 私有对等互联 A 100 Gbps,已中断 私有对等互联 B 100 Gbps,已接纳 90 可容纳 3 条策略 中转上行链路 第二候选路径 第 4 条走这里 AS 200

机制示例,并非实验室测量结果。

四台路由器各自向同一目的地发送 30 Gbps 流量,负载均衡分布在 两条 100 Gbps 私有对等互联 上,由于成本低于中转,这两条对等互联为优选路径。随后其中一条对等互联发生故障。

在标准 BGP 下,全部 120 Gbps 流量都会落到剩余的对等互联上,经过它的所有业务同时劣化。

带宽约束使控制器只接纳该对等互联能够承载的流量,因此三条策略落在剩余的对等互联上,第四条策略则经中转走其第二候选路径。

结果是只产生少量中转费用,而该对等互联上的其他流量均保持正常运行。

每个对等互联都有各自的标签

egress-engineering 在边界路由器上为该对等互联分配 BGP Peer SID 并进行通告,使控制器能够将出口置于段列表的底部。

链路亲和性一直作用到边界

BGP Peer SID 不携带链路属性,因此需要在控制器上为出口对等体指定亲和性和带宽,控制器再将其与通告的 SID 进行匹配。

使用有空闲容量的最近出口

端点为空的策略会请求最近的合适出口,因此控制器会选择距离头端最近且满足条件的出口,流量在穿越骨干网之前即可出网。

控制器能力,不在联合验证范围内:空端点需要基于颜色的引流,而联合实验室全程采用业务环回引流。

对等互联故障会反映在策略状态中

当邻居中断时,Peer SID 被撤销,出口策略失效,该失效会在策略状态中报告。

联合构建与测试

联合实验室测试了哪些内容,以及得到的结果。

IP Infusion 与 Vegvísir Systems 共同构建并发布了该设计。下表列出了测试的每项能力,以及每项测试得到的结果。

路由器UfiSpace S9510-28DC
路由器软件OcNOS 6.6.0
控制器Traffic Dictator 1.6
发布时间2025 年 8 月
联合验证中测试的十项能力。
能力 测试方式 结果
拓扑导出 在一台路由器上将 IS-IS level-2 数据库重分发到 BGP-LS R3 导出了 34 条链路状态信息:5 个节点、10 条链路、19 个前缀。控制器自身的表显示均已接收。
显式路径 在策略中指定严格跳,并预留 2 Gbps 段列表 [16001, 16002, 16005] 已安装。
带宽约束 在候选路径上携带带宽数值 显式路径策略上的 2 Gbps 预留在计算时即经过检查,并记录在控制器数据库中,路径上每条链路的未预留带宽都相应减少。亲和性策略以 40 Gbps 使用了相同的机制。
链路亲和性 同一对路由器之间的两条策略,每个管理组各一条 BLUE 生成 [16004] ,度量值为 10;YELLOW 生成 [16002, 16004] ,度量值为 20。端点相同,路径不同,网络中任何度量值均未更改。
业务映射 两个 L3VPN 客户使用各自独立的业务环回地址 每个 VRF 通过各自的策略进行解析。在中转路由器上抓取了 VRF101 中的一个 ping 报文,其携带了预期的传输标签和 VPN 标签。
路径多样性 将两条策略放入同一个不相交组 两条策略始终走不同的链路,完全没有配置亲和性或显式路径。
ECMP 与 anycast SID 两台路由器通告同一个前缀 SID,并清除节点标志 两个段列表合并为一个,从而节省转发表空间。
出口对等工程 为外部对等互联分配 BGP Peer SID,并将策略引导至该出口 段列表 [16002, 25600],其中最后一个标签是对等互联而非路由器。加入亲和性后生成 [16001, 16002, 25600].
控制器故障切换 停止主控制器,其上委托有策略 路由器将所有策略重新委托给第二个控制器。两个控制器之间没有同步任何状态。
控制器全部失效 停止所有控制器 策略被撤销,业务路由通过 IS-IS 段路由解析,下一跳保持不变。读取表项时,替代表项已安装并处于活动状态。

验证在一个平台上进行。所测试的架构基于标准的 IS-IS、BGP-LS 和 PCEP,因此该设计可以迁移到其他平台;平台与版本支持应对照 硬件兼容性列表 和 功能矩阵 ,针对拟选用的设备进行确认。

故障行为

一个控制器失效时,以及所有控制器都失效时,会发生什么。

两种情况下流量都会持续转发。 若一个控制器失效,路由器会将其策略转移到另一个控制器;而 若所有控制器均失效,业务将回退到 IGP 一直在计算的最短路径。

若一个控制器失效,路由器会自行重新委托策略

每条策略都委托给创建它的控制器;当该控制器停止响应时,路由器会将策略重新委托给另一个控制器。由于该机制运行在路由器中,而非控制器之间, 控制器之间从不共享状态,因此增加第三个控制器不会带来任何状态同步开销。

PCEP 委托从失效控制器转移到存活控制器 一台路由器上方有两个控制器。策略最初委托给主控制器。当主控制器停止响应时,路由器撤销该委托,并将同一策略重新委托给第二个控制器,由其继续更新。两个控制器之间不同步任何内容。 控制器 A 停止响应 控制器 B 现持有该策略 OcNOS 头端 全程持续转发 委托 已撤销 重新委托 由路由器完成 控制器之间不共享状态

若所有控制器均失效,一切重新通过 IS-IS 解析

策略被撤销,业务路由改为通过 IS-IS 段路由解析。 BGP 下一跳保持不变.

R3,控制器停止之前
P>  172.16.101.4/32   out-label 3       out-intf cd1   nexthop 10.100.3.2
P>  172.16.102.4/32   out-label 3       out-intf cd0   nexthop 10.100.6.4
P 表示 SR Policy 表项。两项业务,两条不同的工程路径。各列摘自完整的 show mpls forwarding-table 输出。
R3,控制器停止之后
B>  172.16.101.4/32   out-label 24962   out-intf cd0   nexthop 4.4.4.4
B>  172.16.102.4/32   out-label 24963   out-intf cd0   nexthop 4.4.4.4
B 表示通过 IS-IS 段路由解析的 BGP 表项。VPN 路由的 BGP 下一跳保持不变。变化的是解析方式:改为通过 IS-IS 段路由解析,而不再通过策略解析,因此出标签和出接口有所不同。读取表项时,两个表项均已存在 16 秒。各列摘自完整输出。
两侧的配置

在路由器一侧,配置就是常规的 IS-IS 和 BGP,只需额外添加一个 PCEP 配置块。

以下内容摘自联合验证,并添加了注释。由于 Traffic Dictator 采用业界标准的 CLI, 控制器配置与路由器配置同样易读,一位工程师即可同时负责两侧。

有两种协议可以将策略下发到路由器

PCEP 已验证组合

PCEP 是有状态协议,因此控制器能够知道路由器是否已安装策略并正在按其转发;每个头端需要一个会话。联合验证采用的就是这一方式。

BGP SR-TE 会话数量最少

策略以 BGP 路由的形式承载,因此可以借助现有的路由反射器传递,而无需与每个头端建立会话。在大型网络中,这意味着只需少量会话,而不是数百个会话。

OcNOS · BGP-LS 导出
! feed the IS-IS link-state database into BGP
router isis 1
 distribute bgp-ls
!
router bgp 65002
 bgp router-id 3.3.3.3
 neighbor 192.168.123.1 remote-as 65001
 !
 address-family link-state link-state
 neighbor 192.168.123.1 activate
 exit-address-family

每一行的作用

  1. distribute bgp-ls 就是全部的导出配置:IS-IS 将其数据库交给 BGP。
  2. 控制器只是另一个 BGP 邻居,位于其自己的自治系统中。
  3. link-state 地址族承载拓扑信息。经由该地址族传递的信息共有三类:Node,包含系统 ID 和段路由全局块;Link,包含度量值、带宽、管理组和邻接 SID;Prefix,包含前缀及其 SID。
  4. 只有一台路由器需要此配置,因为它会重新通告整个 IS-IS 层级已提供给它的链路状态数据库。

摘自 IP Infusion 与 Vegvísir Systems 联合应用说明,2025 年 8 月。当前语法请参阅 documentation.ipinfusion.com.

流量工程问答

什么是 SR-TE 控制器?
SR-TE 控制器是一种控制平面组件,代表路由器计算段路由流量工程路径并进行安装。它学习网络拓扑,应用带宽、链路亲和性和路径多样性等约束,然后向每台头端路由器下发段列表。
运行段路由是否需要控制器?
不需要。段路由无需控制器即可运行:带 SR 扩展的 IS-IS 或 OSPF 本身即可提供连通性、ECMP 和 TI-LFA 本地保护,Flex-Algo 也可以在完全没有控制器的情况下,在 IGP 中划分时延平面和亲和性平面。需要逐跳显式路径、全网带宽预留、指定出口对等体,或保证两项业务不共用链路时,才需要增加控制器。
Traffic Dictator 是必需的吗?能否使用其他控制器?
OcNOS 支持标准的 BGP-LS 和 PCEP,因此不绑定特定控制器;出于同样的原因,Traffic Dictator 也支持多厂商。联合设计将 OcNOS 与 Traffic Dictator 搭配,是因为 IP Infusion 与 Vegvísir 共同构建并发布了该设计,两侧的配置和实验室结果均已公开。如果使用其他控制器,路由器一侧无需任何改动。
该解决方案的两部分分别由谁提供和支持?
两部分分别来自各自的厂商。IP Infusion 将路由器与 OcNOS 作为一体化系统提供,Traffic Dictator 则来自 Vegvísir Systems。双方共同设计和测试了该方案,并以联合应用说明的形式发布。欢迎联系我们,我们将协助界定两侧的范围,并就控制器事宜为客户对接 Vegvísir。
增加 SR-TE 控制器是否需要更换现有路由器?
通常不需要。支持 PCEP 或 BGP SR-TE 的路由器可以直接接收策略,因此控制器只需在支持这些协议的头端引入,网络其余部分仍按现有方式基于 IS-IS 段路由转发。两者都不支持的设备只是不作为头端,而且也无需作为头端,因此混合设备环境仍在适用范围内,可以按自身计划逐步更换设备。
能否在不重建业务的情况下从 RSVP-TE 迁移?
可以,这也是联合设计采用业务环回引流而非基于颜色的引流的原因。PCEP 既可承载 RSVP-TE 隧道,也可承载段列表,而业务环回地址两者皆可使用,因此业务可以逐一迁移到段路由,无需更改其配置。迁移完成后,基于颜色的引流是更灵活的模式。
带宽预留能否跟随实测流量调整?
目前不能。策略携带的是设定的带宽数值,控制器在安装路径之前会确认容量空闲,联合实验室分别在 2 Gbps 和 40 Gbps 下测试了这一行为。根据实测流量自动调整的预留属于 RSVP-TE 的行为,详见 MPLS-TE 页面。Traffic Dictator 目前不具备此功能,Vegvísir Systems 可根据客户需求进行开发,如果网络需要该功能,请尽早告知我们。
该设计是否支持 SRv6 流量工程?
联合验证仅涵盖 SR-MPLS,限制来自所测试的路由器版本,而非控制器。OcNOS 本身支持 SRv6 数据平面,因此请针对拟选用的具体版本和平台确认 SRv6 流量工程支持情况。
下一步

推进到概念验证。

Vegvísir Systems 提供可用于评估和概念验证的 Traffic Dictator,无需许可证,上限为 100 条策略;OcNOS 也提供虚拟机版本。告诉我们需要引导哪些流量,我们将在合适的组合上界定范围,再确定生产部署的规模。