第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 计算 必须经过,中间可选

显式路径(Explicit Path) - 图示

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 之间的段内进行计算:

CSPF 计算与显式路径的交互 - 图示

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 隧道的链路偏好

思考

  1. 使用 Loose Host 时,CSPF 在两个 Loose Host 之间计算路径,如果这段路径不满足带宽约束怎么办?
  2. 显式路径配置中,最后一个跳点(Tail-End)必须配置为 Strict 还是 Loose?为什么?
  3. 在 IGP 路由震荡期间,使用手工显式路径的 TE 隧道比自动选路的 TE 隧道更稳定吗?为什么?

下篇预告:第161篇:MPLS TE FRR(快速重路由)