第131篇:重标记优先级:基于报文类型的 QoS 策略

关键词:QoS 重标记、DSCP、802.1p、流分类、流行为、优先级映射、Remark、华为 QoS、DiffServ


一、引言

在第130篇中,我们学习了 CAR(Committed Access Rate)限速技术,它能够对超限流量执行丢弃、通过或重标记动作。其中"重标记"(Remark)是一个极为关键的 QoS 手段。

在实际园区网中,终端设备发出的报文往往没有正确设置优先级标记:PC 默认 DSCP=0,IP 电话可能标记为 EF,而某些应用则完全不携带任何优先级信息。如果交换机直接信任这些标记,关键业务可能被错误地送入低优先级队列,背景流量也可能被恶意标记为高优先级占用带宽。

重标记技术解决的核心问题是:在网络入口处,根据报文的真实业务属性(源/目的 IP、协议类型、端口号等),重新设置正确的优先级标记,为下游的队列调度和限速提供准确的分类依据。

二、核心概念

2.1 优先级标记体系

网络中的优先级标记分布在二层和三层协议头部:

优先级标记体系 - 图示

标记类型 协议层 字段位置 位数 取值范围 典型用途
802.1p 二层 VLAN Tag Priority 3 bit 0-7 局域网交换机间优先级传递
DSCP 三层 IP ToS 高 6 bit 6 bit 0-63 跨网络域优先级标识
PRECEDENCE 三层 IP ToS 高 3 bit 3 bit 0-7 旧版 IP 优先级(已淘汰)
EXP MPLS MPLS Label 低 3 bit 3 bit 0-7 MPLS 隧道内优先级传递

2.2 DiffServ 标准 PHB 与 DSCP 值

DSCP 值 十进制 二进制 PHB 名称 业务类型 推荐 802.1p 华为关键字
46 46 101110 EF(加速转发) 语音/实时视频 5 ef
34 34 100010 AF41 视频会议 4 af41
32 32 100000 AF41(最低丢弃) 视频流媒体 4 af41
26 26 011010 AF31 关键业务数据 3 af31
18 18 010010 AF21 普通业务数据 2 af21
10 10 001010 AF11 尽力而为数据 1 af11
0 0 000000 BE(尽力而为) 背景流量 0 default

2.3 为什么需要重标记

场景 问题 解决方案
终端无标记 PC 发出的所有报文 DSCP=0,无法区分业务 在入口交换机根据端口/ACL 重新标记
终端标记错误 应用将普通下载流量标记为 EF 在入口清除并重新标记
跨域映射不一致 运营商网络使用 802.1p,企业内网使用 DSCP 在边界设备做 802.1p↔DSCP 映射
信任边界建立 不可信用户侧报文携带任意标记 在边界统一清除后重新标记

三、技术细节

3.1 重标记的执行位置

重标记的执行位置 - 图示

重标记通常在入方向(Inbound)执行,原因: - 在报文进入交换网络前完成标记,确保后续所有转发决策(队列选择、限速等)使用正确的优先级 - 避免不可信的外部标记污染内部网络

3.2 流分类匹配条件

华为设备支持多种流分类匹配方式:

匹配条件 命令 说明 示例
ACL if-match acl 3000 最灵活,可匹配 IP/端口/协议 匹配 SIP 端口 5060
DSCP if-match car-dscp ef 匹配现有 DSCP 识别已标记的语音流量
802.1p if-match 8021p 5 匹配现有 802.1p 识别高优先级标记
端口 if-match port GigabitEthernet 0/0/1 按端口分类 语音 VLAN 端口
VLAN if-match vlan 100 按 VLAN 分类 VoIP VLAN
协议 if-match protocol ipv4 匹配以太网类型 区分 IPv4/IPv6

3.3 重标记与队列映射的完整流程

重标记与队列映射的完整流程 - 图示

关键:重标记只是设置优先级字段,要让标记真正发挥作用,必须完成完整的 QoS 链路:重标记 → DSCP→队列映射 → 队列调度。

四、实战配置/案例分析

4.1 综合重标记配置:区分语音、视频、数据

# ========== 场景:园区网入口交换机,基于业务特征重标记优先级 ==========
# 前提:第130篇 CAR 限速策略已部署

# ---- Step 1: 定义 ACL 匹配各类业务 ----

# VoIP 流量(SIP 信令 + RTP 媒体)
[HUAWEI] acl number 3000
[HUAWEI-acl-adv-3000] rule 5 permit udp destination-port eq 5060    # SIP
[HUAWEI-acl-adv-3000] rule 10 permit udp source-port range 10000 20000  # RTP
[HUAWEI-acl-adv-3000] quit

# 视频会议流量(H.323 + H.245 + H.239 + H.261/H.263)
[HUAWEI] acl number 3001
[HUAWEI-acl-adv-3001] rule 5 permit tcp destination-port eq 1720    # H.323
[HUAWEI-acl-adv-3001] rule 10 permit tcp destination-port eq 1721   # H.323 备选
[HUAWEI-acl-adv-3001] rule 15 permit udp destination-port range 16384 32767  # 视频流
[HUAWEI-acl-adv-3001] quit

# 邮件流量(SMTP + POP3 + IMAP)
[HUAWEI] acl number 3002
[HUAWEI-acl-adv-3002] rule 5 permit tcp destination-port eq 25
[HUAWEI-acl-adv-3002] rule 10 permit tcp destination-port eq 110
[HUAWEI-acl-adv-3002] rule 15 permit tcp destination-port eq 143
[HUAWEI-acl-adv-3002] quit

# ---- Step 2: 定义流分类 ----
[HUAWEI] traffic classifier VOIP-CLASS operator or
[HUAWEI-traf-crs-VOIP-CLASS] if-match acl 3000
[HUAWEI-traf-crs-VOIP-CLASS] quit

[HUAWEI] traffic classifier VIDEO-CLASS operator or
[HUAWEI-traf-crs-VIDEO-CLASS] if-match acl 3001
[HUAWEI-traf-crs-VIDEO-CLASS] quit

[HUAWEI] traffic classifier MAIL-CLASS operator or
[HUAWEI-traf-crs-MAIL-CLASS] if-match acl 3002
[HUAWEI-traf-crs-MAIL-CLASS] quit

# ---- Step 3: 定义流行为(重标记) ----
[HUAWEI] traffic behavior VOIP-BEH
[HUAWEI-traf-beh-VOIP-BEH] remark dscp ef
[HUAWEI-traf-beh-VOIP-BEH] remark 8021p 5
[HUAWEI-traf-beh-VOIP-BEH] quit

[HUAWEI] traffic behavior VIDEO-BEH
[HUAWEI-traf-beh-VIDEO-BEH] remark dscp af41
[HUAWEI-traf-beh-VIDEO-BEH] remark 8021p 4
[HUAWEI-traf-beh-VIDEO-BEH] quit

[HUAWEI] traffic behavior MAIL-BEH
[HUAWEI-traf-beh-MAIL-BEH] remark dscp af21
[HUAWEI-traf-beh-MAIL-BEH] remark 8021p 2
[HUAWEI-traf-beh-MAIL-BEH] quit

# ---- Step 4: 定义流策略并绑定 ----
[HUAWEI] traffic policy REMARK-ALL
[HUAWEI-trafficpolicy-REMARK-ALL] classifier VOIP-CLASS behavior VOIP-BEH
[HUAWEI-trafficpolicy-REMARK-ALL] classifier VIDEO-CLASS behavior VIDEO-BEH
[HUAWEI-trafficpolicy-REMARK-ALL] classifier MAIL-CLASS behavior MAIL-BEH
[HUAWEI-trafficpolicy-REMARK-ALL] quit

# ---- Step 5: 在用户侧接口入方向应用 ----
[HUAWEI] interface GigabitEthernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] port link-type access
[HUAWEI-GigabitEthernet0/0/1] port default vlan 10
[HUAWEI-GigabitEthernet0/0/1] traffic-policy REMARK-ALL inbound

# ---- Step 6: 配置 DSCP→队列映射 ----
[HUAWEI] qos map dscp-queue
[HUAWEI-qosmap] dscp ef queue 0           # 语音 → 队列 0(最高优先级,PQ)
[HUAWEI-qosmap] dscp af41 queue 1         # 视频 → 队列 1(高优先级)
[HUAWEI-qosmap] dscp af31 queue 2         # 关键数据 → 队列 2
[HUAWEI-qosmap] dscp af21 queue 3         # 普通数据 → 队列 3
[HUAWEI-qosmap] dscp af11 queue 4         # 尽力而为 → 队列 4
[HUAWEI-qosmap] dscp default queue 5      # 背景流量 → 队列 5
[HUAWEI-qosmap] quit

# ---- 验证 ----
[HUAWEI] display traffic policy statistics interface GigabitEthernet 0/0/1 inbound
[HUAWEI] display qos queue statistics interface GigabitEthernet 0/0/1

4.2 基于端口信任模型的重标记

# ========== 场景:IP 电话端口信任,PC 端口不信任 ==========
# 华为 IP 电话通常支持 PoE,电话下挂 PC,电话在 VLAN 100(语音),PC 在 VLAN 10(数据)

# 语音端口:信任电话发出的 802.1p 标记
[HUAWEI] interface GigabitEthernet 0/0/10
[HUAWEI-GigabitEthernet0/0/10] port link-type trunk
[HUAWEI-GigabitEthernet0/0/10] port trunk allow-pass vlan 10 100
[HUAWEI-GigabitEthernet0/0/10] qos trust 8021p    # 信任入方向 802.1p

# 数据端口:不信任,统一清除后重标记
[HUAWEI] interface GigabitEthernet 0/0/11
[HUAWEI-GigabitEthernet0/0/11] port link-type access
[HUAWEI-GigabitEthernet0/0/11] port default vlan 10
[HUAWEI-GigabitEthernet0/0/11] qos trust dscp default    # 不信任,统一设为默认

[HUAWEI] traffic behavior CLEAR-REMARK
[HUAWEI-traf-beh-CLEAR-REMARK] remark dscp default
[HUAWEI-traf-beh-CLEAR-REMARK] remark 8021p 0
[HUAWEI-traf-beh-CLEAR-REMARK] quit

[HUAWEI] traffic policy CLEAR-POLICY
[HUAWEI-trafficpolicy-CLEAR-POLICY] classifier default behavior CLEAR-REMARK
[HUAWEI-trafficpolicy-CLEAR-POLICY] quit

[HUAWEI] interface GigabitEthernet 0/0/11
[HUAWEI-GigabitEthernet0/0/11] traffic-policy CLEAR-POLICY inbound

4.3 故障案例一:重标记策略优先级冲突

场景:某园区网同时部署了两条重标记策略,一条将 VoIP 标记为 EF,另一条将所有 UDP 流量标记为 AF21。用户反映 VoIP 通话质量严重下降。

排查:

# 检查策略匹配统计
[SW] display traffic policy statistics interface GigabitEthernet 0/0/1 inbound

# 发现:
# - UDP 通用分类器匹配了大量报文(包含 VoIP)
# - VoIP 分类器匹配计数正常

# 查看策略应用顺序
[SW] display traffic policy applied-interface interface GigabitEthernet 0/0/1 inbound
# 策略1(UDP通用)在策略2(VoIP)之前
# 策略1中的 UDP 行为已将所有 UDP 重标记为 AF21
# 策略2的 VoIP 重标记虽然匹配成功,但优先级低

根因:多个流策略在接口上叠加时,先匹配的流行为优先生效。通用 UDP 策略覆盖了 VoIP 策略。

处理: 1. 调整流策略中分类器的顺序,将 VoIP 分类器置于通用 UDP 分类器之前 2. 或使用更精确的 ACL,在通用 UDP 分类器中排除 VoIP 端口:

[HUAWEI] acl number 3010
[HUAWEI-acl-adv-3010] rule 5 deny udp destination-port eq 5060       # 排除 SIP
[HUAWEI-acl-adv-3010] rule 10 deny udp source-port range 10000 20000 # 排除 RTP
[HUAWEI-acl-adv-3010] rule 15 permit udp                            # 其他 UDP
[HUAWEI-acl-adv-3010] quit

4.4 故障案例二:802.1p 标记在 Trunk 链路丢失

场景:在接入交换机入方向对 VoIP 报文做了 802.1p=5 重标记,但在汇聚交换机上抓包发现 802.1p 值变为 0。

排查:

# 在接入交换机出方向抓包确认标记已生效
[SW-ACCESS] display packet-buffer interface GigabitEthernet 0/0/1

# 在汇聚交换机入方向检查
[SW-AGG] display this interface GigabitEthernet 0/0/1
# 发现:
# port trunk pvid vlan 1
# 报文从 PVID VLAN 1 进入,但策略在 VLAN 10 的 VLANIF 上配置

根因:Trunk 链路的 PVID 配置错误。报文入方向使用 PVID 1 剥离了 VLAN 标签,802.1p 标记随之丢失。

处理: - 修正 PVID 配置,或确保 Trunk 链路在传输时保留 VLAN 标签(Untagged 仅用于终端侧端口) - 确认 802.1p 只在带 VLAN 标签的帧中有意义

五、总结

项目 说明
重标记本质 在报文进入网络前,按真实业务属性重新设置优先级标记
标记类型 DSCP(三层,跨域传递)和 802.1p(二层,局域网内传递)
标准 DSCP EF=46(语音)、AF41=34(视频)、AF31=26(关键数据)、BE=0(背景)
执行方向 通常在入方向(Inbound)执行
信任模型 可信端口(如 IP 电话)信任原始标记;不可信端口统一清除后重标记
完整链路 重标记 → DSCP→队列映射 → 队列调度(缺一不可)
华为命令 remark dscp / remark 8021p(在 traffic behavior 下)
与 CAR 关系 CAR 可对超限报文执行重标记(降级);流策略重标记用于正确分类
常见陷阱 多策略优先级冲突、PVID 配置导致标签丢失、映射未配置

思考

  1. 重标记在入方向执行,但如果报文来自一台已正确标记优先级的服务器,交换机仍然覆盖重标记。如何设计策略使得"可信源"的原始标记被保留,而"不可信源"被重新标记?

  2. 第130篇 CAR 限速对超限报文执行重标记(降级),而本文流策略重标记用于正确分类。这两者在同一个接口上同时使用时,执行顺序是怎样的?会不会互相影响?

  3. DSCP 到队列的映射决定了报文进入哪个输出队列。如果某台交换机的队列硬件只支持 4 个队列(而非 8 个),而 DSCP 值有 8 个等级(EF/AF41/AF31/AF21/AF11/CS1/CS2/BE),如何映射才能保证关键业务不受影响?

下篇预告:第132篇:园区网 AAA 认证:802.1X 与 MAC 认证