第158篇:MPLS 流量工程基础:RSVP-TE

关键词

MPLS TE、RSVP-TE、流量工程、CR-LSP、信令协议、ERO、带宽预留


一、为什么需要 MPLS TE?

1.1 IGP 的最短路径问题

传统 IGP(OSPF/ISIS)转发基于最短路径优先算法,只考虑 Cost:

                   10Mbps
┌────────┴──────┐ ┌───────▼───────┐
Router A 10Gbps Router B 10Gbps
│ │
│ 10Gbps │
└────────┬──────────┘
┌─────▼──────┐
│ Router C │
└────────────┘

问题: - A→C 的最短路径是 A→C(Cost 最小),但该链路只有 10Mbps - A→B→C 的 Cost 更大,但链路带宽充足(10Gbps) - IGP 会把所有流量导向 10Mbps 的小链路 → 拥塞

MPLS TE 的解决方案:可以显式指定 A→B→C 作为路径,让流量避开拥塞链路。

1.2 MPLS TE 能做什么

能力 说明
显式路径 指定流量必须经过或避开某条链路
带宽预留 为关键业务预留带宽资源
负载均衡 在多条路径上分散流量
快速重路由 主路径故障时自动切换到保护路径
QoS 保障 为不同类型流量提供差异化服务

二、RSVP-TE 概述

2.1 从 RSVP 到 RSVP-TE

RSVP(Resource Reservation Protocol,资源预留协议)原本是为 IntServ(综合服务模型)设计的资源预留信令协议。

RSVP-TE 是对 RSVP 的扩展(RFC 3209),专门用于 MPLS 流量工程: - 新增 LABEL_REQUESTLABEL 对象——携带 MPLS 标签 - 新增 EXPLICIT_ROUTE 对象——指定显式路径 - 新增 RECORD_ROUTE 对象——记录经过的节点

2.2 RSVP-TE 的角色

在 MPLS TE 架构中:
┌─────────────────────────────────────────────────────┐
│                   管理层/用户                         │
│ ① 定义 TE 隧道的需求(带宽、路径、保护方式)         │
└──────────────┬──────────────────────────────────────┘
               │
┌──────────────▼──────────────────────────────────────┐
│              控制面(RSVP-TE)                       │
│ ② 信令交互:Path 报文 + Resv 报文                    │
│ ③ 沿途建立 CR-LSP,分发标签                          │
└──────────────┬──────────────────────────────────────┘
               │
┌──────────────▼──────────────────────────────────────┐
│              数据面                                   │
│ ④ 按照 CR-LSP 转发流量                               │
└─────────────────────────────────────────────────────┘

三、RSVP-TE 信令过程

3.1 核心报文

报文 方向 作用
Path 下游(Ingress → Egress) 请求建立 LSP,携带标签请求、ERO 等
Resv 上游(Egress → Ingress) 预留资源并分配标签
PathErr 上游 通知 Path 处理错误
ResvErr 下游 通知 Resv 处理错误
PathTear 下游 拆除 LSP
ResvTear 上游 释放资源
Hello 双向 邻居存活检测

3.2 完整信令流程

                               Tunnel Path
    Ingress(PE1) ─── P1 ─── P2 ─── P3 ─── Egress(PE2)
         │                                                 │
         │  1. Path(携带 ERO、LABEL_REQUEST)              │
         │────────────────────────────────────────────────▶│
         │  经由 P1→P2→P3,沿途节点记录 PATH State          │
         │                                                 │
         │  2. Resv(沿途分配标签,预留资源)                │
         │◀────────────────────────────────────────────────│
         │  P3 分配 Label=300 给 P2                        │
         │  P2 分配 Label=200 给 P1                        │
         │  P1 分配 Label=100 给 PE1(Ingress)            │
         │                                                 │
         │  3. CR-LSP 建立完成                              │
         │  数据面就绪                                      │
         │                                                 │
         │  4. 流量转发                                     │
         │  PE1 Push 100 → P1 Swap 200 → P2 Swap 300 → P3 Pop → PE2
         │                                                 │

3.3 Path 报文的关键对象

ERO(EXPLICIT_ROUTE Object,显式路由对象):指定路径经过的节点。

ERO 表示路径:PE1 → P1 → P2 → P3 → PE2

ERO Subobject List: 1. IPv4 Prefix: 10.1.1.2 (P1) 2. IPv4 Prefix: 10.2.2.2 (P2) 3. IPv4 Prefix: 10.3.3.2 (P3) 4. IPv4 Prefix: 10.4.4.2 (PE2)

每个 ERO 子对象可以是: - Strict(严格):下一跳必须直接相连 - Loose(松散):不要求直接相连,允许路径自动计算

3.4 Resv 报文的关键对象

LABEL 对象:携带分配的 MPLS 标签。

FLOWSPEC 对象:携带预留的带宽信息。

Resv 报文(P2 → P1):
  LABEL: 200
  FLOWSPEC: Bandwidth=100Mbps, Peak rate=200Mbps
  RECORD_ROUTE: P2(10.2.2.2) → P3(10.3.3.2) → PE2(10.4.4.2)

四、CR-LSP(Constraint-based LSP)

4.1 什么是 CR-LSP

CR-LSP 是基于约束条件建立的 LSP,与普通 LDP LSP 的最大区别在于:

对比维度 LDP LSP CR-LSP(RSVP-TE)
建立方式 自动基于 IGP 最短路径 显式约束路径
路径选择 IGP 拥塞感知最短路径 手工或自动计算
带宽预留 支持
资源约束 带宽、亲和属性等
保护能力 FRR 依赖隧道 自带快速重路由

4.2 约束条件

CR-LSP 支持以下约束:

CR-LSP 约束类型示例:
  1. 显式路径约束
     - 必经节点:P1 → P3
     - 避免节点:P2

  2. 带宽约束
     - 带宽:100 Mbps
     - 峰值速率:200 Mbps

  3. 亲和属性(Affinity)
     - 资源颜色:绿色(低延迟光纤链路)
     - 排斥:红色(卫星链路,高延迟)

  4. 优先级和抢占
     - Setup Priority:7(最低)
     - Holding Priority:0(最高)
     - 高优先级的隧道可以抢占低优先级的资源

五、CSPF(Constraint-based SPF)路径计算

5.1 计算过程

CSPF 是在标准 SPF 基础上,考虑约束条件的路径计算算法:

输入:
  - TED(流量工程数据库,通过 IGP TE 扩展收集)
  - 约束条件(带宽、亲和属性等)

过程:
  1. 从 TED 中剪除不满足约束的链路
     例:排除带宽不足的链路
         排除亲和属性不匹配的链路
  2. 在剩余拓扑上运行 SPF 算法
  3. 选择满足所有约束的最短路径

输出:
  - ERO(显式路由对象),指定路径

5.2 TED 的获取

TED(Traffic Engineering Database)通过 IGP 的 TE 扩展收集:

OSPF TE Extension(RFC 3630):
  - Opaque LSA Type 10(Area Local)
  - 携带链路 TE 属性:带宽、TE 度量、亲和属性等

ISIS TE Extension(RFC 5305):
  - TLV 22(Extended IS Reachability)
  - 子 TLV:带宽、TE 度量、亲和属性等

配置示例(OSPF TE):

# 华为设备
ospf 1
 opaque-capability enable                # 使能 Opaque LSA
 te-link-ipaddress 10.1.1.1              # 宣告 TE 链路

interface GigabitEthernet0/0/0
 ospf cost 10
 ospf te enable                          # 接口使能 TE
 ospf te bandwidth max-reservable 1000000 # 可预留带宽(Kbps)
 ospf te bandwidth unreserved 0 1000000  # 各优先级未预留带宽

六、RSVP-TE 隧道配置示例(华为设备)

6.1 基本配置

# 1. 全局使能 MPLS TE 和 RSVP-TE
mpls lsr-id 1.1.1.1
mpls
 te tunnel                           # 使能 TE 隧道
 rsvp-te                             # 使能 RSVP-TE
!
# 2. 接口使能 RSVP-TE
interface GigabitEthernet0/0/0
 mpls
 mpls te                             # 接口使能 TE
 rsvp-te                             # 接口使能 RSVP-TE
 rsvp-te bandwidth max-reservable 1000000  # 最大可预留带宽(Kbps)
 rsvp-te bandwidth unreserved 0 1000000    # 各优先级可预留带宽(Kbps)
!
# 3. 创建 TE 隧道接口
interface Tunnel1
 ip address unnumbered interface LoopBack0
 tunnel-protocol mpls te             # 隧道协议:MPLS TE
 destination 2.2.2.2                 # 目的地址(Egress LSR ID)
 mpls te tunnel-id 100               # 隧道 ID
 mpls te bandwidth 50000              # 带宽需求(Kbps)
 mpls te path explicit-path dynamic   # 动态路径计算
 mpls te commit                       # 提交 TE 配置
!
# 4. 配置静态路由指向 TE 隧道
ip route-static 10.0.0.0 255.255.255.0 Tunnel1

6.2 显式路径配置

# 定义显式路径
explicit-path path1
 next-hop 10.1.1.2                    # 经过 P1
 next-hop 10.2.2.2                    # 经过 P2
 next-hop 10.3.3.2                    # 经过 PE2
!
interface Tunnel1
 mpls te path explicit-path path1     # 绑定显式路径
 mpls te commit

6.3 验证命令

# 查看 TE 隧道状态
display mpls te tunnel               # 所有 TE 隧道
display mpls te tunnel interface Tunnel1  # 指定隧道详情
display mpls te tunnel statistics     # 隧道统计

# 查看 CR-LSP
display mpls te lsp encapsulation     # CR-LSP 信息
display mpls te lsp path              # LSP 路径

# 查看 RSVP-TE 会话
display rsvp-te session               # RSVP 会话
display rsvp-te neighbor              # RSVP 邻居

七、总结

知识点 核心要点
MPLS TE 通过约束条件(带宽、路径)显式控制流量路径
RSVP-TE MPLS TE 的信令协议,通过 Path/Resv 建立 CR-LSP
Path 报文 从 Ingress 发往 Egress,包含 ERO 和 LABEL_REQUEST
Resv 报文 从 Egress 返回 Ingress,携带标签和资源预留
ERO 显式路由对象,指定路径经过的节点
CR-LSP 基于约束的标签交换路径
CSPF 带约束的最短路径算法
TED 流量工程数据库,存储链路 TE 属性

八、思考

  1. IGP 最短路径转发的主要问题是什么?MPLS TE 如何解决?
  2. RSVP-TE 的 Path 报文和 Resv 报文分别完成什么任务?
  3. ERO 中的 Strict 和 Loose 子对象有什么区别?
  4. CR-LSP 和普通 LDP LSP 的核心区别是什么?
  5. CSPF 算法和标准的 SPF 算法有什么不同?

下篇预告:第159篇《CR-LSP 的建立与带宽预留》——详解 CR-LSP 的资源预留机制、优先级抢占和带宽保证。