什么是vlan?
Virtual Local Area Network,虚拟局域网 定义是在物理交换机上逻辑隔离的虚拟局域网
vlan的本质是 给数据帧打标签(Tag) 交换机转发以太网帧时,在帧头插入 4 字节 VLAN 标签,标签里携带VLAN ID(1–4094),然后在这个广播域里泛洪。
为什么要有vlan技术?
隔离广播
没有 VLAN 时,全网一个广播域:
电脑开机 DHCP、ARP 查询、病毒广播报文会传遍所有设备。终端越多,广播流量越大,严重占用带宽、卡顿甚至瘫痪网络(广播风暴)。
VLAN 切割广播域,广播只在组内流转,大幅减少无效流量,提升网络稳定性。
安全隔离
不同业务 / 部门天然需要隔离:
- 财务部服务器不能被市场部电脑随意访问;
- 办公网不能直接访问服务器区、监控网; 不同 VLAN 二层完全不通,天然形成安全边界,不配置三层路由就无法互相访问,减少攻击、数据泄露风险。
简化网络规划,节约硬件成本
- 无需为每个部门单独采购交换机、单独布线;
- 同一台交换机承载多套业务网络,降低设备、布线、机柜成本;
- 人员工位变动不用重新改网线,交换机上修改 VLAN 配置即可切换网段。
通过 VLAN 标签分割二层广播域
VLAN转发过程
阶段 1:PC1 发送报文到 SW1 Access 口
- PC1 发出无 Tag数据帧;
- 进入 SW1 Access VLAN10 端口,交换机给帧添加 VLAN 10 Tag;
- SW1 学习源 MAC(PC1-MAC):MAC 表记录 PC1-MAC + 入端口 + VLAN10;
- 查找 MAC 地址表,发现目的 MAC(PC3-MAC)不在本交换机端口,需要从 Trunk 口转发。
阶段 2:跨交换机传输
Trunk 口规则:VLAN10 不是 Native VLAN,保留 Tag 10 发送出去; 报文带着 802.1Q 标签在交换机之间传输。
阶段 3:SW2 Trunk 口接收带 Tag 帧
- SW2 Trunk 收到带 VLAN10 Tag 的帧;
- 校验 Trunk 允许 VLAN10 通行,保留标签;
- 学习源 MAC(PC1-MAC),存入 VLAN10 对应的 MAC 地址表;
- 查询 MAC 表:目的 PC3-MAC 在本交换机 Access VLAN10 端口。
阶段 4:剥离 Tag
Access 口连接电脑,终端不识别 VLAN 标签: 交换机出站前剥离 VLAN10 Tag,发送纯无标签以太网帧给 PC3; PC3 正常接收数据。
access与trunk接口
区别
| 端口类型 | 接收报文处理 - 无 Tag 报文 | 接收报文处理 - 带 Tag 报文 | 发送报文处理 |
|---|---|---|---|
| Access 端口 | 打上端口缺省 VLAN (PVID) 的标签,并接收。 | 若该 Tag 的 VLAN ID 等于 PVID,则接收(通常会先剥除标签再进入交换);若不等于 PVID,则直接丢弃。 | 剥离所有 VLAN 标签,以普通以太网帧(Untagged)形式发送。 |
| Trunk 端口 | 打上端口缺省 VLAN (PVID) 的标签,并接收。(前提是 PVID 在允许列表中)。该 PVID 对应的 VLAN 通常就是 Native VLAN。 | 检查该 Tag 的 VLAN ID 是否在端口的允许通过列表中: ・在列表中:保留原标签接收。 ・不在列表中:丢弃。 | 检查待发送报文的 VLAN ID: ・若 VLAN ID 等于 PVID (Native VLAN):剥离标签,发送 Untagged 帧。(前提是 PVID 在允许列表中) ・若 VLAN ID 在允许列表中且不等于 PVID:保留标签,发送 Tagged 帧。 ・若不在允许列表中:不发送。 |
| Hybrid 端口 | 打上端口缺省 VLAN (PVID) 的标签,并接收(前提是 PVID 在允许列表中)。 | 检查该 Tag 的 VLAN ID 是否在端口的允许通过列表中: ・在列表中:保留原标签接收。 ・不在列表中:丢弃。 | 根据端口对该 VLAN 的具体配置决定: ・配置为 Untagged:剥离标签,发送 Untagged 帧。 ・配置为 Tagged:保留标签,发送 Tagged 帧。 ・不在允许列表中的 VLAN:不发送。 |
native vlan
定义:Trunk 链路上不带标签跑的流量归属的 VLAN,就是 Native VLAN。在trunk里,native vlan就是PVID。
为什么需要native vlan? 交换机之间走 Trunk,正常业务流量都带标签,交换机靠标签区分 VLAN。 但有一种流量是不带标签的: 比如一台设备发了无标签广播、或者 VLAN1 的终端跨交换机通信。 Trunk 口收到一个光秃秃、没有标签的帧,交换机根本不知道它属于哪个 VLAN,没法转发。
于是规定: 所有无标签到达 Trunk 口的数据,统一划分给一个固定 VLAN,这个固定 VLAN = Native VLAN(默认 VLAN1)。
① 出 Trunk 口
- 普通 VLAN(非 Native):贴上标签再发过去;
- Native VLAN 的数据:撕掉标签,裸帧发送。
② 进 Trunk 口
- 带标签的帧:看标签数字,对应对应 VLAN;
- 没标签的裸帧:默认归 Native VLAN,自动打上 Native 的标签再转发。
VLAN Interface
- 为什么需要?
- 二层 VLAN 只是二层隔离,没有 IP,不能跨 VLAN 上网、互访;
- 想让两个 VLAN 互通,必须有个带 IP 的 “关口”,这个关口就是 Vlanif。

- 三层转发不需要标签,会剥离二层以太网头部(含 dot1q 标签),取出纯 IP 数据包
dot1q
- dot1q 是什么
- 正式标准名叫 802.1Q,口语、设备命令里简写叫 dot1q。它就是给以太网帧打 VLAN 标签的标准协议。 两台交换机只用一根网线相连,同时跑 VLAN10、VLAN20。 如果不加 dot1q 标签,交换机分不清这个帧是哪个 VLAN 的,广播、单播全乱套。
所以: 同 VLAN 跨交换机互通,就需要 dot1q 标签在 Trunk 链路上传递 VLAN 身份。 这是标签最基础作用,只属于二层行为,此时还不能跨 VLAN 通信。