HCIP 数通:QoS 流量质量保障、分类标记、队列调度与流量整形实战
系统讲解 QoS(Quality of Service)的完整实现:流量分类(Class-Based Classification)、DSCP/802.1p 标记、PQ/WFQ/CBWFQ 队列调度原理与对比、流量整形(Traffic Shaping)与限速(Traffic Policing)的差异,以及语音/视频/数据业务的典型 QoS 策略配置。
QoS(Quality of Service,服务质量)解决网络带宽有限时的流量优先级问题:语音通话需要低延迟(< 150ms),视频会议需要稳定带宽,而文件传输可以等待。通过 QoS 把流量分类、标记、调度,让关键业务即使在网络拥塞时也能正常运行。
QoS 模型概述
无 QoS(Best Effort):
所有流量同等对待,先来先服务
网络拥塞时随机丢包 → 语音通话断续,视频卡顿
QoS 实现模型:
DiffServ(Differentiated Services,差分服务)← 企业网主流
在包头打标记(DSCP),沿途设备按标记差异化处理
IntServ(Integrated Services,综合服务)
为每个流预留带宽(RSVP 协议),复杂度高,大规模不适用
DiffServ QoS 流程:
1. 分类(Classification):识别业务类型
2. 标记(Marking):在包头写入优先级(DSCP)
3. 调度(Scheduling):按优先级决定发送顺序
4. 整形/限速(Shaping/Policing):控制流量速率
一、流量分类与标记
DSCP(差分服务代码点)
IP 包头的 DSCP 字段(6 bit,0-63):
常用 DSCP 值:
EF (Expedited Forwarding, 46):语音/实时视频(最高优先级)
AF4 (Assured Forwarding Class 4, 34):视频流
AF3 (30):关键业务数据
AF2 (22):普通业务数据
AF1 (10):低优先级数据
CS1 (8) :Scavenger(最低优先级,P2P/垃圾流量)
BE (Default, 0):默认最低优先级
802.1p(二层以太网帧头,3 bit,0-7):
7 = Network Control(STP/OSPF 等协议报文)
6 = Internetwork Control
5 = CRITIC/ECP(语音信令)
4 = Video (视频会议)
3 = Call Signaling(语音信令)
2 = Excellent Effort(关键业务)
1 = Best Effort(默认)
0 = Background(最低)
流量分类(MQC - Modular QoS CLI)
# 华为 VRP 使用 MQC(模块化 QoS CLI)三步走:
# 1. 定义 traffic classifier(分类规则)
# 2. 定义 traffic behavior(行为动作)
# 3. 创建 traffic policy(策略 = 分类 + 行为)
# 4. 在接口应用 traffic-policy
# === 步骤 1:定义分类规则 ===
# 分类语音流量(基于 DSCP 值)
traffic classifier VOICE
if-match dscp ef # 匹配 DSCP=EF(46)的流量(已标记)
# 分类视频会议(基于 DSCP)
traffic classifier VIDEO
if-match dscp af41 # AF41 = 34
# 分类语音信令(基于目标端口)
traffic classifier SIGNALING
if-match acl 3001 # 匹配 ACL 3001 定义的流
# 分类管理流量(Telnet/SSH/SNMP)
traffic classifier MGMT
if-match acl 3002
# 定义对应 ACL
acl number 3001
rule 5 permit tcp destination-port eq 5060 # SIP 语音信令
rule 10 permit udp destination-port eq 5060
acl number 3002
rule 5 permit tcp destination-port eq 22 # SSH
rule 10 permit tcp destination-port eq 23 # Telnet
rule 15 permit udp destination-port eq 161 # SNMP
# 也可以基于 IP 地址分类(不推荐,IP 地址可能变化)
traffic classifier SERVER-TRAFFIC
if-match ip-precedence 6 # IP Precedence = 6(旧的分类方法)
流量标记
# 在网络入口处(接入层)标记流量
# 语音流量标记为 DSCP EF
traffic behavior MARK-VOICE
remark dscp ef # 改写 DSCP 为 EF(46)
# 视频流量标记为 DSCP AF41
traffic behavior MARK-VIDEO
remark dscp af41
# 普通业务标记为 DSCP AF21
traffic behavior MARK-BUSINESS
remark dscp af21
# 丢弃恶意流量(P2P 等)
traffic behavior DROP-P2P
deny # 直接丢弃
二、队列调度
常见队列类型对比
FIFO(先进先出):最简单,无差异,网络拥塞时都受影响
PQ(Priority Queuing,优先队列):
高优先级队列清空后才处理低优先级
优点:关键业务绝对优先
缺点:低优先级可能饿死(长时间得不到处理)
适合:带宽充足时的实时业务保障
WFQ(Weighted Fair Queuing,加权公平队列):
按权重分配带宽,每个流都能得到服务
优点:公平,防止饿死
缺点:无法保证实时业务的严格优先
CBWFQ(Class-Based WFQ,基于类的加权公平队列):
结合分类的 WFQ,不同类的流量设置不同带宽保证
适合:企业 QoS 的基础队列
LLQ(Low Latency Queuing,低延迟队列):
= PQ + CBWFQ
语音类流量进 PQ(严格优先),其他流量进 CBWFQ
生产推荐:绝大多数企业 QoS 使用 LLQ 模型
LLQ 队列配置(生产推荐)
# 定义带宽策略
traffic behavior VOICE-BEHAVIOR
queue pq bandwidth 2000 # 语音进 PQ(严格优先),预留 2Mbps
traffic behavior VIDEO-BEHAVIOR
queue af bandwidth pct 30 # 视频进 AF 队列,保证 30% 带宽
traffic behavior BUSINESS-BEHAVIOR
queue af bandwidth pct 40 # 关键业务保证 40% 带宽
traffic behavior BEST-EFFORT-BEHAVIOR
queue af bandwidth pct 20 # 普通流量 20% 带宽
traffic behavior SCAVENGER-BEHAVIOR
queue af bandwidth pct 5 # 低优先级最多 5% 带宽
# P2P 等流量,拥塞时最先丢弃
# 创建 Traffic Policy
traffic policy ENTERPRISE-QOS
classifier VOICE behavior VOICE-BEHAVIOR
classifier VIDEO behavior VIDEO-BEHAVIOR
classifier MGMT behavior BUSINESS-BEHAVIOR
classifier SIGNALING behavior BUSINESS-BEHAVIOR
# 在接口(WAN 出口)应用策略
interface GigabitEthernet0/0/1
traffic-policy ENTERPRISE-QOS outbound # 出方向(对 WAN 出口最有意义)
三、流量整形与限速
流量整形(Traffic Shaping):
超出速率的流量放入缓冲队列,稍后发送
特点:平滑突发,不丢包(除非队列满)
效果:流量曲线变平滑
适合:向 ISP 发送流量,匹配运营商 CIR(承诺信息速率)
流量限速(Traffic Policing):
超出速率的流量直接丢弃或重新标记
特点:立即丢弃,可能导致重传(影响 TCP 性能)
适合:在接入口对用户流量限速(防止单用户占满带宽)
流量整形配置
# 场景:WAN 出口带宽 100Mbps,运营商限制 CIR=80Mbps
# 超过 80Mbps 的流量会在运营商侧被丢弃,影响用户体验
# 解法:在出口做流量整形,超出的缓冲发送(不让流量冲破 80Mbps)
# 对出向流量进行整形
traffic behavior WAN-SHAPING
car cir 80000 pir 100000 cbs 3000000 pbs 5000000 \
green pass yellow pass red discard
# CIR(承诺信息速率):80Mbps
# PIR(峰值信息速率):100Mbps
# CBS(承诺突发大小):3MB
# PBS(峰值突发大小):5MB
# green(低于 CIR)→ pass
# yellow(CIR 到 PIR 之间)→ pass(允许短时突发)
# red(超过 PIR)→ discard
interface GigabitEthernet0/0/1
traffic-policy WAN-SHAPING outbound
流量限速配置(用户接入)
# 场景:在核心交换机上,限制每个用户 VLAN 的带宽
# VLAN 100 用户最多 50Mbps 上行
traffic classifier VLAN100-TRAFFIC
if-match vlan-id 100
traffic behavior LIMIT-50M
car cir 50000 cbs 1000000 \
green pass \
yellow discard \ # 超出 CIR 立即丢弃(限速,不缓冲)
red discard
traffic policy USER-LIMIT
classifier VLAN100-TRAFFIC behavior LIMIT-50M
interface GigabitEthernet0/0/24 # 接 VLAN 100 用户的接口
traffic-policy USER-LIMIT inbound
四、WRED(加权随机早期检测)
# 传统的 Tail Drop 问题:
# 队列满时,新来的包都丢弃 → TCP 全局同步(所有 TCP 流同时重传,拥塞)
# WRED 解决方案:
# 当队列长度超过阈值时,随机丢弃部分包(而不是等队列满)
# 高优先级流量的丢弃阈值更高(更晚开始丢弃)
traffic behavior CBWFQ-WITH-WRED
queue af bandwidth pct 30
wred dscp-based
# DSCP AF41 的丢弃阈值比 AF31 高
# 这样视频流比普通业务更晚被丢弃
interface GigabitEthernet0/0/1
traffic-policy MY-POLICY outbound
五、完整 QoS 策略示例(企业出口)
# 完整配置:4 类业务 + LLQ + 流量整形
# === ACL 定义 ===
acl number 3010
rule 5 permit udp any any destination-port range 16384 32767 # RTP 语音媒体
rule 10 permit tcp any any destination-port eq 5060 # SIP
rule 15 permit udp any any destination-port eq 5060
acl number 3020
rule 5 permit tcp any any destination-port eq 443 # HTTPS 视频会议
rule 10 permit udp any any destination-port eq 8801 # Zoom
acl number 3030
rule 5 permit tcp any any destination-port range 1024 5999 # 业务应用
# === 分类器 ===
traffic classifier CLASS-VOICE
if-match acl 3010
traffic classifier CLASS-VIDEO
if-match dscp af41 af42 af43
traffic classifier CLASS-DATA
if-match acl 3030
traffic classifier CLASS-MGMT
if-match dscp cs6 cs7 # 网络管理报文
# === 行为 ===
traffic behavior BEH-VOICE
remark dscp ef
queue pq bandwidth 5000 # 严格优先,5Mbps
traffic behavior BEH-VIDEO
remark dscp af41
queue af bandwidth pct 25 # 保证 25% 带宽
traffic behavior BEH-DATA
remark dscp af21
queue af bandwidth pct 50 # 保证 50% 带宽
traffic behavior BEH-MGMT
remark dscp cs6
queue af bandwidth pct 10 # 管理流量 10%
traffic behavior BEH-DEFAULT
queue af bandwidth pct 10 # 剩余 10% 给其他
# === Policy ===
traffic policy WAN-QOS
classifier CLASS-MGMT behavior BEH-MGMT
classifier CLASS-VOICE behavior BEH-VOICE
classifier CLASS-VIDEO behavior BEH-VIDEO
classifier CLASS-DATA behavior BEH-DATA
# === 应用 ===
interface GigabitEthernet0/0/1
traffic-policy WAN-QOS outbound
# === 验证 ===
display traffic policy statistics interface GigabitEthernet0/0/1 outbound
# 查看各队列的流量统计:包数、字节数、丢包数
小结
QoS 的实施思路:在入口分类和标记(用最精确的特征识别流量,打上 DSCP 标记)→ 在拥塞点调度(WAN 出口使用 LLQ,语音进 PQ,其他按优先级分配带宽)→ 在必要时整形/限速(出口整形匹配运营商带宽,入口限速防止单用户过量占用)。DSCP EF 给语音(最高优先),AF 系列给视频和数据(按级别分档),BE/CS1 给 P2P(最低,拥塞时先丢)。CBWFQ + LLQ 是企业 QoS 的黄金组合,既保证语音的严格优先,又对数据流量公平分配。
