VLAN 概念、原理与基础配置教程
适用对象:正在学习计算机网络、交换机配置或准备搭建小型园区网的初学者
示例平台:华为 VRP、Cisco IOS/IOS XE 交换机
说明:不同型号和软件版本的接口名称、命令细节可能略有差异,实际操作前请查看设备命令帮助。
文章目录
- [VLAN 概念、原理与基础配置教程](#VLAN 概念、原理与基础配置教程)
-
- [1. 为什么需要 VLAN](#1. 为什么需要 VLAN)
-
- [1.1 没有 VLAN 时会发生什么](#1.1 没有 VLAN 时会发生什么)
- [1.2 VLAN 是什么](#1.2 VLAN 是什么)
- [1.3 VLAN 的主要价值](#1.3 VLAN 的主要价值)
- [2. VLAN 的核心概念](#2. VLAN 的核心概念)
-
- [2.1 VLAN ID](#2.1 VLAN ID)
- [2.2 广播域和网段的关系](#2.2 广播域和网段的关系)
- [2.3 MAC 地址表与 VLAN](#2.3 MAC 地址表与 VLAN)
- [2.4 VLAN 的常见划分方式](#2.4 VLAN 的常见划分方式)
- [3. Access、Trunk 与 802.1Q](#3. Access、Trunk 与 802.1Q)
-
- [3.1 Access 接口](#3.1 Access 接口)
- [3.2 Trunk 接口](#3.2 Trunk 接口)
- [3.3 802.1Q 标签](#3.3 802.1Q 标签)
- [3.4 Native VLAN 与 PVID](#3.4 Native VLAN 与 PVID)
- [3.5 Access、Trunk、Hybrid 对比](#3.5 Access、Trunk、Hybrid 对比)
- [4. VLAN 内与 VLAN 间通信](#4. VLAN 内与 VLAN 间通信)
-
- [4.1 同 VLAN 通信过程](#4.1 同 VLAN 通信过程)
- [4.2 不同 VLAN 为什么不能直接通信](#4.2 不同 VLAN 为什么不能直接通信)
- [4.3 跨 VLAN 通信的两种常用方案](#4.3 跨 VLAN 通信的两种常用方案)
-
- [方案 A:三层交换机的 SVI/VLANIF](#方案 A:三层交换机的 SVI/VLANIF)
- [方案 B:单臂路由(Router-on-a-Stick)](#方案 B:单臂路由(Router-on-a-Stick))
- [5. 基础配置命令](#5. 基础配置命令)
-
- [5.1 华为 VRP:创建 VLAN 与配置 Access 端口](#5.1 华为 VRP:创建 VLAN 与配置 Access 端口)
- [5.2 华为 VRP:配置 Trunk](#5.2 华为 VRP:配置 Trunk)
- [5.3 华为 VRP:创建 VLANIF 网关](#5.3 华为 VRP:创建 VLANIF 网关)
- [5.4 Cisco IOS/IOS XE:创建 VLAN 与配置 Access 端口](#5.4 Cisco IOS/IOS XE:创建 VLAN 与配置 Access 端口)
- [5.5 Cisco IOS/IOS XE:配置 Trunk](#5.5 Cisco IOS/IOS XE:配置 Trunk)
- [5.6 Cisco IOS/IOS XE:创建 SVI 网关](#5.6 Cisco IOS/IOS XE:创建 SVI 网关)
- [6. 综合项目:小型公司 VLAN 网络](#6. 综合项目:小型公司 VLAN 网络)
-
- [6.1 项目需求](#6.1 项目需求)
- [6.2 项目拓扑](#6.2 项目拓扑)
- [6.3 地址与端口规划](#6.3 地址与端口规划)
-
- [VLAN 与地址规划](#VLAN 与地址规划)
- 接入交换机端口规划
- [6.4 实施顺序](#6.4 实施顺序)
- [6.5 华为 VRP 完整示例](#6.5 华为 VRP 完整示例)
-
- [接入交换机 SW-ACC](#接入交换机 SW-ACC)
- [核心三层交换机 SW-CORE](#核心三层交换机 SW-CORE)
- [6.6 Cisco IOS/IOS XE 完整示例](#6.6 Cisco IOS/IOS XE 完整示例)
-
- [接入交换机 SW-ACC](#接入交换机 SW-ACC)
- [核心三层交换机 SW-CORE](#核心三层交换机 SW-CORE)
- [6.7 终端配置示例](#6.7 终端配置示例)
- [6.8 访客 VLAN 的访问控制提醒](#6.8 访客 VLAN 的访问控制提醒)
- [7. 验证与故障排查](#7. 验证与故障排查)
-
- [7.1 正确的测试顺序](#7.1 正确的测试顺序)
- [7.2 华为常用验证命令](#7.2 华为常用验证命令)
- [7.3 Cisco 常用验证命令](#7.3 Cisco 常用验证命令)
- [7.4 常见故障对照表](#7.4 常见故障对照表)
- [7.5 SVI/VLANIF 为什么可能是 Down](#7.5 SVI/VLANIF 为什么可能是 Down)
- [8. 动手实验与复习题](#8. 动手实验与复习题)
-
- [8.1 推荐实验步骤](#8.1 推荐实验步骤)
-
- [实验 1:验证同 VLAN 通信](#实验 1:验证同 VLAN 通信)
- [实验 2:验证 VLAN 隔离](#实验 2:验证 VLAN 隔离)
- [实验 3:验证 Trunk](#实验 3:验证 Trunk)
- [实验 4:验证跨 VLAN 路由](#实验 4:验证跨 VLAN 路由)
- [8.2 复习题](#8.2 复习题)
- [8.3 参考答案](#8.3 参考答案)
- [9. 总结](#9. 总结)
1. 为什么需要 VLAN
1.1 没有 VLAN 时会发生什么
传统二层交换机依据 MAC 地址表转发以太网帧。对于广播帧、目的 MAC 未知的单播帧,交换机会在同一广播域内进行泛洪。
如果行政部、研发部和访客终端全部处于同一个二层网络,就可能出现:
- 广播流量影响所有终端;
- 不同部门之间缺少二层隔离;
- 人员或位置变化时,网络不便管理;
- 故障或错误接线的影响范围较大;
- 难以针对不同业务应用不同的访问控制策略。
1.2 VLAN 是什么
**VLAN(Virtual Local Area Network,虚拟局域网)**是在物理交换网络上划分出的逻辑二层网络。每个 VLAN 都是一个独立的广播域。
下图中三组终端虽然连接到同一台交换机,但分别属于 VLAN 10、VLAN 20 和 VLAN 30,因此广播流量不会直接跨 VLAN 传播。

可以把 VLAN 理解为在一台物理交换机内部建立了多台"逻辑交换机":
- 同一 VLAN 内的终端可以在二层直接通信;
- 不同 VLAN 内的终端默认不能在二层直接通信;
- 不同 VLAN 之间若需要通信,必须经过三层设备进行路由;
- VLAN 是隔离广播域的技术,但不是完整的安全方案。开启跨 VLAN 路由后,仍需使用 ACL、防火墙等实施访问控制。
1.3 VLAN 的主要价值
| 价值 | 说明 |
|---|---|
| 隔离广播域 | 减少广播流量的传播范围 |
| 逻辑分组 | 可按照部门、业务或安全级别划分,而不只按物理位置划分 |
| 便于管理 | VLAN 编号、名称、地址规划和策略可以统一设计 |
| 提升安全边界 | 不同 VLAN 默认二层隔离,跨 VLAN 访问可集中控制 |
| 提高灵活性 | 用户移动到另一交换机时,只需把新端口加入原 VLAN |
2. VLAN 的核心概念
2.1 VLAN ID
IEEE 802.1Q 使用 12 位 VID(VLAN Identifier)标识 VLAN,因此取值范围为 0~4095。其中:
- VLAN 1~4094 可用于标识 VLAN;
- VLAN 0 和 VLAN 4095 保留,不能作为普通业务 VLAN 使用;
- VLAN 1 通常是设备的默认 VLAN。实际网络中不建议把重要用户业务长期放在默认 VLAN 1;
- VLAN ID 只在一个二层网络范围内有意义。不同地点可以重复使用同一编号,但应保持统一规划。
注意:某些设备会进一步区分普通 VLAN 和扩展 VLAN,具体能力取决于型号和软件版本。
2.2 广播域和网段的关系
在常见园区网设计中,通常采用"一 VLAN 一 IPv4 子网"的方式:
| VLAN | 部门 | IPv4 子网 | 默认网关 |
|---|---|---|---|
| 10 | 行政部 | 192.168.10.0/24 |
192.168.10.1 |
| 20 | 研发部 | 192.168.20.0/24 |
192.168.20.1 |
| 30 | 访客 | 192.168.30.0/24 |
192.168.30.1 |
| 99 | 网络管理 | 192.168.99.0/24 |
192.168.99.1 |
这样规划不是 VLAN 协议的强制要求,但最清晰、最容易路由和排错。
2.3 MAC 地址表与 VLAN
交换机学习 MAC 地址时,不只记录"MAC 地址 → 端口",还会记录其所属 VLAN,可以理解为:
text
(VLAN ID, MAC 地址) → 出接口
因此同一个 MAC 地址即使出现在不同 VLAN 中,也属于不同的二层转发表项。交换机转发帧时不会把 VLAN 10 中学习到的 MAC 表项直接用于 VLAN 20。
2.4 VLAN 的常见划分方式
| 划分方式 | 原理 | 典型用途 |
|---|---|---|
| 基于接口 | 把交换机端口静态加入某个 VLAN | 最常见,适合固定办公终端 |
| 基于 MAC | 根据终端 MAC 地址决定 VLAN | 终端位置变化但身份固定的场景 |
| 基于协议/子网 | 根据报文协议或源网段划分 | 特定设备支持,使用相对较少 |
| 动态 VLAN | 通过 802.1X、RADIUS 等认证结果分配 | 企业准入控制、统一身份管理 |
本教程重点讲解最常用的基于接口的 VLAN 划分。
3. Access、Trunk 与 802.1Q
3.1 Access 接口
Access 接口通常连接 PC、打印机、摄像头等普通终端,一般只承载一个业务 VLAN。
以 VLAN 10 的 Access 接口为例:
- PC 发出的普通以太网帧通常不带 VLAN 标签;
- 帧进入交换机后,交换机依据该端口的 PVID/Access VLAN,把帧归入 VLAN 10;
- 帧从另一个 VLAN 10 Access 接口发往终端时,通常以无标签形式发送。
3.2 Trunk 接口
Trunk 接口通常用于交换机之间、交换机与路由器之间或交换机与支持 VLAN 的服务器/无线 AP 之间的连接。一个 Trunk 可以同时承载多个 VLAN。

Trunk 的核心是:
- 使用 802.1Q 标签区分同一链路上的不同 VLAN;
- 通过允许 VLAN 列表限制可以通过链路的 VLAN;
- 链路两端的 Trunk 模式、允许 VLAN 和 Native VLAN/PVID 应保持一致;
- "物理链路已经 Up"不代表 VLAN 一定可以通过,仍需检查 Trunk 允许列表。
3.3 802.1Q 标签
802.1Q 在源 MAC 地址和 EtherType/Length 字段之间插入 4 字节标签。

标签的关键字段如下:
| 字段 | 位数 | 作用 |
|---|---|---|
| TPID | 16 位 | 常见值为 0x8100,表示存在 802.1Q 标签 |
| PCP | 3 位 | 802.1p 优先级,可用于 QoS |
| DEI | 1 位 | 拥塞时的丢弃资格指示 |
| VID | 12 位 | VLAN ID |
插入标签后,以太网帧长度通常增加 4 字节,FCS 也需要重新计算。
3.4 Native VLAN 与 PVID
这两个概念都与"无标签帧属于哪个 VLAN"有关,但各厂商表达方式略有差异:
- PVID:端口接收到无标签帧时,为其归属的默认 VLAN ID;
- Native VLAN(Cisco 常用术语):传统 802.1Q Trunk 上可以不带标签发送的 VLAN;
- 华为 Trunk PVID:决定 Trunk 收到无标签帧时归入哪个 VLAN,并影响该 VLAN 的出方向标签处理。
重要原则:链路两端必须保持一致。Native VLAN/PVID 不一致可能导致 VLAN 泄漏、连通异常或安全风险。
3.5 Access、Trunk、Hybrid 对比
| 接口类型 | 常见连接对象 | 可承载 VLAN 数 | 标签行为 |
|---|---|---|---|
| Access | PC、打印机、普通终端 | 通常 1 个 | 面向终端通常无标签 |
| Trunk | 交换机、路由器、AP、虚拟化主机 | 多个 | 多数 VLAN 以标签区分 |
| Hybrid | 复杂终端、语音/数据混合场景 | 多个 | 可细分哪些 VLAN 带标签或不带标签,华为设备较常见 |
初学阶段先掌握 Access 和 Trunk 即可。
4. VLAN 内与 VLAN 间通信
4.1 同 VLAN 通信过程
假设 PC-A 和 PC-B 都属于 VLAN 10,且地址分别为 192.168.10.10/24、192.168.10.20/24:
- PC-A 判断 PC-B 与自己处于同一网段;
- PC-A 通过 ARP 查询 PC-B 的 MAC 地址;
- ARP 广播只在 VLAN 10 中传播;
- PC-B 回复自己的 MAC 地址;
- 后续单播帧由交换机依据 VLAN 10 的 MAC 地址表转发。
此过程不需要默认网关参与。
4.2 不同 VLAN 为什么不能直接通信
假设 PC-A 位于 VLAN 10,PC-C 位于 VLAN 20:
- 两台终端属于不同 IP 网段;
- PC-A 会把发往 VLAN 20 的数据交给默认网关;
- 二层交换机不会把 VLAN 10 的广播或普通二层帧直接转发到 VLAN 20;
- 必须由路由器或三层交换机查询路由表,再把报文送入 VLAN 20。
4.3 跨 VLAN 通信的两种常用方案
方案 A:三层交换机的 SVI/VLANIF
为每个 VLAN 创建一个三层虚拟接口:
text
VLAN 10 → 192.168.10.1/24
VLAN 20 → 192.168.20.1/24
VLAN 30 → 192.168.30.1/24
终端把对应虚拟接口的地址设置为默认网关。三层交换机在硬件中完成跨 VLAN 路由,适合园区网。
- Cisco 常称为 SVI(Switch Virtual Interface) ,命令形式为
interface vlan 10; - 华为常称为 VLANIF 接口 ,命令形式为
interface Vlanif 10。
方案 B:单臂路由(Router-on-a-Stick)
二层交换机与路由器之间建立 Trunk,路由器在一个物理接口上创建多个 802.1Q 子接口,每个子接口对应一个 VLAN。
该方案适合实验或规模较小的网络,但多个 VLAN 共用一条物理链路,性能和可靠性通常不如三层交换机方案。
Cisco 官方文档也将 SVI 作为 Catalyst 三层交换机进行跨 VLAN 路由的常用方式,并指出 SVI 地址可作为相应 VLAN 的默认网关。参见文末参考资料。
5. 基础配置命令
下面先用单个端口演示基本操作。示例接口名仅供参考。
5.1 华为 VRP:创建 VLAN 与配置 Access 端口
text
<SW1> system-view
[SW1] sysname SW-ACC
[SW-ACC] vlan batch 10 20 30 99
[SW-ACC] interface GigabitEthernet 0/0/1
[SW-ACC-GigabitEthernet0/0/1] port link-type access
[SW-ACC-GigabitEthernet0/0/1] port default vlan 10
[SW-ACC-GigabitEthernet0/0/1] quit
命令含义:
vlan batch 10 20 30 99:批量创建 VLAN;port link-type access:把接口设置为 Access;Port default vlan 10:把无标签用户流量归入 VLAN 10。
5.2 华为 VRP:配置 Trunk
text
[SW-ACC] interface GigabitEthernet 0/0/24
[SW-ACC-GigabitEthernet0/0/24] port link-type trunk
[SW-ACC-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30 99
[SW-ACC-GigabitEthernet0/0/24] quit
port trunk allow-pass vlan 指定 Trunk 允许通过的 VLAN。若 VLAN 未加入允许列表,即使交换机上已经创建该 VLAN,其流量也不能通过这条 Trunk。
5.3 华为 VRP:创建 VLANIF 网关
以下配置在支持三层功能的交换机上执行:
text
[SW-CORE] vlan batch 10 20 30 99
[SW-CORE] interface Vlanif 10
[SW-CORE-Vlanif10] ip address 192.168.10.1 255.255.255.0
[SW-CORE-Vlanif10] quit
[SW-CORE] interface Vlanif 20
[SW-CORE-Vlanif20] ip address 192.168.20.1 255.255.255.0
[SW-CORE-Vlanif20] quit
[SW-CORE] interface Vlanif 30
[SW-CORE-Vlanif30] ip address 192.168.30.1 255.255.255.0
[SW-CORE-Vlanif30] quit
华为三层交换机通常可直接在已连接的 VLANIF 网段之间进行路由,无需 Cisco 风格的 ip routing 命令;具体以设备能力和当前配置为准。
5.4 Cisco IOS/IOS XE:创建 VLAN 与配置 Access 端口
text
SW1> enable
SW1# configure terminal
SW1(config)# hostname SW-ACC
SW-ACC(config)# vlan 10
SW-ACC(config-vlan)# name ADMIN
SW-ACC(config-vlan)# exit
SW-ACC(config)# interface GigabitEthernet0/1
SW-ACC(config-if)# switchport mode access
SW-ACC(config-if)# switchport access vlan 10
SW-ACC(config-if)# spanning-tree portfast
SW-ACC(config-if)# exit
命令含义:
switchport mode access:强制端口工作在 Access 模式;switchport access vlan 10:把端口加入 VLAN 10;spanning-tree portfast:适用于连接普通终端的边缘端口,可缩短终端等待时间;不要在交换机互联口上随意启用。
5.5 Cisco IOS/IOS XE:配置 Trunk
text
SW-ACC(config)# interface GigabitEthernet0/24
SW-ACC(config-if)# switchport mode trunk
SW-ACC(config-if)# switchport trunk allowed vlan 10,20,30,99
SW-ACC(config-if)# exit
某些旧型号需要先指定 switchport trunk encapsulation dot1q,而不少新型号只支持 802.1Q,因此没有该命令。请以设备命令帮助为准。
5.6 Cisco IOS/IOS XE:创建 SVI 网关
text
SW-CORE(config)# ip routing
SW-CORE(config)# interface Vlan10
SW-CORE(config-if)# ip address 192.168.10.1 255.255.255.0
SW-CORE(config-if)# no shutdown
SW-CORE(config-if)# exit
SW-CORE(config)# interface Vlan20
SW-CORE(config-if)# ip address 192.168.20.1 255.255.255.0
SW-CORE(config-if)# no shutdown
SW-CORE(config-if)# exit
SW-CORE(config)# interface Vlan30
SW-CORE(config-if)# ip address 192.168.30.1 255.255.255.0
SW-CORE(config-if)# no shutdown
SW-CORE(config-if)# exit
ip routing 用于在支持三层交换功能的 Cisco 设备上启用 IPv4 路由。若设备仅支持二层交换,则不能使用 SVI 完成多 VLAN 间路由。
6. 综合项目:小型公司 VLAN 网络
6.1 项目需求
某公司有一台三层核心交换机和一台接入交换机,要求:
- 行政部使用 VLAN 10;
- 研发部使用 VLAN 20;
- 访客使用 VLAN 30;
- 网络设备管理使用 VLAN 99;
- 各部门网关位于三层核心交换机;
- 核心交换机和接入交换机之间只用一条 Trunk;
- 同部门终端可通信;
- 行政和研发可以跨 VLAN 通信;
- 访客默认不应访问内部部门,需进一步使用 ACL 或防火墙限制。
6.2 项目拓扑

6.3 地址与端口规划
VLAN 与地址规划
| VLAN | 名称 | 子网 | 网关 | 用途 |
|---|---|---|---|---|
| 10 | ADMIN | 192.168.10.0/24 |
192.168.10.1 |
行政部 |
| 20 | RND | 192.168.20.0/24 |
192.168.20.1 |
研发部 |
| 30 | GUEST | 192.168.30.0/24 |
192.168.30.1 |
访客 |
| 99 | MGMT | 192.168.99.0/24 |
192.168.99.1 |
交换机管理 |
接入交换机端口规划
| 接口范围 | 模式 | VLAN | 连接对象 |
|---|---|---|---|
| Gi0/1~Gi0/8 | Access | 10 | 行政部终端 |
| Gi0/9~Gi0/20 | Access | 20 | 研发部终端 |
| Gi0/21~Gi0/23 | Access | 30 | 访客终端/AP |
| Gi0/24 | Trunk | 10,20,30,99 | 上联核心交换机 |
华为示例中把
Gi对应为GigabitEthernet 0/0/x。Cisco 示例中使用GigabitEthernet0/x。请按实际设备修改。
6.4 实施顺序
推荐按以下顺序实施,便于逐层验证:
- 规划 VLAN、地址、端口和管理网段;
- 在两台交换机上创建全部 VLAN;
- 配置接入交换机的 Access 端口;
- 配置两端 Trunk,并核对允许 VLAN;
- 在核心交换机上创建 SVI/VLANIF 网关;
- 配置接入交换机管理地址;
- 配置终端 IP、掩码和默认网关;
- 先测同 VLAN,再测网关,最后测跨 VLAN;
- 根据安全需求增加 ACL、防火墙或准入控制。
6.5 华为 VRP 完整示例
接入交换机 SW-ACC
text
<Huawei> system-view
[Huawei] sysname SW-ACC
[SW-ACC] vlan batch 10 20 30 99
# 行政部:GE0/0/1~GE0/0/8
[SW-ACC] port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/8
[SW-ACC-port-group] port link-type access
[SW-ACC-port-group] port default vlan 10
[SW-ACC-port-group] quit
# 研发部:GE0/0/9~GE0/0/20
[SW-ACC] port-group group-member GigabitEthernet 0/0/9 to GigabitEthernet 0/0/20
[SW-ACC-port-group] port link-type access
[SW-ACC-port-group] port default vlan 20
[SW-ACC-port-group] quit
# 访客:GE0/0/21~GE0/0/23
[SW-ACC] port-group group-member GigabitEthernet 0/0/21 to GigabitEthernet 0/0/23
[SW-ACC-port-group] port link-type access
[SW-ACC-port-group] port default vlan 30
[SW-ACC-port-group] quit
# 上联核心交换机
[SW-ACC] interface GigabitEthernet 0/0/24
[SW-ACC-GigabitEthernet0/0/24] port link-type trunk
[SW-ACC-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30 99
[SW-ACC-GigabitEthernet0/0/24] quit
# 接入交换机管理地址
[SW-ACC] interface Vlanif 99
[SW-ACC-Vlanif99] ip address 192.168.99.2 255.255.255.0
[SW-ACC-Vlanif99] quit
[SW-ACC] ip route-static 0.0.0.0 0.0.0.0 192.168.99.1
[SW-ACC] save
port-group批量接口语法可能因 VRP 版本存在差异。如果设备不接受范围命令,请逐个进入接口配置,或使用设备支持的interface range方式。
核心三层交换机 SW-CORE
text
<Huawei> system-view
[Huawei] sysname SW-CORE
[SW-CORE] vlan batch 10 20 30 99
# 下联接入交换机
[SW-CORE] interface GigabitEthernet 1/0/1
[SW-CORE-GigabitEthernet1/0/1] port link-type trunk
[SW-CORE-GigabitEthernet1/0/1] port trunk allow-pass vlan 10 20 30 99
[SW-CORE-GigabitEthernet1/0/1] quit
# 各 VLAN 的三层网关
[SW-CORE] interface Vlanif 10
[SW-CORE-Vlanif10] ip address 192.168.10.1 255.255.255.0
[SW-CORE-Vlanif10] quit
[SW-CORE] interface Vlanif 20
[SW-CORE-Vlanif20] ip address 192.168.20.1 255.255.255.0
[SW-CORE-Vlanif20] quit
[SW-CORE] interface Vlanif 30
[SW-CORE-Vlanif30] ip address 192.168.30.1 255.255.255.0
[SW-CORE-Vlanif30] quit
[SW-CORE] interface Vlanif 99
[SW-CORE-Vlanif99] ip address 192.168.99.1 255.255.255.0
[SW-CORE-Vlanif99] quit
[SW-CORE] save
6.6 Cisco IOS/IOS XE 完整示例
接入交换机 SW-ACC
text
Switch> enable
Switch# configure terminal
Switch(config)# hostname SW-ACC
SW-ACC(config)# vlan 10
SW-ACC(config-vlan)# name ADMIN
SW-ACC(config-vlan)# exit
SW-ACC(config)# vlan 20
SW-ACC(config-vlan)# name RND
SW-ACC(config-vlan)# exit
SW-ACC(config)# vlan 30
SW-ACC(config-vlan)# name GUEST
SW-ACC(config-vlan)# exit
SW-ACC(config)# vlan 99
SW-ACC(config-vlan)# name MGMT
SW-ACC(config-vlan)# exit
SW-ACC(config)# interface range GigabitEthernet0/1-8
SW-ACC(config-if-range)# switchport mode access
SW-ACC(config-if-range)# switchport access vlan 10
SW-ACC(config-if-range)# spanning-tree portfast
SW-ACC(config-if-range)# exit
SW-ACC(config)# interface range GigabitEthernet0/9-20
SW-ACC(config-if-range)# switchport mode access
SW-ACC(config-if-range)# switchport access vlan 20
SW-ACC(config-if-range)# spanning-tree portfast
SW-ACC(config-if-range)# exit
SW-ACC(config)# interface range GigabitEthernet0/21-23
SW-ACC(config-if-range)# switchport mode access
SW-ACC(config-if-range)# switchport access vlan 30
SW-ACC(config-if-range)# spanning-tree portfast
SW-ACC(config-if-range)# exit
SW-ACC(config)# interface GigabitEthernet0/24
SW-ACC(config-if)# switchport mode trunk
SW-ACC(config-if)# switchport trunk allowed vlan 10,20,30,99
SW-ACC(config-if)# exit
SW-ACC(config)# interface Vlan99
SW-ACC(config-if)# ip address 192.168.99.2 255.255.255.0
SW-ACC(config-if)# no shutdown
SW-ACC(config-if)# exit
SW-ACC(config)# ip default-gateway 192.168.99.1
SW-ACC(config)# end
SW-ACC# copy running-config startup-config
核心三层交换机 SW-CORE
text
Switch> enable
Switch# configure terminal
Switch(config)# hostname SW-CORE
SW-CORE(config)# vlan 10
SW-CORE(config-vlan)# name ADMIN
SW-CORE(config-vlan)# exit
SW-CORE(config)# vlan 20
SW-CORE(config-vlan)# name RND
SW-CORE(config-vlan)# exit
SW-CORE(config)# vlan 30
SW-CORE(config-vlan)# name GUEST
SW-CORE(config-vlan)# exit
SW-CORE(config)# vlan 99
SW-CORE(config-vlan)# name MGMT
SW-CORE(config-vlan)# exit
SW-CORE(config)# interface GigabitEthernet1/0/1
SW-CORE(config-if)# switchport mode trunk
SW-CORE(config-if)# switchport trunk allowed vlan 10,20,30,99
SW-CORE(config-if)# exit
SW-CORE(config)# ip routing
SW-CORE(config)# interface Vlan10
SW-CORE(config-if)# ip address 192.168.10.1 255.255.255.0
SW-CORE(config-if)# no shutdown
SW-CORE(config-if)# exit
SW-CORE(config)# interface Vlan20
SW-CORE(config-if)# ip address 192.168.20.1 255.255.255.0
SW-CORE(config-if)# no shutdown
SW-CORE(config-if)# exit
SW-CORE(config)# interface Vlan30
SW-CORE(config-if)# ip address 192.168.30.1 255.255.255.0
SW-CORE(config-if)# no shutdown
SW-CORE(config-if)# exit
SW-CORE(config)# interface Vlan99
SW-CORE(config-if)# ip address 192.168.99.1 255.255.255.0
SW-CORE(config-if)# no shutdown
SW-CORE(config-if)# exit
SW-CORE(config)# end
SW-CORE# copy running-config startup-config
6.7 终端配置示例
| 终端 | 所属 VLAN | IP 地址 | 子网掩码 | 默认网关 |
|---|---|---|---|---|
| 行政 PC-A | 10 | 192.168.10.10 |
255.255.255.0 |
192.168.10.1 |
| 研发 PC-B | 20 | 192.168.20.10 |
255.255.255.0 |
192.168.20.1 |
| 访客 PC-C | 30 | 192.168.30.10 |
255.255.255.0 |
192.168.30.1 |
若终端地址由 DHCP 分配,则应为每个 VLAN 配置对应地址池,并确保 DHCP 服务器可接收该 VLAN 的请求。DHCP 中继属于后续知识,本教程不展开。
6.8 访客 VLAN 的访问控制提醒
完成 SVI/VLANIF 配置后,三层交换机通常会对各直连 VLAN 进行路由,这意味着访客 VLAN 30 可能也能访问行政和研发网段。
因此,生产环境必须进一步实施策略,例如:
- 在 VLAN 30 的三层入口应用 ACL,拒绝访问内部网段;
- 允许访客访问 DHCP、DNS 和互联网所需服务;
- 更严格的场景应把访客流量交给防火墙处理;
- ACL 规则顺序非常重要,实施前应明确源、目的和业务端口。
本教程不直接给出可复制到生产环境的通用 ACL,因为真实策略必须根据 DNS、DHCP、服务器网段和出口架构定制。
7. 验证与故障排查
7.1 正确的测试顺序
不要一开始就测试最远端。建议从近到远逐层验证:
- 检查端口物理状态是否 Up;
- 检查 VLAN 是否已经创建;
- 检查终端端口是否属于正确 VLAN;
- 检查 Trunk 两端模式和允许 VLAN 是否一致;
- 检查 SVI/VLANIF 是否 Up、IP 是否正确;
- 终端先 Ping 自己的默认网关;
- 再 Ping 同 VLAN 终端;
- 最后 Ping 其他 VLAN 或外部网络;
- 若路由可达但业务不可用,再检查 ACL、防火墙、DNS 和服务器服务。
7.2 华为常用验证命令
text
display vlan
display port vlan
display interface brief
display ip interface brief
display mac-address vlan 10
display ip routing-table protocol direct
display current-configuration interface GigabitEthernet 0/0/24
ping 192.168.10.10
重点观察:
- VLAN 是否存在;
- Access 端口的 PVID 是否正确;
- Trunk 是否允许 VLAN 10、20、30、99;
- VLANIF 的物理/协议状态是否正常;
- MAC 地址是否在预期的 VLAN 和端口上被学习?
7.3 Cisco 常用验证命令
text
show vlan brief
show interfaces trunk
show interfaces GigabitEthernet0/1 switchport
show ip interface brief
show mac address-table dynamic vlan 10
show ip route connected
show running-config interface GigabitEthernet0/24
ping 192.168.10.10
7.4 常见故障对照表
| 现象 | 常见原因 | 排查重点 |
|---|---|---|
| 同一交换机、同一 VLAN 也不通 | IP/掩码错误、端口 VLAN 错、主机防火墙、链路 Down | 端口状态、Access VLAN、ARP、MAC 表 |
| 同 VLAN 跨交换机不通 | Trunk 未建立或未允许该 VLAN | 两端 Trunk 模式与 allowed VLAN |
| 能通同 VLAN,不能通网关 | SVI/VLANIF Down、网关地址错误、VLAN 未激活 | 三层接口状态、终端默认网关 |
| 能 Ping 网关,不能跨 VLAN | 未启用三层路由、ACL 拒绝、目标网关错误 | 路由表、ip routing、ACL |
| 只有某个 VLAN 过不了 Trunk | 该 VLAN 未加入允许列表或一端未创建 | 两端 VLAN 数据库、Trunk allow list |
| 管理地址只能本地访问 | 管理 VLAN 未通过 Trunk、缺少默认路由/网关 | VLAN 99、管理 SVI、默认路由 |
| 通信时好时坏 | VLAN/PVID 不一致、环路、IP 冲突、链路错误 | STP、日志、ARP、MAC 地址漂移 |
7.5 SVI/VLANIF 为什么可能是 Down
常见原因包括:
- 对应 VLAN 尚未创建;
- 该 VLAN 没有任何处于 Up 状态的二层端口;
- Trunk 没有允许该 VLAN;
- 虚拟接口被手动关闭;
- 设备型号或许可不支持相应三层功能。
不同平台的 SVI/VLANIF Up 条件存在差异,应结合设备文档和状态输出判断。
8. 动手实验与复习题
8.1 推荐实验步骤
可以在 eNSP、Cisco Packet Tracer、EVE-NG、GNS3 或真实交换机上完成。
实验 1:验证同 VLAN 通信
- 创建 VLAN 10;
- 把两个 PC 端口加入 VLAN 10;
- 配置同一网段 IP;
- 验证两个 PC 可以互相 Ping;
- 查看交换机 MAC 地址表。
实验 2:验证 VLAN 隔离
- 把第二台 PC 的端口改到 VLAN 20;
- 即使临时把两台 PC 配到同一个 IP 网段,也应观察到二层隔离;
- 分析 ARP 广播为什么不能跨 VLAN。
实验 3:验证 Trunk
- 使用两台交换机;
- 在两端创建 VLAN 10 和 VLAN 20;
- 互联口配置 Trunk;
- 让两台交换机上的 VLAN 10 终端通信;
- 从 Trunk 允许列表删除 VLAN 10,观察通信变化;
- 恢复 VLAN 10 并重新验证。
实验 4:验证跨 VLAN 路由
- 为 VLAN 10 和 VLAN 20 创建 SVI/VLANIF;
- 给终端配置正确默认网关;
- 先 Ping 各自网关;
- 再 Ping 不同 VLAN 的终端;
- 查看三层交换机的直连路由。
8.2 复习题
- VLAN 解决的核心问题是什么?
- 为什么同一交换机上的不同 VLAN 默认不能直接通信?
- Access 和 Trunk 接口分别适合连接什么设备?
- 802.1Q 标签中的 VID 有多少位?
- 为什么 Trunk 两端的允许 VLAN 列表需要匹配?
- SVI/VLANIF 地址在终端配置中扮演什么角色?
- 开启跨 VLAN 路由后,访客 VLAN 是否天然不能访问内部 VLAN?
- 同 VLAN 跨交换机不通时,应优先检查哪些配置?
8.3 参考答案
- 把一个物理交换网络划分为多个逻辑广播域;
- 每个 VLAN 是独立的二层广播域,跨 VLAN 必须经过三层路由;
- Access 通常连接普通终端,Trunk 通常连接需要承载多个 VLAN 的网络设备;
- 12 位;
- 未被允许的 VLAN 无法通过该链路,不一致还会造成单向或局部故障;
- 作为该 VLAN 终端的默认网关;
- 不是。只要路由存在且没有策略阻止,访客可能访问内部 VLAN;
- VLAN 是否创建、Access VLAN 是否正确、Trunk 是否建立以及两端是否允许该 VLAN。
9. 总结
学习 VLAN 时应牢牢记住以下主线:
text
VLAN 划分广播域
↓
Access 端口把终端流量归入一个 VLAN
↓
Trunk 使用 802.1Q 在一条链路上传递多个 VLAN
↓
不同 VLAN 通过 SVI/VLANIF 或路由器进行三层通信
↓
ACL/防火墙决定跨 VLAN 的哪些访问被允许
最实用的排错思路是:先二层、后三层;先本地、后远端;先状态、后策略。