第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 建立与带宽检查流程

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 带宽 |
| 超额分配 | 默认不允许,可配置超额比例提高利用率 |
思考
- 带宽预留是"逻辑预留"而非"物理独占",如果预留了 1Gbps 带宽但实际流量只有 100Mbps,剩余的 900Mbps 能被其他非 TE 流量使用吗?
- 当 TE 隧道被拆除时,预留的带宽如何释放?释放是立即生效还是需要等待 RSVP Refresh 超时?
- 带宽抢占虽然实现了优先级保障,但频繁抢占会导致网络震荡。在实际网络中如何控制抢占行为?
下篇预告:第160篇:TE 隧道路径计算与显式路径