QoS 与 DSCP 标记排查是什么
QoS 是否生效要同时看两件事:报文里的 DSCP 标记与设备上的分类与队列策略。DSCP 位于 IP 头的 ToS 字段高 6 位(RFC 2474),抓包时 tcpdump 的 tos 字段即可读出。最常见的『策略不生效』根因是标记在中间设备被重置,或者隧道场景只标了内层而分类策略只看外层。
基本信息
| 适用平台 | Linux(tcpdump 观察)、交换机与路由器(分类与队列配置) |
|---|---|
| 标记位置 | IP 头 ToS 字段高 6 位,抓包显示为 tos 值 |
| 验证方法 | 在两端与中间点分别取样,对比标记是否被改写 |
| 常见根因 | 中间设备重置标记、隧道外层未标记、策略方向配错 |
典型使用场景
- 语音与视频质量差:确认标记是否端到端保留
- 专线交付验收:核对各段设备的分类与队列是否按设计生效
- 跨隧道场景:确认内层与外层标记是否符合设备分类依据
- 策略变更后验证:改动前后各取样一次对照
- 故障取证:为『优先级不生效』提供可比较的证据
标记验证
标记验证
# 抓包查看 ToS 字段(即 DSCP 与 ECN)
tcpdump -nn -v -i eth0 -c 5 'host 10.0.0.5' | grep -i tos
# 输出示例:tos 0xb8 (AF41),可与期望值对照
# 本机侧设置标记的示例入口
# ip route add 10.0.0.0/8 dev eth0 tos 0xb8
# 在路径两端与中间点分别取样,对比标记是否被改写常见问题对照
| 现象 | 可能原因 | 验证方式 |
|---|---|---|
| 入口标记正确、出口丢失 | 中间设备重置标记 | 在中间点抓包对比 tos 值 |
| 隧道内层有标记、外层无 | 分类只看外层 | 同时观察两层头部 |
| 部分流量未按队列转发 | 策略作用于错误方向 | 核对设备侧接口与方向配置 |
| 全部流量同优先级 | 标记未生效或被信任策略忽略 | 确认设备是否信任上游标记 |
验证要点是『三点取样』:发送端、中间设备前后各一处、接收端。单点看到的标记只能说明该点当时的状况,无法证明端到端保留。
跨隧道场景(VXLAN、GRE、IPsec)要同时确认内层与外层标记:多数分类策略只读取外层,内层标得再准也不会被使用。