为什么要抓包看 Tag
排 Trunk 类问题时把链路流量镜像到抓包口,直接观察帧是否带 Tag、TPID 与 VID,比反复改配置试错更快定位。镜像看到的是真实转发的帧,能直接回答『这个口出去到底是 tagged 还是 untagged』这个在配置层面看不出来的问题。
基本信息
| 适用平台 | 华为 VRP / Cisco IOS / H3C Comware |
|---|---|
| Cisco 命令 | monitor session 1 source / destination |
| 华为命令 | observe-port N 配合 port-mirroring to observe-port N |
| 抓包前提 | 网卡允许 VLAN Tag 透传 |
| 带宽前提 | 镜像目的口带宽不低于源口流量总和 |
典型使用场景
- Trunk 两端对帧是否带 Tag 有争议时,用抓包给出确定结论
- 新增 VLAN 后确认帧在外层是否正确打标
- 排查 QinQ 场景内外层 Tag 是否被改写
- 核对语音 VLAN 的 PCP 是否真的带在帧上
- 变更前后抓包对比,验证改动范围与预期一致
镜像配置
镜像配置
# Cisco 本地镜像
monitor session 1 source interface GigabitEthernet1/0/24 both
monitor session 1 destination interface GigabitEthernet1/0/48
show monitor session 1 # 核对镜像配置
# 华为镜像
observe-port 1 interface GigabitEthernet0/0/48
interface GigabitEthernet0/0/24
port-mirroring to observe-port 1 both
display observe-port # 核对观察口抓包要看的字段
| 字段 | 含义 | 异常表现 |
|---|---|---|
| TPID | 0x8100 为常见外层标签 | 出现非预期取值说明外层被改写 |
| VID | VLAN 编号 | 与规划不符说明打标错位 |
| PCP | 二层优先级 | 语音流量应为 5,为 0 说明标记丢失 |
| Tag 层数 | 单层或双层 | QinQ 场景应看到两层 |
| 源目 MAC | 端点地址 | 判断流量方向与镜像是否抓全 |
抓包前的准备
- 确认抓包网卡驱动未剥离 VLAN Tag,必要时调整驱动参数
- 用已知带 Tag 的流量先验证一次工具链
- 确认镜像方向(收、发或双向),明确看的是哪一段链路
- 确认镜像目的口带宽与源口流量匹配
- 把抓包文件与时间点记入变更或故障记录,便于复盘比对
抓包网卡要允许 VLAN Tag 透传,部分网卡驱动默认会剥离 Tag,软件层看不到 Tag 就会得出完全错误的结论。抓包前先用一条确定带 Tag 的流量验证工具链,确认自己看到的就是链路上的真实帧。