VLAN知识点
VLAN 知识详解
最后更新:2026/04/30
目录
- VLAN 定义
- 为什么需要 VLAN
- VLAN 的作用与优势
- VLAN 原理
- VLAN 的类型
- VLAN 的范围
- VLAN 的运作机制
- VLAN 间路由
- Trunk 与 Access 链路
- VLAN 配置示例
- 常见问题与排错
- VLAN 设计原则
1. VLAN 定义
VLAN = Virtual Local Area Network(虚拟局域网)
VLAN是一种在物理网络上逻辑划分出多个独立广播域的技术,属于二层(数据链路层)技术。
核心概念
| 概念 | 说明 |
|---|---|
| 虚拟 | 逻辑划分,不依赖物理布线 |
| 局域网 | 局限在本地网络环境 |
| 广播域 | 广播帧能够到达的范围 |
| 二层技术 | 工作在数据链路层(MAC地址) |
2. 为什么需要 VLAN
传统网络问题
未使用VLAN时,所有设备在同一广播域:
- 广播风暴影响整个网络
- 安全风险高,任何人可以监听
- 网络管理混乱
使用 VLAN 后
- 广播域被分割,每个VLAN独立
- 不同VLAN间默认不能通信
- 便于按部门/功能管理
3. VLAN 的作用与优势
| 作用 | 说明 |
|---|---|
| 广播域分割 | 减少广播风暴 |
| 提高安全性 | 不同VLAN间默认隔离 |
| 简化管理 | 按部门划分,便于管理 |
| 节约成本 | 无需额外路由器 |
| 灵活扩展 | 增删VLAN无需改物理布线 |
| STP优化 | 减少STP计算范围 |
4. VLAN 原理
802.1Q 标准
802.1Q通过插入4字节VLAN Tag来标识VLAN:
| 字段 | 长度 | 说明 |
|---|---|---|
| TPID | 2字节 | 0x8100,标识VLAN帧 |
| TCI | 2字节 | 包含优先级和VLAN ID |
| VID | 12位 | VLAN ID,范围1-4094 |
帧格式对比
普通帧:DA(6) + SA(6) + Type(2) + Data + FCS 802.1Q帧:DA(6) + SA(6) + TPID(2) + TCI(2) + Type(2) + Data + FCS5. VLAN 的类型
| 类型 | 说明 |
|---|---|
| Port-Based | 基于交换机端口,最常用 |
| MAC-Based | 基于设备MAC地址 |
| Protocol-Based | 基于网络层协议 |
| Subnet-Based | 基于IP子网,三层VLAN |
6. VLAN 的范围
| 范围 | 用途 |
|---|---|
| 0, 4095 | 保留 |
| 1 | 思科默认VLAN |
| 2-1001 | 正常范围 |
| 1002-1005 | FDDI/Token Ring保留 |
| 1006-4094 | 扩展范围 |
7. VLAN 的运作机制
同VLAN通信
- 交换机直接转发(二层)
- 无需路由器
不同VLAN通信
- 必须经过路由器/三层交换机
- 需要三层路由
8. VLAN 间路由
方式1:单臂路由
- 路由器一个物理口创建多个子接口
- 缺点:带宽瓶颈
方式2:三层交换机
- 交换机上配置SVI接口
- 优点:性能高
9. Trunk 与 Access 链路
| 类型 | 连接 | 特征 |
|---|---|---|
| Access | 交换机↔终端 | 传输单一VLAN,帧无Tag |
| Trunk | 交换机↔交换机 | 传输多VLAN,帧有Tag |
Native VLAN
- 默认为VLAN 1
- 建议改为其他VLAN提高安全性
10. VLAN 配置示例
华为
vlan batch1020interface GigabitEthernet0/0/1 port link-type access port default vlan10interface Vlanif10ipaddress192.168.10.254255.255.255.0思科
vlan10interface FastEthernet0/1 switchport mode access switchport access vlan10interface VLAN10ipaddress192.168.10.254255.255.255.011. 常见问题与排错
| 问题 | 检查项 |
|---|---|
| VLAN间不通 | 网关/SVI/ACL/Trunk |
| 同VLAN不通 | IP地址/MAC表/STP/物理连接 |
12. VLAN 设计原则
核心原则:每个VLAN对应一个子网
VLAN 10 → 192.168.10.0/24 VLAN 20 → 192.168.20.0/24Super VLAN
- 多个Sub VLAN聚合为一个逻辑VLAN
- Sub VLAN间二层隔离,三层互通
MUX VLAN
- Principal VLAN:可与所有VLAN通信
- Separate VLAN:同VLAN内完全隔离
- Group VLAN:同VLAN内可互通
13. Access 与 Trunk 深度解析
核心问题
为什么需要两种端口类型?
因为交换机连接的对象不同:
- 连接终端设备(PC、服务器)→ 终端不认识VLAN Tag → 用 Access
- 连接网络设备(交换机、路由器)→ 需要识别多个VLAN → 用 Trunk
Access 端口详解
定义
交换机连接终端设备的端口,只传输一个VLAN的数据。
工作机制
数据进入交换机(接收)
PC1 发送普通以太网帧(无VLAN Tag): DA + SA + Type + Data 交换机收到后: 1. 打上该端口的 PVID(默认VLAN 1) 2. 在 MAC 表中记录:MAC地址 + Port + VLAN ID 3. 在对应 VLAN 中转发数据离开交换机(发送)
交换机转发数据帧到 PC: 1. 检查目标 MAC 地址,确定出端口 2. **剥离 VLAN Tag**,还原为普通以太网帧 3. 从 Access 端口发出 PC 收到:DA + SA + Type + Data(无Tag)Access 端口图解
Access Port (VLAN 10) ──────────────────── PC ──────── [无Tag帧] ────────► 交换机 │ │ 内部处理 ▼ ┌──────────────┐ │ 打上 VLAN 10 │ └──────────────┘ │ ▼ ┌──────────────┐ │ 查 MAC 表 │ │ VLAN 10 │ └──────────────┘ │ ▼ ┌──────────────┐ │ 剥离 VLAN Tag│ ← 关键:出方向剥Tag └──────────────┘ │ ▼ PC ◄──────── [无Tag帧] ◄──────── 交换机Trunk 端口详解
定义
交换机之间连接的端口,可以传输多个VLAN的数据,帧会打上 VLAN Tag。
工作机制
数据进入交换机(接收)
SW1 发来带 VLAN Tag 的帧: DA + SA + 0x8100 + VLAN 10 + Type + Data 交换机收到后: 1. 检查 VLAN Tag 的合法性(是否在 allowed-vlan 列表) 2. 在 MAC 表中记录:MAC + Port + VLAN ID(来自Tag) 3. 在对应 VLAN 中转发数据离开交换机(发送)
转发到另一台交换机: 1. 检查 MAC 表,确定出端口是 Trunk 2. **保持 VLAN Tag 不变**(不剥离) 3. 从 Trunk 端口发出 SW2 收到:DA + SA + 0x8100 + VLAN 10 + Type + Data(带Tag)Trunk 端口图解
Trunk Port (允许VLAN 10,20,30) ───────────────────────────── SW1 ──────── [VLAN 10] ────────► SW2 [VLAN 20] ◄─────── [VLAN 20] [VLAN 30] ────────► [VLAN 30] 帧格式变化: SW1发出:DA+SA+0x8100+VID+Type+Data+CRC ← 保持Tag SW2收到:DA+SA+0x8100+VID+Type+Data+CRC ← 识别VLAN SW2转发:DA+SA+0x8100+VID+Type+Data+CRC ← 保持Tag关键区别表
| 特性 | Access | Trunk |
|---|---|---|
| 连接对象 | PC、服务器、打印机 | 交换机、路由器 |
| VLAN数量 | 1个 | 多个 |
| 帧格式(进) | 无Tag → 打Tag | 带Tag → 识别Tag |
| 帧格式(出) | 剥Tag → 无Tag | 保持Tag |
| 典型应用 | 接入层端口 | 汇聚/核心层链路 |
VLAN Tag 的生命周期
PC1 (VLAN 10) ──► SW1 ──► SW2 ──► SW3 ──► PC2 (VLAN 10) PC1 ──► SW1 (Access Port) 帧:[无Tag] 操作:打上 VLAN 10 Tag 结果:[Tag=VLAN 10] SW1 ──► SW2 (Trunk Port) 帧:[Tag=VLAN 10] ← 保持Tag 操作:检查 allowed-vlan,转发 结果:[Tag=VLAN 10] SW2 ──► SW3 (Trunk Port) 帧:[Tag=VLAN 10] ← 保持Tag 操作:检查 allowed-vlan,转发 结果:[Tag=VLAN 10] SW3 ──► PC2 (Access Port) 帧:[Tag=VLAN 10] 操作:剥离 VLAN Tag 结果:[无Tag] ← PC只收到普通帧PVID 与 VID
| 概念 | 说明 |
|---|---|
| VID | VLAN ID,数据帧携带的标签,标识数据属于哪个VLAN |
| PVID | Port VLAN ID,端口的默认VLAN ID,收到无Tag帧时打上此Tag |
常见问题
Q1:PC能不能识别VLAN Tag?
不能。普通PC网卡和操作系统不处理802.1Q Tag,收到带Tag的帧会丢弃。
这就是为什么Access端口要剥Tag。
Q2:为什么交换机之间不用Access连接?
假设 SW1 的 Port1 是 Access VLAN 10 假设 SW2 的 Port1 是 Access VLAN 10 问题: 1. SW1 的 VLAN 10 数据从 Port1 发出时剥离 Tag 2. SW2 收到无Tag帧,认为是默认VLAN(通常是1) 3. 无法正确传递 VLAN 信息 所以交换机之间必须用 Trunk!记忆口诀
Access(接入): "一进一出,剥我Tag" 收:无Tag → 打PVID 发:带Tag → 剥Tag Trunk(干道): "一进一出,保我Tag" 收:带Tag → 识VID 发:带Tag → 保Tag 连PC → Access 连交换机 → Trunk