公司动态

VLAN、Access、Trunk、Hybrid 到底怎么理解?PVID、Tagged/Untagged 与跨交换机转发一次讲清

📅 2026/8/11 11:02:56
VLAN、Access、Trunk、Hybrid 到底怎么理解?PVID、Tagged/Untagged 与跨交换机转发一次讲清
前言VLAN 是数通里最基础、也最容易出现“会配置但没真正理解”的知识点之一。很多人能背出Access 接 PC Trunk 接交换机 Hybrid 比较灵活 不同 VLAN 之间默认不能直接通信。但继续追问问题马上就来了PVID 到底干什么 Untagged 帧进入 Trunk 会不会直接丢弃 Trunk 上为什么有些帧带 Tag有些不带 Hybrid 和 Trunk 真正区别是什么 同一个 VLAN 跨两台交换机为什么还能通信 两端 Trunk 都允许 VLAN 10为什么业务还是不通 PVID 两端不一致会造成什么后果本文不从背定义开始而是围绕一个核心问题展开一个以太网帧进入交换机时被归到哪个 VLAN离开交换机时又以 Tagged 还是 Untagged 的形式发送只要把“入方向 VLAN 归属”和“出方向 Tag 处理”想清楚Access、Trunk、Hybrid、PVID 基本就全串起来了。本文以IEEE 802.1Q 通用原理 H3C Comware 端口行为为主要背景并加入 H3C 基础配置、跨交换机转发案例和故障排查。TOC一、VLAN 到底解决什么问题1. 没有 VLAN 时一个交换网络就是一个大广播域假设一台交换机连接了研发、财务、访客和服务器设备。如果所有端口都处于同一个广播域PC-A 发出 ARP 广播时交换机会向同广播域内其他端口泛洪。网络规模越大就越容易出现广播范围过大不同部门缺少二层隔离网络迁移严重依赖物理位置安全边界模糊故障影响面扩大。VLAN 的作用就是把一个物理二层网络划分为多个逻辑二层广播域。例如VLAN 10研发部 VLAN 20财务部 VLAN 30访客网络 VLAN 40服务器区即使这些终端物理上连接在同一台交换机上只要 VLAN 不同它们在二层就属于不同的逻辑网络。2. VLAN 的三个核心价值隔离广播域VLAN 10 内的广播不会自动跨到 VLAN 20。实现逻辑隔离不同业务可以共享同一套交换基础设施但在二层上保持隔离。网络划分不再完全依赖物理位置不同楼层、不同交换机上的终端只要属于相同 VLAN而且中间链路正确承载该 VLAN就可以处于同一个逻辑二层网络。二、802.1Q Tag交换机怎么区分不同 VLAN3. 为什么需要 VLAN Tag假设交换机之间只有一条链路却需要同时承载VLAN 10 VLAN 20 VLAN 30 VLAN 40如果帧本身没有任何 VLAN 标识对端交换机就不知道帧属于哪个广播域。IEEE 802.1Q 的解决方法是在以太网帧中插入 4 字节 VLAN Tag。802.1Q Tag 中最重要的字段包括TPID 常见值 0x8100用于标识 VLAN Tag。 Priority 3 bit表示 802.1p 优先级。 CFI/DEI 1 bit。 VLAN ID 12 bit标识报文所属 VLAN。VLAN ID 的 12 bit 空间是 04095其中 0 和 4095 保留因此常规可配置 VLAN 为1 40944. Tagged 和 Untagged 是什么意思Tagged Frame帧中携带 802.1Q VLAN Tag。例如VID 10交换机直接知道这是 VLAN 10 的帧。Untagged Frame帧本身没有 802.1Q Tag。普通 PC、打印机等终端通常发送的就是 Untagged Ethernet Frame。但是必须记住Untagged 不等于“不属于任何 VLAN”。它只代表帧本身没有携带 VLAN ID。进入交换机以后端口仍然会根据自身配置给它确定 VLAN 归属。这个配置就是PVID。三、PVID理解 VLAN 端口的关键5. PVID 到底是什么PVID 全称Port VLAN ID最实用的理解方式是PVID 主要用于决定端口收到的 Untagged 帧默认属于哪个 VLAN。假设GE1/0/1 PVID VLAN 10PC 发送普通 Untagged 帧进入 GE1/0/1帧没有 VLAN Tag ↓ 端口 PVID 10 ↓ 交换机把该帧归入 VLAN 10 ↓ 后续在 VLAN 10 的广播域和 MAC 表中处理6. PVID 不是“把所有帧都强制改成这个 VLAN”假设 TrunkPVID 10 Permit VLAN 10 20如果收到一个Tagged VLAN 20交换机不会因为 PVID 是 10 就把它改成 VLAN 10。它仍然按照自身 TagVLAN 20进行处理。所以可以记成PVID 重点影响 Untagged 入帧已经带 Tag 的帧主要按自身 VLAN ID 检查。7. Access、Trunk、Hybrid 都有 PVID 吗都有但用途表现不同。Access 只能加入一个 VLAN所属 VLAN 就是 PVID。 Trunk 可以通过多个 VLAN同时配置一个 PVID。 Hybrid 同样可以通过多个 VLAN并配置一个 PVID。H3C 官方建议互联两端端口 PVID 保持一致否则 Untagged 流量可能被两端解释成不同 VLAN。四、Access、Trunk、Hybrid 先用三句话理解8. 三种端口的核心差异Access 一个 VLAN向外发送时不带 Tag。 Trunk 多个 VLANPVID VLAN 可以 Untagged 其他允许 VLAN 通常 Tagged。 Hybrid 多个 VLAN并且可以逐 VLAN 决定 出方向是 Tagged 还是 Untagged。五、Access 端口9. Access 一般连接什么设备常见终端PC打印机普通服务器摄像头其他不需要感知 VLAN Tag 的终端。例如GE1/0/1 Access VLAN 1010. Access 收到 Untagged 帧PC 发出的普通帧没有 TagUntagged ↓ Access PVID 10 ↓ 交换机将其归入 VLAN 1011. Access 收到 Tagged 帧以 H3C 端口处理逻辑为例Tagged VLAN ID PVID → 接收 Tagged VLAN ID ≠ PVID → 丢弃普通 PC 通常不会主动发送 Tagged 帧所以日常办公接入口很少碰到这个场景。12. Access 发帧Access 端口向终端发送帧时去掉 VLAN Tag以 Untagged 形式发送。因此普通终端完全可以不知道 VLAN 的存在。13. H3C Access 配置创建 VLANsystem-view vlan 10 quit配置接口interface GigabitEthernet 1/0/1 port link-type access port access vlan 10 quit验证display vlan 10 display current-configuration interface GigabitEthernet 1/0/1六、Trunk 端口14. 为什么需要 Trunk如果两台交换机都存在VLAN 10 VLAN 20 VLAN 30不可能每个 VLAN 都单独拉一条物理线。Trunk 的作用就是让一条物理链路同时承载多个 VLAN。15. Trunk 收到 Tagged 帧假设Permit VLAN 10 20 30收到Tagged VLAN 20因为 VLAN 20 在允许列表中接收并继续按 VLAN 20 处理。如果收到Tagged VLAN 50VLAN 50 不在允许列表丢弃。16. 重点Trunk 收到 Untagged 会不会直接丢弃很多入门文章会直接写Trunk 只接收 Tagged 帧。对于 H3C Comware 来说这个说法并不准确。H3C 的逻辑是如果 Trunk 的 PVID 在允许 VLAN 列表中 收到 Untagged → 接收 → 归入 PVID。 如果 PVID 不在允许列表中 收到 Untagged → 丢弃。例如PVID 10 Permit VLAN 10 20收到 Untagged→ 归入 VLAN 10而PVID 10 Permit VLAN 20VLAN 10 没有被允许→ Untagged 入帧被丢弃所以 H3C 官方配置指导会特别提醒配置 Trunk PVID 后还必须允许 PVID 对应 VLAN 通过。17. Trunk 出方向什么时候带 Tag假设PVID 10 Permit VLAN 10 20VLAN 10 出方向因为VLAN ID PVID而且 VLAN 10 被允许去掉 Tag → Untagged 发送VLAN 20 出方向因为VLAN ID ≠ PVID所以保留 VLAN 20 Tag → Tagged 发送可以直接记Trunk PVID VLAN → Untagged 其他允许 VLAN → Tagged18. H3C Trunk 配置system-view vlan 10 vlan 20 interface GigabitEthernet 1/0/24 port link-type trunk port trunk permit vlan 10 20 quit如果要修改 PVIDinterface GigabitEthernet 1/0/24 port trunk pvid vlan 10注意 VLAN 10 仍需处于 Permit 列表中。七、同 VLAN 跨交换机如何通信19. 完整转发过程拓扑PC-A —— SW1 SW2 —— PC-B Access Trunk Access VLAN 10 VLAN 10地址PC-A192.168.10.10/24 PC-B192.168.10.20/24第一步PC-A 发普通帧PC-A 并不知道“自己属于 VLAN 10”只发送普通 Ethernet FrameUntagged第二步SW1 Access 口给帧确定 VLAN 身份Access VLAN 10 PVID 10因此Untagged → VLAN 10第三步经过交换机间 Trunk如果 Trunk 的 PVID 不是 10则 VLAN 10 帧通常会以Tagged VID 10跨越交换机间链路。第四步SW2 识别 VLAN 10SW2 收到后检查VLAN 10 是否被 Trunk 允许允许后在 VLAN 10 的 MAC 表中查找 PC-B。第五步从 Access 口发给 PC-BSW2 在 Access VLAN 10 端口去掉 Tag → Untagged → PC-B所以可以总结同 VLAN 跨交换机通信的本质是网络设备之间保存 VLAN 身份而终端侧通常不需要感知 Tag。八、Trunk 两端 PVID 不一致会发生什么20. 一个非常隐蔽的 VLAN 故障假设SW1Trunk PVID 10 Permit VLAN 10 20SW2Trunk PVID 20 Permit VLAN 10 20SW1 发 VLAN 10VLAN 10 SW1 PVID → 去 Tag → Untagged 发送SW2 收到 UntaggedSW2 PVID 20 → 把帧归入 VLAN 20于是同一个帧SW1 认为属于 VLAN 10 SW2 却认为属于 VLAN 20可能造成VLAN 泄漏单向通信MAC 学习异常某些 VLAN 偶发不通排障现象非常诡异。因此交换机互联端口应尽量保持两端 PVID 一致 PVID VLAN 都在允许列表中九、Hybrid真正的灵活点在哪里21. Hybrid 和 Trunk 真正区别很多人喜欢说Hybrid Access Trunk这并不能准确说明它的价值。更关键的区别是Hybrid 可以针对多个 VLAN分别决定从该端口发出去时是 Tagged 还是 Untagged。例如PVID 10 VLAN 10 → Untagged VLAN 20 → Untagged VLAN 30 → Tagged VLAN 40 → Tagged而 Trunk 的逻辑通常更固定PVID VLAN → Untagged 其他允许 VLAN → Tagged22. Hybrid 入方向收到 Untagged 时仍然通过PVID确定 VLAN 身份。收到 Tagged 时则检查该 VLAN 是否被 Hybrid 允许。23. Hybrid 出方向H3C 可以直接配置port hybrid vlan 10 20 untagged port hybrid vlan 30 40 tagged于是VLAN 10、20离开接口去 Tag VLAN 30、40离开接口保留 Tag24. H3C Hybrid 配置system-view vlan 10 vlan 20 vlan 30 vlan 40 interface GigabitEthernet 1/0/10 port link-type hybrid port hybrid pvid vlan 10 port hybrid vlan 10 20 untagged port hybrid vlan 30 40 tagged quit注意PVID VLAN 10并不等于 VLAN 10 自动被允许发送仍需通过port hybrid vlan配置允许。25. Hybrid 常见场景语音 数据复杂终端接入某些 VLAN 对终端 Untagged某些 VLAN 对下游设备 Tagged特殊二层业务设计。但一定要记住Hybrid 只改变二层 VLAN 与 Tag 处理不会让不同 VLAN 自动实现三层互通。十、Access / Trunk / Hybrid 一张表项目AccessTrunkHybrid可加入 VLAN 数1多个多个典型用途终端接入网络设备互联复杂混合接入Untagged 入帧归入 PVIDPVID 被允许时归入 PVIDPVID 被允许时归入 PVIDTagged 入帧VIDPVID 才接收VLAN 被允许则接收VLAN 被允许则接收出方向 Tag去 TagPVID VLAN 去 Tag其他保留每个 VLAN 单独配置灵活性低中高配置复杂度低中高十一、不同 VLAN 为什么默认不能通信26. VLAN 隔离的是二层广播域例如VLAN 10192.168.10.0/24 VLAN 20192.168.20.0/24它们属于不同二层广播域 不同 IP 子网因此 VLAN 10 的主机访问 VLAN 20 时需要把报文交给默认网关由三层设备完成路由。27. H3C Vlan-interface 三层互通system-view interface Vlan-interface 10 ip address 192.168.10.1 255.255.255.0 quit interface Vlan-interface 20 ip address 192.168.20.1 255.255.255.0 quit终端默认网关VLAN 10 → 192.168.10.1 VLAN 20 → 192.168.20.1三层交换机即可执行VLAN 10 ↓ Vlan-interface10 ↓ IP 路由表 ↓ Vlan-interface20 ↓ VLAN 2028. 单臂路由如果使用二层交换机 路由器也可以通过一根 Trunk 连接路由器再在路由器上划分多个逻辑子接口二层交换机 || Trunk || 路由器物理口 ├─ VLAN 10 子接口 ├─ VLAN 20 子接口 └─ VLAN 30 子接口这种方式称为 Router-on-a-Stick常用于实验和小规模场景。十二、H3C 基础实验29. 实验拓扑PC1 —— SW1 SW2 —— PC2 | Trunk | PC3 —— | | —— PC4规划PC1、PC2VLAN 10 PC3、PC4VLAN 20 SW1-SW2Trunk允许 VLAN 10、2030. SW1 配置system-view vlan 10 name DEV quit vlan 20 name FINANCE quit interface GigabitEthernet 1/0/1 port link-type access port access vlan 10 quit interface GigabitEthernet 1/0/2 port link-type access port access vlan 20 quit interface GigabitEthernet 1/0/24 port link-type trunk port trunk permit vlan 10 20 quit31. SW2 配置system-view vlan 10 vlan 20 interface GigabitEthernet 1/0/1 port link-type access port access vlan 10 quit interface GigabitEthernet 1/0/2 port link-type access port access vlan 20 quit interface GigabitEthernet 1/0/24 port link-type trunk port trunk permit vlan 10 20 quit32. 预期结果PC1 ↔ PC2 同 VLAN 10可以二层通信。 PC3 ↔ PC4 同 VLAN 20可以二层通信。 PC1 ↔ PC3 不同 VLAN没有三层网关时不能直接通信。十三、VLAN 不通怎么排查33. 标准排查流程第一步VLAN 是否存在display vlan确认两台设备都存在目标 VLAN。第二步Access 口是不是进了正确 VLANdisplay current-configuration interface GigabitEthernet 1/0/1典型错误用户应该在 VLAN 20 接口仍然留在默认 VLAN 1。第三步Trunk/Hybrid 是否放行目标 VLAN典型现象VLAN 10 正常 VLAN 20 不通如果两端 Access 都正确就重点检查中间 Trunk 是否允许 VLAN 20。第四步PVID 是否正确检查Trunk 两端 PVID 是否一致PVID VLAN 是否同时在 Permit 列表Hybrid PVID 是否同时被port hybrid vlan允许。第五步Hybrid Tagged/Untagged 是否符合设计如果一端发 Untagged而对端按照另一个 PVID 解释就可能进入错误 VLAN。第六步查看 MAC 地址学习display mac-address重点看终端 MAC 学到了哪个 VLAN 在哪个接口 是否有 MAC 漂移第七步跨 VLAN 时检查三层如果VLAN 10 内能通 VLAN 20 内能通 VLAN 10 与 VLAN 20 不能通继续检查Vlan-interface 是否 Up 网关 IP 终端默认网关 ARP IP 路由 ACL。常用display ip interface brief display arp display ip routing-table第八步抓包验证 Tag复杂场景最后可以抓包确认帧进入链路时有没有 802.1Q Tag VLAN ID 是多少 本应 Tagged 的地方是否变成 Untagged十四、七个高频误区34. Untagged 就是不属于任何 VLAN错误。Untagged 只代表帧本身没有 VLAN Tag。进入交换机后PVID 会确定默认 VLAN 身份。35. Trunk 只接收 Tagged对于 H3C Comware不准确。当 PVID VLAN 被 Trunk 允许通过时Trunk 可以接收 Untagged并把它归入 PVID。36. Trunk 上所有帧都带 Tag也不准确。H3C 常见逻辑PVID VLAN → Untagged 其他允许 VLAN → Tagged37. PVID 就等于 Permit VLAN错误。PVID 主要决定 Untagged 入帧默认归属。 Permit VLAN 决定端口允许哪些 VLAN 通过。配置了 PVID不代表该 VLAN 自动被 Permit。38. Hybrid 能让不同 VLAN 直接互通错误。Hybrid 只是控制二层 VLAN 成员和标签方式。跨 VLAN IP 通信仍然需要三层设备。39. PVID 和 Native VLAN 在所有厂商完全相同不建议这样理解。不同厂商在术语、默认值和收发行为上可能存在差异。H3C 文档主要使用 PVIDCisco 等平台常见 Native VLAN 术语。实际配置要按设备实现判断。40. 同 VLAN、同 IP 网段就一定能通还要确认中间 Trunk 是否放行该 VLANSTP 是否让业务走到预期链路MAC 是否正确学习端口是否 Up主机掩码、防火墙是否正确是否配置端口隔离、ACL 等功能。十五、面试速记Access、Trunk、Hybrid 核心区别Access 单 VLAN典型接终端出方向 Untagged。 Trunk 多 VLAN典型设备互联PVID VLAN 通常 Untagged其他 VLAN Tagged。 Hybrid 多 VLAN并可逐 VLAN 指定 Tagged/Untagged。PVID 的核心作用为端口收到的 Untagged 帧确定默认 VLAN 身份。为什么 Trunk 两端 PVID 最好一致因为 Untagged 帧在两端分别按照本端 PVID 归类。PVID 不一致时同一帧可能被两端放入不同 VLAN。同 VLAN 跨交换机怎么通信Access 口处理终端侧 Untagged交换机间链路保存 VLAN 身份对端再按照 VLAN ID 转发到目标 Access 端口。不同 VLAN 为什么必须经过三层因为不同 VLAN 是不同二层广播域跨 VLAN 通信需要 VLAN-interface、SVI 或路由器执行 IP 路由。总结如果只想记住本文最重要的四句话VLAN把一个物理二层网络 划分成多个逻辑广播域。PVID主要决定 Untagged 入帧 默认属于哪个 VLAN。Trunk一条链路承载多个 VLAN PVID VLAN 常以 Untagged 发送 其他允许 VLAN 通常 Tagged。Hybrid比 Trunk 更灵活 可以针对多个 VLAN 分别配置 Tagged 或 Untagged。真正理解 VLAN不要只背Access 接 PC Trunk 接交换机。而是每看到一个帧都问自己两个问题它进入这个端口以后被归入哪个 VLAN它离开这个端口的时候到底带不带 802.1Q Tag只要能顺着一个帧把这两个方向走完整Access、Trunk、Hybrid、PVID 基本就不会再混。