VLAN 技术详解
VLAN 技术详解
一、VLAN 概述
1.1 VLAN 定义
VLAN(Virtual Local Area Network,虚拟局域网)是将一个物理 LAN 在逻辑上划分为多个相互隔离的广播域的技术。每个 VLAN 是一个独立的广播域,不同 VLAN 之间二层隔离,需要通过三层设备(路由器或三层交换机)实现互通。
1.2 VLAN 优势
- 隔离广播域:广播报文被限制在单个 VLAN 内部,减少广播风暴风险
- 提高安全性:不同 VLAN 间二层隔离,需三层路由才能互通,可配合 ACL 控制
- 简化管理:同一 VLAN 内的主机可以分布在不同物理位置,方便灵活组网
- 节省成本:无需额外硬件即可实现网络隔离
1.3 VLAN 范围
| VLAN ID | 范围 | 用途 |
|---|---|---|
| 0, 4095 | 保留 | 系统使用,不可配 |
| 1 | 默认 | 所有接口默认属于 VLAN 1 |
| 2 - 1001 | 标准范围 | 常规使用 |
| 1002 - 1005 | 保留 | FDDI/Token Ring |
| 1006 - 4094 | 扩展范围 | VTP 透明模式下可用(华为默认支持) |
1.4 IEEE 802.1Q 标签
802.1Q Tag(VLAN Tag)插入在源 MAC 和 Type 字段之间,共 4 字节:
| 字段 | TPID | PCP | DEI/CFI | VID |
|---|---|---|---|---|
| 长度 | 16bit | 3bit | 1bit | 12bit |
| 值 | 0x8100 | 优先级 | 丢弃指示 | VLAN ID |
二、VLAN 接口类型 🏷️高频考点
2.1 四种接口类型对比
| 接口类型 | 接收带Tag报文 | 接收不带Tag报文 | 发送报文 | 典型场景 |
|---|---|---|---|---|
| Access | 仅允许该VLAN的Tag | 打上PVID | 剥离Tag | 连接终端(PC、服务器) |
| Trunk | 允许多VLAN的Tag | 打上PVID | PVID=vlan则剥离Tag,否则保留Tag | 交换机间互联 |
| Hybrid | 允许多VLAN的Tag | 打上PVID | 可独立配置剥离/保留Tag | 灵活场景(终端/交换机) |
| QinQ | 在原有Tag外再封装一层外层Tag | 打上外层PVID | 携带双层Tag | 运营商网络 |
2.2 Access 接口
收方向:
- 收到不带 Tag 的报文 → 打上 PVID(本接口 Access VLAN),转发
- 收到带 Tag 的报文 → 检查 VLAN ID 是否等于 PVID,是则接收,否则丢弃
发方向:
- 剥离 VLAN Tag,以不带 Tag 的形式发送
Access 接口只属于一个 VLAN,报文只能在该 VLAN 内转发。
2.3 Trunk 接口
收方向:
- 收到不带 Tag 的报文 → 打上 PVID,检查 PVID 是否在允许通过的 VLAN 列表中,是则转发
- 收到带 Tag 的报文 → 检查 VLAN ID 是否在允许通过的 VLAN 列表中,是则接收
发方向:
- VLAN ID = PVID → 剥离 Tag 发送
- VLAN ID ≠ PVID → 保留 Tag 发送
PVID(Port VLAN ID): 接口在 VLAN 内的默认 VLAN ID。Trunk 口默认 PVID = 1。
Native VLAN(本征VLAN): Trunk 接口 PVID 的别称,两端 PVID 需一致,否则出现 VLAN 跳跃。
2.4 Hybrid 接口
最灵活的接口类型,可以像 Access 一样连接终端,也可以像 Trunk 一样连接交换机。
收方向:
- 收到不带 Tag 的报文 → 打上 PVID
- 收到带 Tag 的报文 → 检查 VLAN 是否允许通过
发方向:
- 通过
port hybrid tagged vlan/port hybrid untagged vlan命令独立控制每个 VLAN 发送时是否带 Tag
Hybrid 接口可以实现:同一接口下,部分 VLAN 带 Tag,部分 VLAN 不带 Tag。
2.5 QinQ(双层 Tag)接口
- 收到带 Tag 报文 → 外层再封装一个 Tag(外 VLAN Tag + 内 VLAN Tag)
- 外 VLAN Tag(S-VLAN = Service VLAN)用于运营商转发
- 内 VLAN Tag(C-VLAN = Customer VLAN)为用户私有 VLAN
- 实现用户 VLAN 透明传输
三、VLAN 划分方式
| 划分方式 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 基于接口 | 根据接口划分 | 配置简单,最常用 | 主机移动需改配置 |
| 基于MAC地址 | 根据MAC划VLAN | 主机移动自动识别 | 网卡更换需重新配置 |
| 基于协议 | 根据IP/ARP/RARP等划分 | 适应多协议环境 | 效率较低 |
| 基于IP子网 | 根据IP子网划分 | 灵活性高 | 需检查IP,性能开销 |
| 基于策略 | 结合MAC+IP划分 | 安全性高 | 配置复杂 |
四、VLAN 聚合(Super-VLAN) 🏷️高频考点
4.1 原理
Super-VLAN(VLAN 聚合)将多个 Sub-VLAN 聚合为一个 Super-VLAN:
- Super-VLAN:仅包含三层接口(VLANIF),不包含物理端口,作为所有 Sub-VLAN 的共享网关
- Sub-VLAN:包含物理端口,用于连接用户。Sub-VLAN 之间二层隔离
- 不同 Sub-VLAN 的主机通过 ARP 代理实现三层互通
Super-VLAN 100 (VLANIF 100: 192.168.1.254/24) ├── Sub-VLAN 10(用户组A) ├── Sub-VLAN 20(用户组B) └── Sub-VLAN 30(用户组C)4.2 核心优势
- 节省 IP 地址:所有 Sub-VLAN 共用一个网关 IP(Super-VLAN 的 VLANIF),无需每个子 VLAN 单独配置网关
- 二层隔离 + 三层互通:Sub-VLAN 间二层天然隔离,通过 ARP 代理实现受控的三层通信
4.3 配置命令
# 创建 Super-VLANvlan 100 aggregate-vlan # 配置为 Super-VLAN access-vlan 10 20 30 # 添加 Sub-VLAN quit
# Super-VLAN 的三层接口interface Vlanif 100 ip address 192.168.1.254 255.255.255.0 arp-proxy inter-sub-vlan-proxy enable # 开启Sub-VLAN间ARP代理 quit
# Sub-VLAN 仅包含二层端口vlan 10 quitvlan 20 quitvlan 30 quit五、MUX VLAN 🏷️高频考点
5.1 概念
MUX VLAN(Multiplex VLAN)提供了一种通过一个 VLAN 实现多种接口隔离需求的机制。
- Principal VLAN(主VLAN):与所有从 VLAN 互通
- Group VLAN(互通型从VLAN):组内成员互通,可与主 VLAN 通信
- Separate VLAN(隔离型从VLAN):组内成员完全隔离,仅可与主 VLAN 通信
5.2 MUX VLAN 结构图
注:虚线红色表示隔离型 VLAN 内 VLAN 间二层不通
5.3 配置命令
# 创建 MUX VLANvlan 10 mux-vlan # 配置为主VLAN subordinate group 20 # 添加互通型从VLAN subordinate separate 30 # 添加隔离型从VLAN quit
# 接口加入VLANinterface GigabitEthernet0/0/1 port link-type access port default vlan 10 port mux-vlan enable # 启用MUX VLAN quit
interface GigabitEthernet0/0/2 port link-type access port default vlan 20 port mux-vlan enable quit六、QinQ 技术 🏷️高频考点
6.1 基本 QinQ(802.1Q-in-802.1Q)
在用户原始 VLAN Tag(C-VLAN)外层再封装一个运营商 VLAN Tag(S-VLAN):
基本QinQ报文结构:┌─────────┬─────────┬──────────────┬───────────┬─────────┬──────┐│ DMAC │ SMAC │ 外Tag(S-VLAN)│ 内Tag(C-VLAN) │ Type │ Payload│└─────────┴─────────┴──────────────┴───────────┴─────────┴──────┘ ↑ 0x8100, S-VLAN ID ↑ 0x8100, C-VLAN ID- 配置简单:所有用户 VLAN 统一封装为同一个外层 VLAN
- 缺点:无法区分不同用户 VLAN
6.2 灵活 QinQ(VLAN Mapping)
根据内层 VLAN ID 或优先级等信息,映射到不同的外层 VLAN:
| 映射方式 | 说明 |
|---|---|
| 基于内层VLAN映射 | VLAN 100 → S-VLAN 1000, VLAN 200 → S-VLAN 2000 |
| 基于内层优先级映射 | 优先级 0-3 → S-VLAN 1000, 4-7 → S-VLAN 2000 |
| 基于流策略映射 | 根据 ACL 匹配条件灵活映射 |
6.3 应用场景
- 运营商城域网:用户 VLAN 透传,不同用户通过外层 VLAN 隔离
- 数据中心:租户间 VLAN 隔离
- 企业 VPN:分支机构 VLAN 二层透明传输
6.4 配置命令
# 基本QinQ配置interface GigabitEthernet0/0/1 port link-type dot1q-tunnel port default vlan 100 # 外层VLAN quit
# 灵活QinQ配置interface GigabitEthernet0/0/1 port link-type hybrid qinq vlan-translation enable port vlan-mapping vlan 100 map-vlan 1000 # 内层VLAN 100 → 外层VLAN 1000 port vlan-mapping vlan 200 map-vlan 2000 # 内层VLAN 200 → 外层VLAN 2000 quit
# 查看QinQ配置display port vlandisplay qinq information七、GVRP(GARP VLAN Registration Protocol)
7.1 协议概述
GVRP 基于 GARP(Generic Attribute Registration Protocol),用于 VLAN 属性的自动注册和注销,实现 VLAN 的自动分发。
7.2 消息类型
- Join 消息:注册 VLAN 属性
- Leave 消息:注销 VLAN 属性
- LeaveAll 消息:触发全网重新注册
7.3 注册模式
| 模式 | 行为 |
|---|---|
| Normal | 动态注册/注销 VLAN,传播动态和静态 VLAN |
| Fixed | 不动态注册,不注销静态 VLAN,传播静态 VLAN |
| Forbidden | 不注册任何 VLAN,不通告除 VLAN 1 外的任何 VLAN |
7.4 配置命令
# 全局开启 GVRPgvrp
# 接口开启 GVRPinterface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan all gvrp gvrp registration normal # 设置注册模式 quit八、华为设备配置命令示例
8.1 创建 VLAN
# 单个创建vlan 10 description "研发部VLAN" quit
# 批量创建vlan batch 10 20 30vlan batch 100 to 2008.2 Access 接口配置
interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit8.3 Trunk 接口配置
interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 30 # 允许通过的VLAN port trunk pvid vlan 10 # 设置PVID undo port trunk allow-pass vlan 1 # 删除默认VLAN quit8.4 Hybrid 接口配置
interface GigabitEthernet0/0/1 port link-type hybrid port hybrid pvid vlan 10 port hybrid untagged vlan 10 20 # 发送时剥离Tag port hybrid tagged vlan 30 40 # 发送时保留Tag quit8.5 VLAN 聚合配置
vlan 100 aggregate-vlan access-vlan 10 20 30 quit
interface Vlanif 100 ip address 10.1.1.254 255.255.255.0 arp-proxy inter-sub-vlan-proxy enable quit8.6 MUX VLAN 配置
vlan 10 mux-vlan subordinate group 20 subordinate separate 30 quit
interface GigabitEthernet0/0/1 port link-type access port default vlan 10 port mux-vlan enable quit8.7 QinQ 配置
# 基本QinQinterface GigabitEthernet0/0/1 port link-type dot1q-tunnel port default vlan 100 quit
# 灵活QinQinterface GigabitEthernet0/0/1 port link-type hybrid qinq vlan-translation enable port vlan-mapping vlan 100 map-vlan 1000 quit九、常见故障排查
9.1 VLAN 间无法通信
| 故障现象 | 可能原因 | 排查方法 |
|---|---|---|
| 同VLAN跨交换机不通 | Trunk 口未放行该 VLAN | display port vlan 查看 |
| 不同VLAN不通 | 未配置 VLANIF 网关 | display ip interface brief |
| 部分VLAN不通 | Trunk PVID 不一致 | display interface trunk |
| VLAN聚合不通 | ARP 代理未开启 | display arp-proxy |
9.2 Trunk 链路 VLAN 不通
# 检查接口允许的 VLANdisplay port vlan
# 检查 Trunk 接口信息display port vlan active
# 检查 PVID(Native VLAN)display interface GigabitEthernet0/0/1
# 查看 VLAN 信息display vlan 109.3 常用诊断命令
display vlan # 查看所有 VLANdisplay vlan 10 verbose # 查看 VLAN 10 详细信息display port vlan # 查看接口 VLAN 信息display interface brief # 接口简要信息display current-configuration interface GigabitEthernet0/0/1关键知识点总结:
- Access = 单VLAN,Untagged 收发
- Trunk = 多VLAN,PVID 剥离 Tag,其他保留
- Hybrid = 最灵活,发送 Tag/Untag 独立控制
- Super-VLAN = 共享网关,节省 IP
- MUX VLAN = 组内隔离/互通 + 主VLAN
- QinQ = 双层 Tag,运营商场景
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!



