第162篇:MPLS TE 与 DiffServ 结合:DS-TE
关键词
DS-TE、DiffServ-Aware TE、BC(Bandwidth Constraint)、CT(Class Type)、TE Class、优先级映射
一、为什么需要 DS-TE?
1.1 MPLS TE 的缺陷
标准的 MPLS TE 可以: - 控制流量走指定路径 - 为隧道预留带宽 - 故障时快速切换
但标准 MPLS TE 无法区分业务优先级:
问题场景:
接口总共 1Gbps
Tunnel A(语音) 预留 600Mbps
Tunnel B(上网) 预留 600Mbps
标准 TE 的行为:
Tunnel A + Tunnel B 预留总和 = 1200Mbps > 1Gbps
→ CAC 拒绝后面的隧道建立
但实际上:
Tunnel A 可能只用了 100Mbps
Tunnel B 可能在跑满 500Mbps
如果 Tunnel B 能被允许建立,链路也不会拥塞
问题在于:标准 TE 不知道哪个业务更重要!
1.2 DS-TE 要解决的问题
DS-TE(DiffServ-Aware TE,区分服务感知的流量工程) 在标准 TE 的基础上引入服务等级(Class)概念:
- 为不同等级的流量定义独立的带宽约束
- 高优先级的流量不能抢占低优先级的带宽——更重要的是,高优先级的流量有专属带宽池
- 确保语音等高优先级流量在任何情况下都能获得保障
二、DS-TE 的核心概念
2.1 带宽约束模型(Bandwidth Constraint Model)
DS-TE 的核心是带宽约束(BC)——为不同等级的流量分配独立的带宽上限。
接口总带宽:1 Gbps
BC0(CT0 - 尽力而为):最大 600 Mbps
BC1(CT1 - 业务数据):最大 400 Mbps
BC2(CT2 - 语音/视频):最大 200 Mbps
总预留不能超过 1 Gbps
但 CT2(语音)有 200 Mbps 的专属上限
2.2 两个带宽约束模型
| 模型 | 说明 | 适用场景 |
|---|---|---|
| MAM(Maximum Allocation Model) | 每个 CT 的 BC 独立,互不共享 | 需要严格隔离的场景 |
| RDM(Russian Doll Model) | CT 的 BC 逐层嵌套,高优先级的可以借用低优先级的 | 资源利用率优先的场景 |
2.3 MAM(最大分配模型)
BC2 (CT2) 200M
BC1 (CT1) 400M
BC0 (CT0) 600M
约束:
CT2 使用的带宽 ≤ 200M(独立限制)
CT1 使用的带宽 ≤ 400M(独立限制)
CT0 使用的带宽 ≤ 600M(独立限制)
优点:各等级严格隔离
缺点:可能出现低优先级空闲、高优先级也已满的情况
2.4 RDM(俄罗斯套娃模型)
| BC0 = 1000M ┌───────────┐ | ← 所有 CT 的总和不能超过 1G BC1=600M ┌───────┐ | BC2= 200M | ← CT1+CT2 总和 ≤ 600M | ← CT2 独立 ≤ 200M | |
|---|---|---|---|---|---|
约束: CT2 ≤ BC2 CT1 + CT2 ≤ BC1 CT0 + CT1 + CT2 ≤ BC0
优点:资源利用率高(低优先级可以借用高优先级的空闲资源) 缺点:隔离性不如 MAM
三、TE Class(TE 等级)
3.1 概念
TE Class 是 CT(Class Type)和 Preemption Priority(抢占优先级)的组合:
TE Class = [Class Type, Preemption Priority]
标准定义(RFC 4124),每个 DS-TE 节点最多支持 8 个 TE Class:
TE Class 0: CT0, Priority 0
TE Class 1: CT0, Priority 1
TE Class 2: CT0, Priority 2
...
TE Class 7: CT0, Priority 7
使用 RDM 模型时还可以定义 CT1/CT2 的 TE Class
3.2 典型映射示例
| 流量类型 | CT | Preemption Priority | TE Class |
|---|---|---|---|
| 语音(最高优先级) | CT2 | 0(最高) | TE Class ? |
| 视频会议 | CT2 | 2 | 自定义 |
| 关键业务数据 | CT1 | 4 | TE Class ? |
| 尽力而为(Best Effort) | CT0 | 7(最低) | TE Class 7 |
四、DS-TE 的配置示例
4.1 全局 DS-TE 配置
# 华为设备 DS-TE 配置
mpls
te ds-te mode ietf # 使能 DS-TE(IETF 标准模式)
!
# 定义带宽约束模型(RDM)
mpls
te bandwidth constraints rdm # 使用 RDM 模型
te bc 0 bandwidth 1000000 # BC0 = 1 Gbps
te bc 1 bandwidth 600000 # BC1 = 600 Mbps
te bc 2 bandwidth 200000 # BC2 = 200 Mbps
4.2 接口带宽约束
interface GigabitEthernet0/0/0
rsvp-te bandwidth max-reservable 1000000 # 接口最大可预留 1 Gbps
rsvp-te bandwidth bc 0 1000000 # BC0 带宽
rsvp-te bandwidth bc 1 600000 # BC1 带宽
rsvp-te bandwidth bc 2 200000 # BC2 带宽
4.3 隧道配置(CT 指定)
# 语音隧道(CT2,最高优先级)
interface Tunnel2
tunnel-protocol mpls te
destination 2.2.2.2
mpls te tunnel-id 102
mpls te bandwidth ct2 100000 # CT2 带宽 100 Mbps
mpls te priority 0 0 # Setup=0, Holding=0
mpls te commit
# 业务数据隧道(CT1,中等优先级)
interface Tunnel1
tunnel-protocol mpls te
destination 2.2.2.2
mpls te tunnel-id 101
mpls te bandwidth ct1 300000 # CT1 带宽 300 Mbps
mpls te priority 4 4
mpls te commit
# 普通上网隧道(CT0,最低优先级)
interface Tunnel0
tunnel-protocol mpls te
destination 2.2.2.2
mpls te tunnel-id 100
mpls te bandwidth ct0 500000 # CT0 带宽 500 Mbps
mpls te priority 7 7
mpls te commit
4.4 验证
<HUAWEI> display mpls te ds-te
DS-TE Information:
Model: RDM
Bandwidth Constraints (Kbps):
BC0: 1000000
BC1: 600000
BC2: 200000
TE-Class Table:
TE Class 0: CT0, Priority 0
TE Class 1: CT0, Priority 1
...
TE Class 7: CT0, Priority 7
五、DS-TE 与 QPPB(QoS Policy Propagation via BGP)
5.1 QPPB 的作用
DS-TE 确保隧道级别的带宽隔离,但还需要一种机制来将不同业务流量引导到不同的 TE 隧道。
QPPB 是一种通过 BGP 路由策略标记 QoS 等级的方法:
BGP 路由发布时携带 QoS 标记:
┌─────────────┐ ┌─────────────┐
│ BGP 路由 │ │ IP 路由 + QoS 标记 │
│ 10.0.0.0/16│─────────▶│ Local Pref=200 │
│ QoS=Voice │ │ EXP=5 │
└─────────────┘ └─────────────────────┘
│ │
│ BGP Update │ 最终路由表携带 QoS 信息
▼ ▼
5.2 策略路由引导到 TE 隧道
# 将标记为 EF(语音)的流量导入语音隧道
acl number 3001
rule 5 permit ip dscp ef
!
traffic classifier voice
if-match acl 3001
!
traffic behavior to-voice-tunnel
redirect ip-nexthop Tunnel2 # 导入 TE 隧道
!
traffic policy voice-policy
classifier voice behavior to-voice-tunnel
!
interface GigabitEthernet0/0/0
traffic-policy voice-policy inbound
六、DS-TE 的实际应用场景
6.1 运营商骨干网
| PE1 Tunnel Voice (CT2, 200M) Tunnel Data (CT1, 500M) Tunnel Best (CT0, 800M) | ────── | P1 | ────── | PE2 |
|---|---|---|---|---|
各隧道在同一物理链路上共享带宽,但通过 DS-TE 保证语音不会 被数据流量"饿死"。
6.2 企业 SD-WAN 混合链路
总部 备份 VPN
│────────────── MPLS ────────── 分支
│────────────── Internet ────── 分支
MPLS 链路(CT2):语音、视频
Internet 链路(CT1):关键业务数据
Best Effort(CT0):普通上网、备份
七、DS-TE 的排错
7.1 常见问题
| 问题 | 可能原因 | 排查方法 |
|---|---|---|
| 高优先级隧道建立失败 | BC 设置过小,或低优先级占用了高优先级 BC | display mpls te ds-te bandwidth |
| 隧道建立后无流量 | 策略路由未正确引导流量到隧道 | display traffic policy statistics |
| 带宽预留与实际情况不符 | RDM 模型误算 | 确认 BC 配置一致性 |
| 跨厂商 DS-TE 协商失败 | TE Class 定义不一致 | 检查两端 display mpls te ds-te te-class |
7.2 排查命令
# 查看 DS-TE 带宽使用情况
display mpls te ds-te bandwidth
# 查看 TE Class 表
display mpls te ds-te te-class
# 验证隧道带宽预留
display mpls te tunnel interface Tunnel1
八、总结
| 知识点 | 核心要点 |
|---|---|
| DS-TE 动机 | 在 TE 中区分业务优先级,确保高优先级流量 |
| BC(带宽约束) | 为不同 CT 分配独立带宽上限 |
| MAM 模型 | 各 CT 的 BC 独立,严格隔离 |
| RDM 模型 | BC 逐层嵌套,高优先级可借用低优先级资源 |
| CT(Class Type) | 流量等级(CT0 尽力而为,CT2 最高) |
| TE Class | CT + Priority 的组合 |
| 实现方式 | 接口级 BC 配置 + 隧道级 CT 设置 + 策略路由引导 |
九、思考
- 标准 MPLS TE 与 DS-TE 的主要区别是什么?
- MAM 和 RDM 两种带宽约束模型的区别和适用场景分别是什么?
- TE Class 由哪两个维度组成?为什么要这样设计?
- 如何将特定业务流量引导到对应的 TE 隧道?
- DS-TE 在运营商骨干网中的典型应用场景是什么?
下篇预告:第163篇《MPLS L3VPN 基础:VRF、RD、RT》——进入 MPLS VPN 的世界,理解 L3VPN 如何通过 VRF 实现多租户隔离,RD 和 RT 又是如何工作的。