第185篇:SR-BE(Best Effort)与 SR-TE(Traffic Engineering)
关键词:SR-BE、SR-TE、流量工程、Color、TE Policy、CSPF、约束路径、最优路径
一、引言
在 SR-MPLS 体系中,流量转发分为两种模式:SR-BE(Best Effort,尽力而为)和 SR-TE(Traffic Engineering,流量工程)。SR-BE 沿 IGP 最短路径转发,不关心链路带宽、负载等约束条件;SR-TE 则由 Head-End 根据约束条件(如带宽、affinity、显式路径)计算最优路径,实现对网络流量的精细化控制。
理解 SR-BE 与 SR-TE 的差异及适用场景,是设计高效 SR-MPLS 网络的基础。
二、核心概念
2.1 SR-BE 与 SR-TE 对比
| 维度 |
SR-BE |
SR-TE |
| 路径选择 |
IGP 最短路径(SPF) |
约束最短路径(CSPF) |
| 约束条件 |
无 |
带宽、Affinity、显式路径、Cost |
| 计算位置 |
无计算,IGP FIB 直接转发 |
Head-End CSPF 计算 |
| 标签栈 |
单标签(目的 Node-SID) |
多层标签(TE Segment List) |
| 负载分担 |
ECMP 自动分担 |
按策略绑定特定路径 |
| 典型场景 |
普通数据流量 |
关键业务、跨域流量、带宽保障 |

2.2 SR-TE Policy 组成
| 组件 |
说明 |
| Color |
流量分类标识,整网唯一(建议 ≥ 10000) |
| Endpoint |
TE 策略的目的端点(Node-SID 或 LoopBack) |
| Candidate Path |
候选路径,包含显式路径和自动路径 |
| Explicit Path |
显式路径,指定经过的节点或链路 |
| Auto Path |
自动路径,由 CSPF 算法计算 |
2.3 CSPF 约束条件
| 约束类型 |
说明 |
| 带宽约束 |
路径上每跳剩余带宽 ≥ 请求带宽 |
| Affinity 约束 |
路径必须匹配/避开特定颜色标记的链路 |
| 显式路径约束 |
路径必须按指定顺序经过特定节点 |
| Admin Distance |
候选路径的优先级,值越小优先级越高 |
2.4 候选路径优先级
| 优先级(Admin Distance) |
路径类型 |
说明 |
| 10(默认,最高) |
Explicit Path(严格) |
必须精确经过指定节点 |
| 20 |
Auto Path |
CSPF 自动计算 |
| 30 |
Explicit Path(松散) |
经过指定节点,中间段自主决定 |
三、技术细节
3.1 SR-TE Policy 触发流程

3.2 SR-BE 标签栈操作
| 步骤 |
标签栈 |
说明 |
| 入口 |
[18] |
压入目的 Node-SID=18 的单标签 |
| 中间跳 |
[18] |
基于标签18查 FIB,转发到下一跳 |
| 到达目的 |
[] |
Pop 标签18,执行 IP 转发 |
3.3 SR-TE 标签栈操作
| 步骤 |
标签栈 |
说明 |
| 入口 |
[19, 16004, 18] |
压入 TE Segment List(逆序) |
| 到达SID 18 |
[19, 16004] |
Pop 标签18,暴露 Adj-SID |
| 沿Adj-SID转发 |
[19] |
Pop 标签16004,到达指定链路 |
| 到达SID 19 |
[] |
Pop 标签19,执行 IP 转发 |
3.4 SR-TE 路径切换机制
| 事件 |
处理方式 |
| 链路带宽不足 |
CSPF 重新计算,选择带宽充足的路径 |
| 链路故障 |
删除受影响的路径,激活次优候选路径 |
| 新链路上线 |
CSPF 重新评估,可能切换到新路径 |
| 策略修改 |
更新 SR-TE Policy,重新计算路径 |
四、实战配置/案例分析
4.1 SR-TE Policy 配置
# ========== SR-TE Policy配置(RouterA→RouterD) ==========
[ SR-RouterA ] segment-routing policy color 10001
[ SR-RouterA-segment-routing-policy-10001 ] color 10001
[ SR-RouterA-segment-routing-policy-10001 ] endpoint 4.4.4.4
# Endpoint: RouterD LoopBack
# --- 候选路径1: 显式路径(严格) ---
[ SR-RouterA-segment-routing-policy-10001 ] candidate-path 10
[ SR-RouterA-segment-routing-policy-10001-cpath-10 ] admin-distance 10
[ SR-RouterA-segment-routing-policy-10001-cpath-10 ] explicit-path
[ SR-RouterA-segment-routing-policy-10001-cpath-10-explicit-path ] nexthop 10.0.0.2
# 第一跳: RouterB的接口IP
[ SR-RouterA-segment-routing-policy-10001-cpath-10-explicit-path ] nexthop 17
# 经过: RouterB(Node-SID=17)
[ SR-RouterA-segment-routing-policy-10001-cpath-10-explicit-path ] nexthop 10.0.2.1
# 到: RouterC的接口IP
[ SR-RouterA-segment-routing-policy-10001-cpath-10-explicit-path ] nexthop 19
# 终点: RouterD(Node-SID=19)
# --- 候选路径2: 自动路径(备选) ---
[ SR-RouterA-segment-routing-policy-10001 ] candidate-path 20
[ SR-RouterA-segment-routing-policy-10001-cpath-20 ] admin-distance 20
[ SR-RouterA-segment-routing-policy-10001-cpath-20 ] auto-path
# CSPF自动计算,作为备份路径
4.2 SR-BE 流量绑定到 SR-TE
# ========== 将BGP路由绑定到SR-TE Policy ==========
[ SR-RouterA ] bgp 65001
[ SR-RouterA-bgp ] ipv4-family unicast
[ SR-RouterA-bgp-af ] import-route direct
[ SR-RouterA-bgp-af ] segment-routing
[ SR-RouterA-bgp-af ] segment-routing color 10001 binding-label 20001
# 将BGP路由绑定到Color=10001的SR-TE Policy
# Binding Label=20001,用于FIB中匹配
# ========== SR-BE流量(默认) ==========
# 未绑定SR-TE Policy的流量走SR-BE(IGP最短路径)
< SR-RouterA > display ip routing-table 4.4.4.4
Destination: 4.4.4.4/32
Protocol: IS-IS
Cost: 20
NextHop: 10.0.0.2 (最短路径)
# 使用SR-BE标签: [19]
4.3 故障排查:SR-TE Policy 未生效
故障场景:SR-TE Policy 配置完成后,流量仍走 SR-BE 最短路径,未按 TE 路径转发。
# Step 1: 检查SR-TE Policy状态
<SR-RouterA> display segment-routing policy
Color: 10001
Endpoint: 4.4.4.4
State: Inactive
Active-Candidate-Path: None
# Policy处于Inactive状态!
# Step 2: 检查候选路径状态
<SR-RouterA> display segment-routing policy candidate-path
Candidate-Path: 10
Type: Explicit
State: Unsatisfied
# Unsatisfied: 显式路径不可达
# Step 3: 排查显式路径节点
<SR-RouterA> display isis peer brief
# 检查RouterB是否可达
# 发现RouterB的链路Down
# Step 4: 检查自动路径
<SR-RouterA> display segment-routing policy candidate-path 20
Candidate-Path: 20
Type: Auto
State: Active
# Auto Path已激活(因为显式路径不可达)
# Step 5: 修复链路后验证
<SR-RouterA> display segment-routing policy
Color: 10001
State: Active
Active-Candidate-Path: 10
# 显式路径恢复,Policy激活
# Step 6: 验证流量路径
<SR-RouterA> display mpls tunnel-traffic-engineering
Tunnel: SR-TE-10001
Path: [17, 18, 19]
# 流量沿TE路径转发
五、总结
| 项目 |
要点 |
| SR-BE |
沿 IGP 最短路径转发,标签栈仅含目的 Node-SID |
| SR-TE |
CSPF 计算约束路径,标签栈含完整 TE Segment List |
| SR-TE Policy |
由 Color + Endpoint 标识,包含多个候选路径 |
| 候选路径 |
显式路径(精确控制)和自动路径(CSPF 计算) |
| 约束条件 |
带宽、Affinity、显式路径顺序 |
| 路径切换 |
主路径不可用时自动激活次优候选路径 |
思考
- SR-BE 沿 IGP 最短路径转发。如果最短路径上的链路带宽已经饱和,SR-BE 流量是否会自动切换到次优路径?为什么?
- SR-TE Policy 的 Color 值是否必须全网唯一?如果两台不同的 Head-End 配置了相同 Color 的 Policy,会发生什么?
- SR-TE 的 Auto Path(CSPF 自动计算)与 SR-BE 都是基于 IGP 拓扑计算,两者有什么区别?
下篇预告:第186篇:SRv6 基础:IPv6 扩展头与 SID