4. 列车以太网VLAN划分错误导致丢包的排查

故障场景与排查思路

某六编组列车,TCMS(列车控制与管理系统)业务报文在1车与6车之间出现周期性丢包,丢包率约3%~8%,而同一车厢内设备互ping正常。初步判断为跨车厢链路问题,但物理层测试(线缆、M12连接器)均通过。此时应优先怀疑VLAN配置不一致:跨车厢流量经过多台车载交换机级联的Trunk链路,若某台交换机端口PVID或Trunk允许列表与业务VLAN不匹配,报文会在该节点被丢弃或打上错误标签。

排查的核心是三个对象:业务VLAN归属(TCMS设备应属于哪个VLAN)、接入端口PVID(Access端口收到无标签帧时打上的VLAN)、Trunk允许列表(级联链路上放行哪些VLAN)。三者任一错配,都会造成"同车厢通、跨车厢不通"的典型现象。

1车 2车 3车 4车 5车 6车 SW1 VLAN10 SW2 VLAN10 SW3 VLAN10 SW4 PVID=1 ✗ SW5 VLAN10 SW6 VLAN10 Trunk Trunk Trunk Trunk Trunk TCMS-A TCMS-B 丢包点 VLAN10 标签帧正常转发 SW4 丢弃:PVID=1 与 VLAN10 不匹配 排查三要素(逐台交换机核对) ① 业务VLAN归属 TCMS 业务 VLAN = 10 确认各车设备接入端口 应划入 VLAN10 命令:display vlan 10 ② 接入端口 PVID Access 口 PVID 应为 10 SW4 实测 PVID = 1 ✗ 无标签帧被打上 VLAN1 命令:display port vlan ③ Trunk 允许列表 级联口需放行 VLAN10 检查 allow-pass vlan 缺失则标签帧被丢弃 命令:display port trunk

关键配置核对与修复

以华为/H3C风格的车载交换机命令为例(不同厂商命令略有差异,逻辑一致)。先在SW4上核对VLAN表与端口状态,确认错配点:

# 在 SW4 上查看 VLAN 表,确认 VLAN10 是否存在及成员端口
display vlan 10

# 查看各端口 PVID 与链路类型
display port vlan

# 查看级联 Trunk 口的允许 VLAN 列表
display port trunk

典型错配输出特征:SW4 的 TCMS 接入端口显示 PVID: 1、Link Type: Access,而其他车厢同位置端口为 PVID: 10。此时该端口收到的无标签帧被打上 VLAN1 标签,进入 Trunk 后因允许列表不含 VLAN1 而被丢弃,表现为跨车厢丢包、同车厢正常。

修复动作(在SW4上执行):

system-view
interface GigabitEthernet 0/0/5          # TCMS 设备接入端口
 port link-type access
 port default vlan 10                    # 修正 PVID 为业务 VLAN
 quit
interface GigabitEthernet 0/0/24         # 级联 Trunk 口
 port link-type trunk
 port trunk allow-pass vlan 10           # 确保放行 VLAN10
 quit
修复后不要只看配置回显,必须做业务验证:从1车 TCMS-A 持续 ping 6车 TCMS-B(如 ping -c 200 -i 0.2 192.168.10.20),观察丢包率是否归零;同时在SW4上 display interface GigabitEthernet 0/0/5 查看入方向是否有丢弃计数增长。

验证与判读

检查项修复前(SW4)修复后(SW4)判读依据
接入端口 PVID110与业务VLAN一致
接入端口链路类型AccessAccess终端不打标签
Trunk允许列表含10含10级联放行VLAN10
跨车厢 ping 丢包率3%~8%0%200包无丢失
端口入方向丢弃计数持续增长稳定不增无VLAN错配丢弃

若修复PVID后仍有丢包,需继续核对对端交换机的Trunk允许列表是否包含VLAN10,以及是否存在VLAN裁剪(如 port trunk permit vlan 1 20 漏掉10)。VLAN错配的排查顺序建议为:先确认业务VLAN号 → 逐台核对接入端口PVID → 逐段核对Trunk允许列表,避免在物理层反复无效测试。