第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 设置 + 策略路由引导

九、思考

  1. 标准 MPLS TE 与 DS-TE 的主要区别是什么?
  2. MAM 和 RDM 两种带宽约束模型的区别和适用场景分别是什么?
  3. TE Class 由哪两个维度组成?为什么要这样设计?
  4. 如何将特定业务流量引导到对应的 TE 隧道?
  5. DS-TE 在运营商骨干网中的典型应用场景是什么?

下篇预告:第163篇《MPLS L3VPN 基础:VRF、RD、RT》——进入 MPLS VPN 的世界,理解 L3VPN 如何通过 VRF 实现多租户隔离,RD 和 RT 又是如何工作的。