为什么 trunk 口发送缺省 VLAN 的包要去掉 tag?

学交换机配置到 trunk 这一步,很多人卡在同一个问题上:trunk 的意义不就是让带 VLAN tag 的帧通过吗,为什么偏偏缺省 VLAN 的包要剥掉 tag 再发?结论:缺省 VLAN 是 trunk 上唯一一条「裸帧通道」——出方向剥掉 tag 发出去,入方向收到裸帧再打回自己的 VLAN 号;其余 VLAN 一律带着 tag 通行。 华为设备里,端口的「缺省 VLAN」就是 PVID。

为什么要有这条特殊通道

  1. 兼容不认识标签的老设备。802.1Q 标准出现之前,所有以太网帧都是裸帧;trunk 对接老交换机、老服务器网卡时,带 tag 的帧会被它们当错误帧丢弃,只能走这条裸帧通道迁就。
  2. 留一条兜底链路。trunk 两端配置有出入时,裸帧通道常常还能维持基本连通,给排障留一线生机。
  3. 剥 tag 只发生在出方向,且只对 PVID 对应的那一个 VLAN——其余放行的 VLAN 照常带 tag,不要误解成 trunk 会剥掉所有标签。

配置与排查三步

  1. 查两端端口的 PVID。华为交换机接口视图下执行 display port vlan,看 untagged 列——trunk 口的 PVID 就是以 untagged 方式通过的那个 VLAN。
  2. 对齐两端。修改用 port trunk pvid vlan 10 这样的命令,trunk 两端必须一致。
  3. 核对放行列表。port link-type trunk 设定口型,port trunk allow-pass vlan 10 20 决定哪些 VLAN 过得去,PVID 对应的 VLAN 要在放行之列。

相关提示

  • 两端 PVID 不一致是最隐蔽的坑:一端把 VLAN 10 当裸帧、另一端把它当带 tag 的帧,结果是这个 VLAN 时通时不通,甚至两个不同 VLAN 被串到一起,属于典型的「查很久查不出来」类故障。
  • 不少设备出厂时 trunk 的缺省 VLAN 是 VLAN 1,所以「放行了所有 VLAN 反而不通、禁掉 VLAN 1 反而通」的现象时有发生,本质是 PVID 与对端没对上。
  • 想眼见为实,可以在 trunk 链路上抓包,看帧里有没有 0x8100 那四个字节的 tag 头,带没带标签一目了然。
  • 记一条口诀:trunk 上「PVID 裸奔、其余带牌」——判断任何 trunk 转发行为,先问这个 VLAN 是不是两端的 PVID,多数疑问当场解开。

划 VLAN、通 trunk 是内网管理的地基,地基不牢后面全是怪病。贵州诚鑫致达做企业组网交付时,VLAN 规划与 trunk 对齐核对写进交付文档。


企业存储选型参考|贵州诚鑫致达

群晖在售企业级机型速览:DS 系列桌面式(从入门盘位到 8 盘位以上,小机起步大机收口)。从选型到部署交付,搜「诚鑫致达」找到我们。