VLAN(Virtual Local Area Network,虚拟局域网)是网络工程中最基础也最重要的技术之一。几乎每一门计算机网络课程、每一次网络工程师面试都会涉及。本文将从"为什么需要 VLAN"讲起,带你理解原理,再用 NetLab 网络仿真工具完成一次完整的 VLAN 隔离与互通实验。
一、为什么需要 VLAN?
先看一个典型问题:一个公司有财务部、技术部、市场部,各部门的电脑都接在同一台交换机上。如果不做任何隔离,所有 PC 处于同一个广播域——任意一台发广播包(如 ARP 请求),所有 PC 都会收到。
传统解决方案是"物理隔离"——每个部门买一台交换机。但这样成本高、灵活性差(人员调动要重新插线)。VLAN 的价值在于:在一台物理交换机上,用软件方式划分出多个逻辑广播域,既隔离又灵活。
一句话理解 VLAN:把一台交换机"切"成多台虚拟交换机,不同 VLAN 之间的广播包互不干扰。
二、VLAN 原理速览
2.1 VLAN 标签(802.1Q)
交换机如何区分不同 VLAN 的数据帧?靠 802.1Q 标签。它在以太网帧的源 MAC 和类型字段之间插入 4 字节,其中 12 位是 VLAN ID(理论上可支持 4096 个 VLAN,0 和 4095 保留,实际可用 1-4094)。
普通以太网帧:
| 目的MAC | 源MAC | 类型 | 数据 | FCS |
带802.1Q标签的帧:
| 目的MAC | 源MAC | **VLAN标签** | 类型 | 数据 | FCS |
└─ 12位VLAN ID ─┘
2.2 端口类型:Access 与 Trunk
| 属性 | Access 端口 | Trunk 端口 |
|---|---|---|
| 连接对象 | 终端 PC | 交换机之间 |
| 所属 VLAN | 仅 1 个 | 可承载多个 |
| 收发标签 | 不加/去标签 | 保留标签 |
| 典型场景 | 接入用户 | 级联链路 |
三、实验拓扑设计
本次实验目标:在一台 S5700 交换机上划分 VLAN 10 和 VLAN 20,验证同 VLAN 可通信、跨 VLAN 隔离。
拓扑结构:
PC1 ──┐ ┌── PC3
├── S5700 交换机 ────┤
PC2 ──┘ └── PC4
PC1 (GE0/0/1) → VLAN 10 192.168.10.1/24
PC2 (GE0/0/2) → VLAN 10 192.168.10.2/24
PC3 (GE0/0/3) → VLAN 20 192.168.20.1/24
PC4 (GE0/0/4) → VLAN 20 192.168.20.2/24
预期结果:PC1↔PC2 通,PC3↔PC4 通,PC1↔PC3 不通。
四、配置步骤(VRP 命令)
4.1 创建 VLAN
<S5700> system-view
[S5700] vlan batch 10 20
Info: All the VLANs will be created. Continue? [Y/N]: y
[S5700] display vlan
The total number of vlans is : 3
VID Status Property GE
1 enable default ...
10 enable default
20 enable default
4.2 划分端口到 VLAN
[S5700] interface GigabitEthernet 0/0/1
[S5700-GigabitEthernet0/0/1] port link-type access
[S5700-GigabitEthernet0/0/1] port default vlan 10
[S5700-GigabitEthernet0/0/1] quit
[S5700] interface GigabitEthernet 0/0/2
[S5700-GigabitEthernet0/0/2] port link-type access
[S5700-GigabitEthernet0/0/2] port default vlan 10
[S5700-GigabitEthernet0/0/2] quit
[S5700] interface GigabitEthernet 0/0/3
[S5700-GigabitEthernet0/0/3] port link-type access
[S5700-GigabitEthernet0/0/3] port default vlan 20
[S5700-GigabitEthernet0/0/3] quit
[S5700] interface GigabitEthernet 0/0/4
[S5700-GigabitEthernet0/0/4] port link-type access
[S5700-GigabitEthernet0/0/4] port default vlan 20
4.3 验证配置
[S5700] display vlan 10
U: Up; D: Down; TG: Tagged; UT: Untagged;
MP: Member; CU: Control-plane; U: Up
VID Type Ports
10 common UT:GE0/0/1(U) GE0/0/2(U)
[S5700] display vlan 20
VID Type Ports
20 common UT:GE0/0/3(U) GE0/0/4(U)
可以看到 GE0/0/1、GE0/0/2 已划入 VLAN 10,GE0/0/3、GE0/0/4 已划入 VLAN 20。
五、验证连通性
给各 PC 配置 IP 后,用 ping 验证:
# PC1 (192.168.10.1) ping PC2 (192.168.10.2) —— 同 VLAN
PC> ping 192.168.10.2
Reply from 192.168.10.2: bytes=32 time=1ms TTL=128
Reply from 192.168.10.2: bytes=32 time=1ms TTL=128
✅ 通
# PC1 (192.168.10.1) ping PC3 (192.168.20.1) —— 跨 VLAN
PC> ping 192.168.20.1
Request timeout!
Request timeout!
❌ 不通(符合预期,VLAN 隔离生效)
六、常见排错思路
- ping 不通同 VLAN PC? 检查两端是否真的在同一 VLAN:
display vlan确认端口归属;检查 PC IP 是否同网段、子网掩码是否一致。 - 端口状态显示 Down? 物理链路未通,检查网线/双工速率协商,
display interface brief看端口状态。 - 配置不生效? VRP 中
port link-type必须先设为 access 才能用port default vlan,顺序不能反。 - 误把 Trunk 当 Access? Trunk 端口的 PVID(Native VLAN)若与预期不符,会导致 PC 收到带标签帧无法识别。
七、用 NetLab 动手练习
本实验已内置为 NetLab 的预设实验样例,无需任何硬件即可在手机/平板上完成:
- 下载安装 NetLab(应用市场搜索"NetLab"或点击下方链接)
- 打开应用 → 实验样例 → 选择"VLAN 划分实验"
- 拓扑自动加载:1 台 S5700 + 4 台 PC
- 点击交换机进入 CLI,按本文第四节的命令逐步配置
- 点击 PC 终端,用 ping 验证连通性
八、小结
VLAN 是网络隔离的第一道防线。本文完成了"单交换机 VLAN 隔离"实验,核心要点:
- VLAN 通过 802.1Q 标签在一台物理交换机上划分多个逻辑广播域
- Access 端口接 PC、只属一个 VLAN;Trunk 端口连交换机、可承载多 VLAN
- 同 VLAN 二层互通,跨 VLAN 二层隔离(需三层设备才能互通)
下一篇我们将配置静态路由,解决跨 VLAN/跨网段互通问题。敬请关注。