第159篇:CR-LSP 的建立与带宽预留

关键词:CR-LSP、带宽预留、带宽准入控制、BSP、TE带宽等级、带宽超额分配

一、引言

CR-LSP(Constraint-based Routed Label Switched Path)是 MPLS TE 的核心产物,它在标准 LSP 的基础上增加了"约束"概念。带宽预留是 CR-LSP 最重要的约束机制之一——它确保关键业务流量在穿越网络时能够获得承诺的带宽保障,不会因为其他流量突增而被挤压。理解带宽预留的机制、配置和限制,是实施 MPLS TE 的前提。

二、核心概念

2.1 带宽预留原理

带宽预留的核心思想是:在建立 TE LSP 时,沿途每一跳都检查并"预留"所需的带宽。预留不是独占物理带宽,而是在逻辑上标记这部分带宽已被使用,后续新建的 LSP 只能使用剩余的"可用带宽"。

带宽预留原理 - 图示

2.2 RSVP-TE 带宽等级(BSP)

RSVP-TE 将带宽分为 11 个固定等级(Bandwidth Specification):

BSP 等级 带宽值 说明
BSP1 1 kbps 最小带宽
BSP2 10 kbps
BSP3 100 kbps
BSP4 1 Mbps
BSP5 10 Mbps
BSP6 100 Mbps
BSP7 1 Gbps
BSP8 10 Gbps
BSP9 100 Gbps
BSP10 1 Tbps
BSP11 10 Tbps 最大带宽

当配置 TE 隧道带宽时,设备自动选择大于等于请求值的最小 BSP 等级。

2.3 带宽超额分配(Overbooking)

默认情况下,RSVP-TE 不允许超额分配——即一个接口的已预留带宽总和不能超过接口声明的可用带宽。但在某些场景下,运营商允许一定程度的超额分配以提高链路利用率。

模式 说明
严格模式(默认) 已预留带宽 ≤ 接口声明带宽,不允许超额
超额模式 允许一定比例的超额分配(如 150%)

三、技术细节

3.1 CR-LSP 建立与带宽检查流程

CR-LSP 建立与带宽检查流程 - 图示

3.2 带宽预留与优先级

RSVP-TE 支持两级优先级控制:

优先级 取值范围 说明
建立优先级(Setup Priority) 0-7 LSP 建立时的优先级,7为最高
保持优先级(Hold Priority) 0-7 LSP 建立后的保持优先级,7为最高

抢占机制: - 当新 LSP 需要抢占已有 LSP 的带宽时,只有当新 LSP 的建立优先级 > 已有 LSP 的保持优先级时,抢占才会发生 - 通常建议:建立优先级 ≤ 保持优先级(避免自身被抢占) - 关键业务:建立优先级=7,保持优先级=7(永不抢占也永不被抢占) - 普通业务:建立优先级=5,保持优先级=5(可被更高优先级抢占)

3.3 带宽统计与显示

接口上维护的带宽信息:

统计项 说明
接口物理带宽 接口实际物理带宽(如 10Gbps)
声明带宽(Administrative) 管理员声明的用于 TE 的带宽(可小于物理带宽)
可用带宽(Available) 声明带宽 - 已预留带宽
已预留带宽(Reserved) 所有活跃 TE LSP 预留带宽的总和
# 查看带宽统计
<NE40E> display mpls te interface 10GE 1/0/1
  Interface: 10GE1/0/1
    Physical Bandwidth: 10000000 kbps
    Administrative BW:  10000000 kbps
    Available BW:       8000000 kbps
    Reserved BW:
      Class0: 0 kbps
      Class1: 1000000 kbps (Tunnel 1)
      Class2: 1000000 kbps (Tunnel 2)

3.4 TE 带宽与 Class-Type

华为设备支持将 TE 带宽分为 8 个类(Class0-Class7),每个类独立管理带宽预留:

类 说明
Class0 默认类,通用 TE 隧道使用
Class1-Class7 自定义类,用于 DS-TE(区分服务 TE)

3.5 CSPF 路径计算算法详解

CSPF(Constrained Shortest Path First)是 TE 隧道建立的核心计算引擎,它在标准 SPF 算法基础上增加约束条件:

计算阶段 操作 说明
1. 构建 TE 拓扑 收集 IGP + TE 扩展信息 包含链路带宽、亲和属性、管理组
2. 过滤不可达链路 剔除 Down 链路 接口状态为 Down 的链路不参与计算
3. 过滤带宽不足 可用带宽 < 请求带宽 排除无法承载请求带宽的链路
4. 过滤亲和属性 不匹配 affinity/exclusion 根据颜色标签过滤
5. 执行 SPF 计算 Dijkstra 算法 在剩余链路中寻找最短路径
6. 返回路径 输出候选路径列表 Head-End 选择最优路径发起 Path 消息

CSPF vs 标准 SPF 对比:

对比项 标准 SPF CSPF
计算依据 链路 Cost 链路 Cost + 约束条件
约束条件 无 带宽、亲和属性、管理组、显式路径
计算复杂度 低(O(E + VlogV)) 较高(每跳需检查约束)
计算结果 唯一最短路径 可能无解或多解
执行时机 IGP 拓扑变化时 TE 隧道建立/重优化时
# 查看CSPF计算结果
<NE40E> display mpls te cspf 10.1.1.10 bandwidth 100000
  CSPF Result:
    Destination: 10.1.1.10
    Bandwidth Request: 100000 kbps
    Path: 10.0.0.1 -> 10.0.0.4 -> 10.0.0.6 -> 10.0.0.10
    Total Cost: 30
    Bottleneck Bandwidth: 150000 kbps (sufficient)

# 查看TE拓扑信息(CSPF使用的拓扑数据库)
<NE40E> display mpls te topology
  TE Topology Database:
    Node: 10.0.0.1 (Local)
      Link: 10.0.0.1 -> 10.0.0.4
        Cost: 10, BW: 10G, Available: 8G, Affinity: 0x1
      Link: 10.0.0.1 -> 10.0.0.2
        Cost: 10, BW: 10G, Available: 2G, Affinity: 0x1

3.6 TE 带宽分配策略对比

策略 带宽模型 适用场景 配置方式
单类模型 所有隧道共享同一带宽池 简单网络、单一业务类型 默认,Class0
双类模型(Max/Min-Rate) Bandwidth-Exclusive + Bandwidth-Inclusive 区分关键/普通业务 DS-TE 配置
8类模型(Lambda=8) 8个独立带宽池 多业务隔离、精细化管控 Class0-Class7
# 配置DS-TE双类模型
[NE40E] mpls
[NE40E-mpls] mpls te
[NE40E-mpls-te] te-class-type max-rate
  # Max-Rate模型: 带宽分为Exclusive和Inclusive两类

[NE40E] interface 10GE 1/0/1
[NE40E-10GE1/0/1] mpls te bandwidth available 10000000
[NE40E-10GE1/0/1] mpls te bandwidth exclusive 5000000
  # Exclusive类: 5Gbps (关键业务独占)
  # Inclusive类: 5Gbps (普通业务共享)

# 隧道绑定带宽类
[NE40E] interface Tunnel 10
[NE40E-Tunnel10] mpls te bandwidth class-type 1
  # class-type 1 = Exclusive类

3.7 带宽监控配置模板

# 华为设备: 带宽监控与告警配置

# 1. 配置带宽阈值告警
[NE40E] mpls te bandwidth-alarm enable
[NE40E] mpls te bandwidth-alarm threshold 80
  # 当接口预留带宽超过声明带宽的80%时发出告警

# 2. 配置带宽利用率采样
[NE40E] mpls te bandwidth-sampling interval 60
  # 每60秒采样一次带宽利用率

# 3. 查看带宽趋势
<NE40E> display mpls te bandwidth-history interface 10GE 1/0/1
  Time          Reserved    Available   Utilization
  09:00:00      6000Mbps    4000Mbps    60%
  09:10:00      6500Mbps    3500Mbps    65%
  09:20:00      7200Mbps    2800Mbps    72%
  09:30:00      7800Mbps    2200Mbps    78%
  09:40:00      8200Mbps    1800Mbps    82%  <-- 超过阈值!

# 4. Telemetry 集成(实时带宽监控)
[NE40E] telemetry ietek
[NE40E-telemetry-itek] sensor-group mpls-te-bandwidth
[NE40E-telemetry-itek-sg-mpls-te-bandwidth] sampling-interval 10000
  # 10秒采样(毫秒)
[NE40E-telemetry-itek-sg-mpls-te-bandwidth] data-node mpls-te:interfaces/interface/state/available-bandwidth

四、实战配置/案例分析

4.1 TE 带宽预留配置

# 华为 NE40E: 配置接口 TE 带宽

[NE40E] interface 10GE 1/0/1
[NE40E-10GE1/0/1] mpls te bandwidth available 10000000
  # 声明接口 TE 可用带宽: 10Gbps

# 配置 TE 隧道并预留带宽
[NE40E] interface Tunnel 10
[NE40E-Tunnel10] tunnel-protocol mpls-te
[NE40E-Tunnel10] mpls te tunnel-id 10
[NE40E-Tunnel10] mpls te destination 10.1.1.10
[NE40E-Tunnel10] mpls te bandwidth bs-value 100000
  # 预留带宽: 100Mbps (BSP6)
[NE40E-Tunnel10] mpls te priority 5 5
[NE40E-Tunnel10] ip address 10.255.255.10 255.255.255.255

# 配置带宽超额分配比(可选)
[NE40E] mpls te overbooking-ratio 150
  # 允许150%的带宽超额分配

4.2 带宽抢占配置

# 高优先级隧道(可抢占低优先级隧道带宽)
[NE40E] interface Tunnel 20
[NE40E-Tunnel20] tunnel-protocol mpls-te
[NE40E-Tunnel20] mpls te tunnel-id 20
[NE40E-Tunnel20] mpls te destination 10.1.1.10
[NE40E-Tunnel20] mpls te bandwidth bs-value 500000
  # 请求500Mbps
[NE40E-Tunnel20] mpls te priority 7 7
  # 建立=7, 保持=7 (最高优先级, 可抢占一切)
[NE40E-Tunnel20] ip address 10.255.255.20 255.255.255.255

# 低优先级隧道(可被抢占)
[NE40E] interface Tunnel 30
[NE40E-Tunnel30] tunnel-protocol mpls-te
[NE40E-Tunnel30] mpls te tunnel-id 30
[NE40E-Tunnel30] mpls te destination 10.1.1.10
[NE40E-Tunnel30] mpls te bandwidth bs-value 300000
[NE40E-Tunnel30] mpls te priority 3 3
  # 建立=3, 保持=3 (可被优先级>3的隧道抢占)

4.3 故障排查:带宽准入失败

故障场景:新建立的 TE 隧道在 Path 阶段失败,返回 PathError。

# Step 1: 查看错误记录
<NE40E> display mpls te fault-record
  Error Code: 2 (Routing/Reachability)
  Error Value: 13 (Admission Control Failure)
  Error Node: 10.0.0.4

# Step 2: 检查故障节点带宽
<LSR-Mid> display mpls te interface 10GE 1/0/1
  Administrative BW: 1000000 kbps
  Available BW: 0 kbps
  # 可用带宽为0! 所有带宽已被预留

# Step 3: 查看已占用的 TE 隧道
<LSR-Mid> display mpls te rsvp-session
  Session 1: Tunnel1 -> Reserved 400Mbps
  Session 2: Tunnel2 -> Reserved 300Mbps
  Session 3: Tunnel3 -> Reserved 300Mbps
  Total Reserved: 1000Mbps

# Step 4: 解决方案
# 方案A: 降低新隧道带宽
[NE40E-Tunnel40] mpls te bandwidth bs-value 100000

# 方案B: 增加接口声明带宽
[LSR-Mid-10GE1/0/1] mpls te bandwidth available 2000000

# 方案C: 使用优先级抢占
[NE40E-Tunnel40] mpls te priority 7 7
# 注意: 抢占会导致低优先级隧道被拆除!

五、总结

项目 要点
带宽预留 CR-LSP 建立时沿途逐跳检查并标记可用带宽
BSP 等级 11个固定带宽等级,1kbps ~ 10Tbps
准入控制 可用带宽 ≥ 请求带宽则通过,否则返回 PathError
优先级抢占 高建立优先级可抢占低保持优先级的 LSP 带宽
超额分配 默认不允许,可配置超额比例提高利用率

思考

  1. 带宽预留是"逻辑预留"而非"物理独占",如果预留了 1Gbps 带宽但实际流量只有 100Mbps,剩余的 900Mbps 能被其他非 TE 流量使用吗?
  2. 当 TE 隧道被拆除时,预留的带宽如何释放?释放是立即生效还是需要等待 RSVP Refresh 超时?
  3. 带宽抢占虽然实现了优先级保障,但频繁抢占会导致网络震荡。在实际网络中如何控制抢占行为?

下篇预告:第160篇:TE 隧道路径计算与显式路径