VLAN 故障长什么样
VLAN 问题的典型表现是「同 VLAN 内通、跨 VLAN 不通」或「某几个 VLAN 突然消失」:接入端口的 PVID 决定不带标签的帧归入哪个 VLAN,Trunk 的允许列表决定哪些 VLAN 能过,Native VLAN 决定 Trunk 上无标签帧的归属。三者任一不一致,就会出现部分流量通、部分流量不通的隐蔽故障,且常表现为时通时断。
基本信息
| 适用设备 | 华为 VRP / 思科 IOS / H3C 交换机(命令不同、语义一致) |
|---|---|
| 排查顺序 | 接入端口 PVID → Trunk 允许列表 → Native VLAN 一致性 → 三层网关 SVI |
| 落锤手段 | 交换机 show 命令 + Linux tcpdump -e 看 802.1Q 标签 |
| 关键标准 | IEEE 802.1Q(VLAN 标签) |
| 权限要求 | 交换机需 enable / super 级别;抓包需 root |
典型使用场景
- 新接入端口不通:先确认端口 VLAN 与 PVID 是否与规划一致
- 某 VLAN 全网失联:检查 Trunk 允许列表是否被移除该 VLAN
- 跨厂商设备对接后间歇性丢包:优先怀疑两端 Native VLAN 不一致
- 虚拟化宿主机与交换机对接:确认 Trunk 模式与允许 VLAN 范围
- 抓包看到带标签帧却没被处理:核对对端是否被配成了 Access 端口
交换机侧核对命令
交换机侧核对命令
! 思科 IOS
SW# show vlan brief ! 哪些端口属于哪个 VLAN
SW# show interfaces trunk ! Trunk 允许列表与 Native VLAN
SW# show interfaces gi1/0/1 switchport ! 接入端口的模式与 Access VLAN
# 华为 VRP(语义相同,命令不同)
<SW> display vlan
<SW> display port vlan ! 端口的 PVID 与允许 VLAN
<SW> display interface GigabitEthernet0/0/1 brief抓包验证标签
抓包验证标签
sudo tcpdump -i eth0 -e -nn vlan -c 10 # 输出含 vlan 100, p 0 说明帧带 802.1Q 标签
sudo tcpdump -i eth0 -e -nn -c 5 # 不加 vlan 过滤,观察是否出现无标签帧
ip -d link show eth0 # 查看网卡是否启用了 VLAN 子接口Native VLAN 不一致会让 Trunk 上无标签帧被判到错误 VLAN,表现为偶发不通或部分流量单向丢失,是最难复现的一类 VLAN 故障;对接前务必两端核对一致。
抓包侧要在 Trunk 口或网卡做混杂模式并带 -e 才能看到标签;在 Access 口抓包看不到标签属于正常,因为帧在出口已被剥离。
上行链路被误改为 Access 时,会让整批终端同时从该 VLAN 掉线:这类现象往往伴随一次变更,先回溯变更记录再动手改配置。