第160篇:TE 隧道路径计算与显式路径
关键词:显式路径、CSPF、Loose Host、Strict Host、自动选路、手工选路、路径优化
一、引言
TE 隧道的路径选择是流量工程中最灵活也最复杂的部分。MPLS TE 提供了三种路径选择模式:自动选路(完全依赖 CSPF)、手工选路(完全依赖显式路径)和混合选路(CSPF + 显式路径结合)。正确选择路径模式并合理配置显式路径,能够在流量优化和网络运维管理之间取得最佳平衡。
二、核心概念
2.1 路径选择模式
| 模式 | 路径确定方式 | 灵活性 | 运维复杂度 |
|---|---|---|---|
| 自动选路 | CSPF 自动计算最短约束路径 | 高 | 低 |
| 手工选路 | 管理员配置完整显式路径 | 低 | 高 |
| 混合选路 | 显式路径指定关键点,CSPF 填充中间路径 | 中 | 中 |
2.2 显式路径(Explicit Path)
显式路径是管理员手动指定的 TE LSP 路径,由一系列"跳点"(Hop)组成。每个跳点可以是节点(Router ID)或链路(接口 IP 地址)。
跳点类型:
| 类型 | 说明 | 路径约束 |
|---|---|---|
| Strict(严格) | LSP 必须精确经过该跳点 | 强制,不可跳过 |
| Loose(宽松) | LSP 必须经过该跳点,中间路径由 CSPF 计算 | 必须经过,中间可选 |

2.3 自动选路的限制
当使用纯自动选路时,CSPF 在以下约束下计算路径: - 链路可用带宽 ≥ LSP 请求带宽 - 链路亲和属性匹配 LSP 的亲和需求 - 链路管理员组允许 LSP 使用 - 不违反最大跳数限制
如果 CSPF 计算后无可行路径,TE 隧道建立失败。
三、技术细节
3.1 显式路径配置语法
# 华为设备显式路径配置
[NE40E] mpls te explicit-path TE-Path1
[NE40E-explicit-path-TE-Path1] next-hop-address 10.0.0.2 strict
[NE40E-explicit-path-TE-Path1] next-hop-address 10.0.0.6 loose
[NE40E-explicit-path-TE-Path1] next-hop-address 10.1.1.4 strict
3.2 CSPF 计算与显式路径的交互
在混合选路模式下,CSPF 仅在 Loose Hop 之间的段内进行计算:

3.3 亲和属性(Affinity)
亲和属性用于控制 TE LSP 可以选择或避开哪些类型的链路:
| 属性位 | 名称 | 用途 |
|---|---|---|
| Bit 0 | Color1 | 自定义链路分类 |
| Bit 1 | Color2 | 自定义链路分类 |
| Bit 2 | Color3 | 自定义链路分类 |
| Bit 3 | Color4 | 自定义链路分类 |
| Bit 4 | Color5 | 自定义链路分类 |
| Bit 5 | Color6 | 自定义链路分类 |
| Bit 6 | Color7 | 自定义链路分类 |
| Bit 7 | Default | 默认类 |
亲和属性的组合: - 正向亲和(Must 和 Must-Not):LSP 必须/不能经过某类链路 - 偏好亲和(Preference):LSP 优先选择某类链路但不强制
3.4 多路径 TE(MP-TE)
当存在多个等价的 TE 路径时,可以通过多路径 TE 实现负载分担:
| 特性 | 说明 |
|---|---|
| 多 TE 隧道 | 同一 Head-Tail 建立多个 TE 隧道 |
| 流量分配 | 通过策略路由或 BGP 选路将流量分配到不同隧道 |
| 路径多样性 | 各隧道使用不同的显式路径或 CSPF 计算不同路径 |
四、实战配置/案例分析
4.1 三种路径模式配置
# ========== 模式1: 自动选路 ==========
[NE40E] interface Tunnel 1
[NE40E-Tunnel1] tunnel-protocol mpls-te
[NE40E-Tunnel1] mpls te tunnel-id 1
[NE40E-Tunnel1] mpls te destination 10.1.1.10
[NE40E-Tunnel1] mpls te bandwidth bs-value 100000
[NE40E-Tunnel1] mpls te priority 5 5
# 不配置显式路径, 完全自动选路
[NE40E-Tunnel1] ip address 10.255.255.1 255.255.255.255
# ========== 模式2: 完全手工选路 ==========
[NE40E] mpls te explicit-path Manual-Path1
[NE40E-explicit-path-Manual-Path1] next-hop-address 10.0.0.2 strict
[NE40E-explicit-path-Manual-Path1] next-hop-address 10.0.0.6 strict
[NE40E-explicit-path-Manual-Path1] next-hop-address 10.0.0.10 strict
[NE40E-explicit-path-Manual-Path1] next-hop-address 10.1.1.10 strict
[NE40E] interface Tunnel 2
[NE40E-Tunnel2] tunnel-protocol mpls-te
[NE40E-Tunnel2] mpls te tunnel-id 2
[NE40E-Tunnel2] mpls te destination 10.1.1.10
[NE40E-Tunnel2] mpls te explicit-path Manual-Path1
[NE40E-Tunnel2] ip address 10.255.255.2 255.255.255.255
# ========== 模式3: 混合选路 ==========
[NE40E] mpls te explicit-path Hybrid-Path1
[NE40E-explicit-path-Hybrid-Path1] next-hop-address 10.0.0.2 strict
# 第一段固定: Head → 10.0.0.2
[NE40E-explicit-path-Hybrid-Path1] next-hop-address 10.0.0.10 loose
# 第二段灵活: 10.0.0.2 → 10.0.0.10 (CSPF计算)
[NE40E-explicit-path-Hybrid-Path1] next-hop-address 10.1.1.10 strict
# 第三段固定: 10.0.0.10 → Tail
[NE40E] interface Tunnel 3
[NE40E-Tunnel3] tunnel-protocol mpls-te
[NE40E-Tunnel3] mpls te tunnel-id 3
[NE40E-Tunnel3] mpls te destination 10.1.1.10
[NE40E-Tunnel3] mpls te explicit-path Hybrid-Path1
[NE40E-Tunnel3] ip address 10.255.255.3 255.255.255.255
4.2 亲和属性配置
# 配置链路亲和属性
[NE40E] interface 10GE 1/0/1
[NE40E-10GE1/0/1] mpls te affinity 0x80
# 设置链路颜色为Default (Bit 7)
[NE40E] interface 10GE 1/0/2
[NE40E-10GE1/0/2] mpls te affinity 0x01
# 设置链路颜色为Color1 (Bit 0)
# 配置 TE 隧道的亲和需求
[NE40E-Tunnel1] mpls te affinity 0x80
[NE40E-Tunnel1] mpls te affinity-must-not 0x01
# 必须使用Default颜色链路, 避开Color1链路
4.3 故障排查:显式路径无效
故障场景:配置了显式路径的 TE 隧道建立失败。
# Step 1: 查看隧道状态
<NE40E> display mpls te tunnel-interface interface Tunnel 2
Primary LSP State: Down
Error Info: Explicit Path Invalid
# Step 2: 检查显式路径配置
<NE40E> display mpls te explicit-path Manual-Path1
Path: Manual-Path1
Hop 1: 10.0.0.2 (Strict)
Hop 2: 10.0.0.6 (Strict)
Hop 3: 10.0.0.10 (Strict)
Hop 4: 10.1.1.10 (Strict)
# Step 3: 检查 IGP 可达性
<NE40E> display ip routing-table 10.0.0.6
# 路由存在
# Step 4: 检查 TE 数据库
<NE40E> display mpls te database
# 10.0.0.6 的 TE Router ID 不在 TE 数据库中
# 根因: 10.0.0.6 设备未启用 MPLS TE!
# Step 5: 在对端设备启用 TE
[LSR-Mid] mpls
[LSR-Mid-mpls] mpls te
[LSR-Mid] interface 10GE 1/0/1
[LSR-Mid-10GE1/0/1] mpls te
# Step 6: 验证恢复
<NE40E> display mpls te tunnel-interface interface Tunnel 2
Primary LSP State: Established
五、总结
| 项目 | 要点 |
|---|---|
| 自动选路 | CSPF 全权负责路径计算,运维最简单但不可控 |
| 手工选路 | 管理员完全控制路径,运维复杂但精确 |
| 混合选路 | 显式路径指定关键点 + CSPF 填充中间路径,兼顾灵活与控制 |
| Strict vs Loose | Strict 强制经过,Loose 允许 CSPF 在两点间灵活计算 |
| 亲和属性 | 通过链路颜色标记,控制 TE 隧道的链路偏好 |
思考
- 使用 Loose Host 时,CSPF 在两个 Loose Host 之间计算路径,如果这段路径不满足带宽约束怎么办?
- 显式路径配置中,最后一个跳点(Tail-End)必须配置为 Strict 还是 Loose?为什么?
- 在 IGP 路由震荡期间,使用手工显式路径的 TE 隧道比自动选路的 TE 隧道更稳定吗?为什么?
下篇预告:第161篇:MPLS TE FRR(快速重路由)