第162篇:MPLS TE 与 DiffServ 结合:DS-TE

关键词:DS-TE、区分服务TE、Class-Type、CT、流量分类、优先级队列、MPLS QoS

一、引言

标准 MPLS TE 使用单一带宽池进行带宽管理,所有 TE 隧道共享同一个"可用带宽"值。这种模型在业务种类单一的网络中工作良好,但当网络需要承载多种不同服务质量要求的业务时,单一带宽池就无法满足差异化需求。DS-TE(Differentiated Services Traffic Engineering)将 DiffServ(区分服务)与 MPLS TE 相结合,通过多类带宽池实现不同优先级业务的带宽隔离与保障。

二、核心概念

2.1 DS-TE 核心思想

标准 TE 只有单一 Class(Class-Type 0),所有 TE 隧道共享一个带宽池。DS-TE 引入多个 Class-Type(CT),每个 CT 独立管理带宽:

模式 Class-Type 数量 带宽池
标准 TE 1 (CT0) 单一带宽池
DS-TE 最多 8 (CT0-CT7) 每个 CT 独立带宽池

DS-TE 核心思想 - 图示

2.2 Class-Type(CT)与流量分类

每个 Class-Type 对应一种业务类型:

CT 典型业务 优先级 带宽保障
CT0 语音(VoIP) 最高 严格保障
CT1 视频(Video) 高 高保障
CT2 关键数据 中 中等保障
CT3 普通数据 低 尽力而为

2.3 两种 DS-TE 带宽分配模型

模型 说明 特点
最大分配(MAM,Maximum Allocation Model) 每个 CT 独立声明最大带宽,各 CT 带宽可重叠 灵活,但可能超额分配
俄罗斯套娃(RDM,Russian Doll Model) 各 CT 带宽逐层嵌套(CT2 ≤ CT1+CT2 ≤ 总带宽),高优先级可借用低优先级资源 资源利用率高,隔离性稍弱

RDM 模型详解:RDM 采用嵌套约束方式,以 3 个 CT 为例:

约束 公式 说明
BC2 CT2 使用 ≤ 200 Mbps CT2(最高优先级)独立上限
BC1 CT1 + CT2 ≤ 600 Mbps CT1 和 CT2 合计上限
BC0 CT0 + CT1 + CT2 ≤ 1000 Mbps 所有 CT 合计上限(接口总带宽)

RDM 的优势在于:当 CT2(语音)空闲时,CT1 和 CT0 可以借用 CT2 的资源。但 CT2 一旦有业务,CT1 和 CT0 必须释放相应带宽,确保 CT2 获得保障。

2.4 TE Class(TE 等级)

TE Class 是 DS-TE 中的核心概念,由 Class Type(CT)和 Preemption Priority(抢占优先级)两个维度组成:

TE Class CT 抢占优先级 典型业务
TE Class 0 CT2 0(最高) 语音(最高优先级)
TE Class 1 CT2 2 视频会议
TE Class 2 CT1 4 关键业务数据
TE Class 3 CT1 6 普通业务数据
TE Class 4 CT0 7(最低) 尽力而为(Best Effort)

每个 DS-TE 节点最多支持 8 个 TE Class。TE Class 决定了隧道的带宽约束归属和抢占行为:当带宽不足时,高优先级的隧道可以抢占低优先级隧道的带宽。

三、技术细节

3.1 DS-TE 带宽管理

DS-TE 带宽管理 - 图示

3.2 DS-TE 与 EXP 映射

MPLS 标签的 EXP(实验用)字段用于标识 DiffServ 优先级:

EXP 值 DSCP 队列 CT 映射
7 CS7 (网络控制) 队列0 CT0
6 CS6 队列0 CT0
5 EF (语音) 队列1 CT0
4 AF41 (视频) 队列2 CT1
3 AF31 队列3 CT1
2 AF21 队列4 CT2
1 AF11 队列5 CT3
0 BE (尽力而为) 队列6 CT3

3.3 DS-TE 信令扩展

RSVP-TE 为 DS-TE 做了以下扩展:

扩展对象 说明
Class-Type 字段 Path/Resv 消息中携带 CT 标识
每 CT 带宽 每个 CT 独立携带带宽请求
每 CT 优先级 每个 CT 独立配置建立/保持优先级

四、实战配置/案例分析

4.1 华为 DS-TE 配置

# ========== 全局启用 DS-TE ==========
[NE40E] mpls
[NE40E-mpls] mpls te
[NE40E-mpls-te] class-type 0 4000000
  # CT0 最大带宽: 4Gbps
[NE40E-mpls-te] class-type 1 4000000
  # CT1 最大带宽: 4Gbps
[NE40E-mpls-te] class-type 2 2000000
  # CT2 最大带宽: 2Gbps

# ========== 接口配置 DS-TE ==========
[NE40E] interface 10GE 1/0/1
[NE40E-10GE1/0/1] mpls
[NE40E-10GE1/0/1] mpls te
[NE40E-10GE1/0/1] mpls te bandwidth available 10000000
[NE40E-10GE1/0/1] mpls te class-type 0 4000000
[NE40E-10GE1/0/1] mpls te class-type 1 4000000
[NE40E-10GE1/0/1] mpls te class-type 2 2000000

# ========== 不同CT的TE隧道 ==========
# 语音隧道 (CT0)
[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 class-type 0
[NE40E-Tunnel10] mpls te bandwidth bs-value 1000000
[NE40E-Tunnel10] mpls te priority 7 7
[NE40E-Tunnel10] ip address 10.255.255.10 255.255.255.255

# 视频隧道 (CT1)
[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 class-type 1
[NE40E-Tunnel20] mpls te bandwidth bs-value 2000000
[NE40E-Tunnel20] mpls te priority 5 5
[NE40E-Tunnel20] ip address 10.255.255.20 255.255.255.255

4.2 DS-TE 与 QoS 策略结合

# 配置基于DSCP到CT的分类策略
[NE40E] qos class VoIP
[NE40E-qos-class-VoIP] if-match dscp ef
[NE40E] qos class Video
[NE40E-qos-class-Video] if-match dscp af41

# 配置行为绑定CT
[NE40E] qos carb ct0-carb
[NE40E-qos-carb-ct0-carb] queue sch drt
[NE40E] qos carb ct1-carb
[NE40E-qos-carb-ct1-carb] queue sch wfq

# 应用策略
[NE40E] qos policy ds-te-policy
[NE40E-qos-policy-ds-te-policy] classifier VoIP behavior ct0-carb
[NE40E-qos-policy-ds-te-policy] classifier Video behavior ct1-carb

[NE40E] interface 10GE 1/0/1
[NE40E-10GE1/0/1] qos apply policy ds-te-policy queue

4.3 故障排查:DS-TE 带宽超限

故障场景:新建立的 CT1 隧道失败,但 CT0 隧道正常。

# Step 1: 查看CT带宽使用
<NE40E> display mpls te interface 10GE 1/0/1
  Class-Type 0: Available=2000000, Reserved=2000000
  Class-Type 1: Available=0, Reserved=4000000
  # CT1可用带宽为0!

# Step 2: 查看已占用的CT1隧道
<NE40E> display mpls te rsvp-session class-type 1
  Tunnel 20: Reserved 2000000 (2Gbps)
  Tunnel 21: Reserved 2000000 (2Gbps)
  Total CT1 Reserved: 4000000 (等于声明带宽)

# Step 3: 解决方案
# 方案A: 增加CT1声明带宽
[NE40E-10GE1/0/1] mpls te class-type 1 6000000

# 方案B: 降低新隧道的带宽需求
[Tunnel30] mpls te bandwidth bs-value 500000

4.4 策略路由引导流量到 TE 隧道

DS-TE 确保隧道级别的带宽隔离,但还需要将不同业务流量引导到对应的 TE 隧道。使用策略路由(PBR)实现:

# 将标记为 EF(语音 DSCP 46)的流量导入语音隧道
[NE40E] traffic classifier voice
[NE40E-traffic-classifier-voice] if-match dscp ef

[NE40E] traffic behavior to-voice-tunnel
[NE40E-traffic-behavior-to-voice-tunnel] redirect ip-nexthop Tunnel10
  # 将语音流量重定向到 CT0(语音)TE 隧道

[NE40E] traffic classifier video
[NE40E-traffic-classifier-video] if-match dscp af41

[NE40E] traffic behavior to-video-tunnel
[NE40E-traffic-behavior-to-video-tunnel] redirect ip-nexthop Tunnel20
  # 将视频流量重定向到 CT1(视频)TE 隧道

[NE40E] traffic policy ds-te-routing
[NE40E-traffic-policy-ds-te-routing] classifier voice behavior to-voice-tunnel
[NE40E-traffic-policy-ds-te-routing] classifier video behavior to-video-tunnel

# 在 CE 侧接口应用策略
[NE40E] interface GigabitEthernet 1/0/0
[NE40E-GigabitEthernet1/0/0] traffic-policy ds-te-routing inbound

4.5 DS-TE 验证命令

# 查看 DS-TE 全局配置
<NE40E> 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: CT2, Priority 0
    TE Class 1: CT2, Priority 2
    TE Class 2: CT1, Priority 4
    TE Class 3: CT0, Priority 7

# 查看 DS-TE 带宽使用情况
<NE40E> display mpls te ds-te bandwidth

# 查看 TE Class 表
<NE40E> display mpls te ds-te te-class

# 验证隧道带宽预留
<NE40E> display mpls te tunnel interface Tunnel10

# 查看 RSVP-TE 会话
<NE40E> display mpls te rsvp-session

4.6 DS-TE 与 QPPB 结合

QPPB(QoS Policy Propagation via BGP)通过 BGP 路由策略标记 QoS 等级:

# BGP 出站策略:为特定路由标记 QoS
[NE40E] route-policy QPPB-EXPORT permit node 10
[NE40E-route-policy-QPPB-EXPORT-node10] if-match ip-address 10.1.0.0 16
[NE40E-route-policy-QPPB-EXPORT-node10] apply dscp ef
  # 语音网段的路由标记为 EF

[NE40E] bgp 65001
[NE40E-bgp-65001] ipv4-family vpn-instance VRF-A
[NE40E-bgp-65001-vpnv4] peer 10.1.2.1 route-policy QPPB-EXPORT export

# BGP 入站策略:根据标记选择 TE 隧道
[NE40E] route-policy QPPB-IMPORT permit node 10
[NE40E-route-policy-QPPB-IMPORT-node10] if-match dscp ef
[NE40E-route-policy-QPPB-IMPORT-node10] apply mpls-te tunnel 10
  # 标记为 EF 的路由通过 CT0 语音隧道转发

4.7 跨厂商 DS-TE 互操作性

厂商 DS-TE 模式 注意事项
华为(Huawei) IETF 标准模式 需确认 TE Class 定义一致
思科(Cisco IOS XR) IETF 标准模式 TE Class 默认映射可能不同
Juniper IETF 标准模式 需手动映射 CT 到 BC

跨厂商部署时,必须保证所有节点的 TE Class 定义(CT + Priority 映射)完全一致,否则隧道无法建立或带宽约束失效。

五、总结

项目 要点
DS-TE 目的 多业务类型的带宽隔离与差异化保障
Class-Type 最多 8 个 CT,每个 CT 独立带宽池
带宽模型 最大分配(可重叠)vs 严格分配(不重叠)
EXP 映射 MPLS EXP 位标识 DiffServ 优先级,映射到 CT
配置要点 全局声明 CT 带宽 + 接口声明 CT 带宽 + 隧道绑定 CT

思考

  1. DS-TE 中各 Class-Type 的带宽之和可以超过接口物理带宽吗?如果超额分配,拥塞时如何处理?
  2. CT 的优先级与 RSVP-TE 的建立优先级/保持优先级是同一概念吗?它们如何协同工作?
  3. 如果一条 TE 隧道跨越的链路上某些节点支持 DS-TE、某些不支持,隧道能否正常建立?

下篇预告:第163篇:MPLS L3VPN 基础:VRF、RD、RT