VLAN(Virtual Local Area Network,虚拟局域网)是网络工程中最基础也最重要的技术之一。几乎每一门计算机网络课程、每一次网络工程师面试都会涉及。本文将从"为什么需要 VLAN"讲起,带你理解原理,再用 NetLab 网络仿真工具完成一次完整的 VLAN 隔离与互通实验。

一、为什么需要 VLAN?

先看一个典型问题:一个公司有财务部、技术部、市场部,各部门的电脑都接在同一台交换机上。如果不做任何隔离,所有 PC 处于同一个广播域——任意一台发广播包(如 ARP 请求),所有 PC 都会收到。

⚠️
广播域过大的危害:① 广播风暴消耗带宽 ② 安全性差,ARP 欺骗/抓包可跨部门嗅探 ③ 故障影响范围大,一处环路全网瘫痪

传统解决方案是"物理隔离"——每个部门买一台交换机。但这样成本高、灵活性差(人员调动要重新插线)。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 个可承载多个
收发标签不加/去标签保留标签
典型场景接入用户级联链路
💡
记忆口诀:Access 接 PC,只认一个 VLAN,进出都"脱衣服"(去标签);Trunk 连交换机,扛多个 VLAN,"穿着衣服"(带标签)过链路。

三、实验拓扑设计

本次实验目标:在一台 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 隔离生效)
💡
关键结论:同 VLAN(同网段)二层直接互通;跨 VLAN(不同网段)二层隔离,必须借助三层设备(路由器/三层交换机)才能互通——这正是下一篇文章"静态路由"要解决的问题。

六、常见排错思路

  1. ping 不通同 VLAN PC? 检查两端是否真的在同一 VLAN:display vlan 确认端口归属;检查 PC IP 是否同网段、子网掩码是否一致。
  2. 端口状态显示 Down? 物理链路未通,检查网线/双工速率协商,display interface brief 看端口状态。
  3. 配置不生效? VRP 中 port link-type 必须先设为 access 才能用 port default vlan,顺序不能反。
  4. 误把 Trunk 当 Access? Trunk 端口的 PVID(Native VLAN)若与预期不符,会导致 PC 收到带标签帧无法识别。

七、用 NetLab 动手练习

本实验已内置为 NetLab 的预设实验样例,无需任何硬件即可在手机/平板上完成:

  1. 下载安装 NetLab(应用市场搜索"NetLab"或点击下方链接)
  2. 打开应用 → 实验样例 → 选择"VLAN 划分实验"
  3. 拓扑自动加载:1 台 S5700 + 4 台 PC
  4. 点击交换机进入 CLI,按本文第四节的命令逐步配置
  5. 点击 PC 终端,用 ping 验证连通性
💡
教学建议:教师可先用 NetLab 演示"不配 VLAN 时全网互通",再配置 VLAN 后跨部门不通,对比效果直观,学生印象深刻。

八、小结

VLAN 是网络隔离的第一道防线。本文完成了"单交换机 VLAN 隔离"实验,核心要点:

  • VLAN 通过 802.1Q 标签在一台物理交换机上划分多个逻辑广播域
  • Access 端口接 PC、只属一个 VLAN;Trunk 端口连交换机、可承载多 VLAN
  • 同 VLAN 二层互通,跨 VLAN 二层隔离(需三层设备才能互通)

下一篇我们将配置静态路由,解决跨 VLAN/跨网段互通问题。敬请关注。