当前位置: 首页 > news >正文

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:交换机怎么区分不同 VLAN?

3. 为什么需要 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 空间是 0~4095,其中 0 和 4095 保留,因此常规可配置 VLAN 为:

1 ~ 4094

4. 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 10

PC 发送普通 Untagged 帧进入 GE1/0/1:

帧没有 VLAN Tag ↓ 端口 PVID = 10 ↓ 交换机把该帧归入 VLAN 10 ↓ 后续在 VLAN 10 的广播域和 MAC 表中处理

6. PVID 不是“把所有帧都强制改成这个 VLAN”

假设 Trunk:

PVID = 10 Permit VLAN 10 20

如果收到一个:

Tagged VLAN 20

交换机不会因为 PVID 是 10 就把它改成 VLAN 10。

它仍然按照自身 Tag:

VLAN 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: 多个 VLAN,PVID VLAN 可以 Untagged, 其他允许 VLAN 通常 Tagged。 Hybrid: 多个 VLAN,并且可以逐 VLAN 决定 出方向是 Tagged 还是 Untagged。

五、Access 端口

9. Access 一般连接什么设备?

常见终端:

  • PC;

  • 打印机;

  • 普通服务器;

  • 摄像头;

  • 其他不需要感知 VLAN Tag 的终端。

例如:

GE1/0/1 Access VLAN 10

10. Access 收到 Untagged 帧

PC 发出的普通帧没有 Tag:

Untagged ↓ Access PVID = 10 ↓ 交换机将其归入 VLAN 10

11. Access 收到 Tagged 帧

以 H3C 端口处理逻辑为例:

Tagged VLAN ID = PVID → 接收 Tagged VLAN ID ≠ PVID → 丢弃

普通 PC 通常不会主动发送 Tagged 帧,所以日常办公接入口很少碰到这个场景。

12. Access 发帧

Access 端口向终端发送帧时:

去掉 VLAN Tag,以 Untagged 形式发送。

因此普通终端完全可以不知道 VLAN 的存在。

13. H3C Access 配置

创建 VLAN:

system-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 50

VLAN 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 20

VLAN 10 没有被允许:

→ Untagged 入帧被丢弃

所以 H3C 官方配置指导会特别提醒:

配置 Trunk PVID 后,还必须允许 PVID 对应 VLAN 通过。

17. Trunk 出方向什么时候带 Tag?

假设:

PVID = 10 Permit VLAN 10 20

VLAN 10 出方向

因为:

VLAN ID = PVID

而且 VLAN 10 被允许:

去掉 Tag → Untagged 发送

VLAN 20 出方向

因为:

VLAN ID ≠ PVID

所以:

保留 VLAN 20 Tag → Tagged 发送

可以直接记:

Trunk: PVID VLAN → Untagged 其他允许 VLAN → Tagged

18. H3C Trunk 配置

system-view vlan 10 vlan 20 interface GigabitEthernet 1/0/24 port link-type trunk port trunk permit vlan 10 20 quit

如果要修改 PVID:

interface 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-A:192.168.10.10/24 PC-B:192.168.10.20/24

第一步:PC-A 发普通帧

PC-A 并不知道“自己属于 VLAN 10”,只发送普通 Ethernet Frame:

Untagged

第二步:SW1 Access 口给帧确定 VLAN 身份

Access VLAN 10 PVID 10

因此:

Untagged → VLAN 10

第三步:经过交换机间 Trunk

如果 Trunk 的 PVID 不是 10,则 VLAN 10 帧通常会以:

Tagged VID = 10

跨越交换机间链路。

第四步:SW2 识别 VLAN 10

SW2 收到后检查:

VLAN 10 是否被 Trunk 允许?

允许后,在 VLAN 10 的 MAC 表中查找 PC-B。

第五步:从 Access 口发给 PC-B

SW2 在 Access VLAN 10 端口:

去掉 Tag → Untagged → PC-B

所以可以总结:

同 VLAN 跨交换机通信的本质,是网络设备之间保存 VLAN 身份,而终端侧通常不需要感知 Tag。


八、Trunk 两端 PVID 不一致会发生什么?

20. 一个非常隐蔽的 VLAN 故障

假设:

SW1

Trunk PVID = 10 Permit VLAN 10 20

SW2

Trunk PVID = 20 Permit VLAN 10 20

SW1 发 VLAN 10:

VLAN 10 = SW1 PVID → 去 Tag → Untagged 发送

SW2 收到 Untagged:

SW2 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 → Tagged

22. 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:离开接口保留 Tag

24. 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 被允许时归入 PVID
Tagged 入帧VID=PVID 才接收VLAN 被允许则接收VLAN 被允许则接收
出方向 Tag去 TagPVID VLAN 去 Tag,其他保留每个 VLAN 单独配置
灵活性
配置复杂度

十一、不同 VLAN 为什么默认不能通信?

26. VLAN 隔离的是二层广播域

例如:

VLAN 10:192.168.10.0/24 VLAN 20:192.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 20

28. 单臂路由

如果使用二层交换机 + 路由器,也可以通过一根 Trunk 连接路由器,再在路由器上划分多个逻辑子接口:

二层交换机 || Trunk || 路由器物理口 ├─ VLAN 10 子接口 ├─ VLAN 20 子接口 └─ VLAN 30 子接口

这种方式称为 Router-on-a-Stick,常用于实验和小规模场景。


十二、H3C 基础实验

29. 实验拓扑

PC1 —— SW1 ===== SW2 —— PC2 | Trunk | PC3 —— | | —— PC4

规划:

PC1、PC2:VLAN 10 PC3、PC4:VLAN 20 SW1-SW2:Trunk,允许 VLAN 10、20

30. 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 quit

31. 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 quit

32. 预期结果

PC1 ↔ PC2: 同 VLAN 10,可以二层通信。 PC3 ↔ PC4: 同 VLAN 20,可以二层通信。 PC1 ↔ PC3: 不同 VLAN,没有三层网关时不能直接通信。

十三、VLAN 不通怎么排查?

33. 标准排查流程

第一步:VLAN 是否存在

display vlan

确认两台设备都存在目标 VLAN。

第二步:Access 口是不是进了正确 VLAN

display 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 → Tagged

37. PVID 就等于 Permit VLAN?

错误。

PVID: 主要决定 Untagged 入帧默认归属。 Permit VLAN: 决定端口允许哪些 VLAN 通过。

配置了 PVID,不代表该 VLAN 自动被 Permit。

38. Hybrid 能让不同 VLAN 直接互通?

错误。

Hybrid 只是控制二层 VLAN 成员和标签方式。跨 VLAN IP 通信仍然需要三层设备。

39. PVID 和 Native VLAN 在所有厂商完全相同?

不建议这样理解。

不同厂商在术语、默认值和收发行为上可能存在差异。H3C 文档主要使用 PVID,Cisco 等平台常见 Native VLAN 术语。实际配置要按设备实现判断。

40. 同 VLAN、同 IP 网段就一定能通?

还要确认:

  • 中间 Trunk 是否放行该 VLAN;

  • STP 是否让业务走到预期链路;

  • 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 基本就不会再混。

http://www.cnnetsun.cn/news/3965402.html

相关文章:

  • 如何在10分钟内训练出专业级AI音色模型:Retrieval-based-Voice-Conversion-WebUI完全指南
  • AI 智慧识别工作台在仓储出入库中的系统设计:视觉识别、权限认证与 WMS/ERP 对接
  • 在营口老边区装汽车脚垫,实际贴合度怎么样?
  • SpringBoot应用防御Slow HTTP攻击的实战方案
  • Windows 11 LTSC系统如何快速安装微软商店:完整指南与一键解决方案
  • ThinkPad终极风扇控制解决方案:TPFanCtrl2完全指南
  • C++虚函数深度解析:从多态原理到设计模式实战
  • 重庆有哪些专业的会议室音响系统厂家呢?
  • Draw.io Mermaid插件:代码驱动与可视化编辑的融合解决方案
  • 医疗器械UDI:500+企业的真实踩坑记录
  • AutoScreenshot终极指南:如何在Windows和Linux上实现高效自动截屏
  • 革命性语音质量评估:如何用NISQA深度学习框架实现300%的质量洞察提升
  • HarmonyOS多边形面积计算与组合图形设计实战
  • SkillSentry 集成 CI/CD:构建自动化代码质量门禁的工程实践
  • 终极免费激活方案:5分钟搞定Windows和Office永久授权
  • 终极指南:3种简单方法让老旧电脑也能安装Windows 11
  • 2026年青岛智慧燃气安全监管平台建设与厂商观察
  • AI学术论文工具教程:高效助力学术创作全流程的实用指南
  • 幼儿园主题墙面创设的优化策略与实践
  • 3分钟为Windows 11 LTSC一键安装微软商店:完整解决方案
  • Linux下RTL8723DU无线网卡驱动编译与安装实战指南
  • Xshell/Xftp免费替代方案与SSH/SFTP工具全解析
  • 5分钟快速上手:MediaCrawler新媒体数据采集完整指南
  • 亚马逊店铺运营是什么?完整定义与核心价值解读
  • Unity大型项目性能优化:IL2CPP与Native C++脚本深度对比与实战
  • N_m3u8DL-CLI-SimpleG:3分钟学会免费图形化M3U8视频下载工具
  • python的工业过程控制场景模拟第一百二十三篇:巡检机器人图像识别算法,识别调节阀锈蚀,泄漏,仪表指示灯异常状态。
  • 技术专家转型网络安全领军人物的路径与方法
  • MusicFree:一个APP听全网音乐,开源免费无广告
  • 抖音下载终极指南:从零开始掌握专业级内容管理工具