VLAN简介
·
一、VLAN基础
1.1 什么是VLAN?
VLAN(Virtual Local Area Network),即虚拟局域网,是一种将物理上的局域网(LAN)在逻辑上划分成多个独立广播域的通信技术。它允许网络管理员将处于不同物理位置的设备,按照功能、部门或项目等逻辑进行分组,使其如同连接在同一个物理网段中一样通信。
1.2 为什么需要VLAN?
早期的以太网基于CSMA/CD机制,所有设备共享一个通信介质。随着网络规模扩大,带来了严重问题,而VLAN正是为了解决这些问题而生:
| 痛点 | 问题描述 | VLAN的解决方案 |
|---|---|---|
| 广播泛滥 | 一个设备发送的广播帧会被交换机泛洪到全网,严重消耗带宽和CPU资源。 | 将网络划分为多个VLAN,每个VLAN就是一个独立的广播域。广播帧被限制在所属VLAN内,有效提升了网络性能。 |
| 安全薄弱 | 在同一广播域内,任何设备都可能收到或发起针对所有设备的攻击,如ARP欺骗。 | 不同VLAN间的设备在二层(数据链路层)是相互隔离的,无法直接通信,大大增强了网络的安全性。 |
| 管理困难 | 用户或部门物理位置变动时,需要重新布线和配置网络,灵活性差。 | 用户可以不受物理位置限制,根据其逻辑属性(如部门)划分到同一个VLAN,极大简化了网络管理和维护。 |
1.3 VLAN的四大受益
- 限制广播域:节省带宽,提高网络处理能力。
- 增强局域网安全性:不同VLAN间的用户不能直接二层通信。
- 提高网络健壮性:故障被限制在一个VLAN内,不会影响其他VLAN。
- 灵活构建虚拟工作组:网络构建和维护更方便灵活。
二、VLAN的工作原理与帧结构
2.1 VLAN的“身份证”:IEEE 802.1Q标签
要让交换机识别一个数据帧属于哪个VLAN,就必须在以太网帧中插入一个“VLAN标签”。这个标准由IEEE 802.1Q定义。
标签插入位置:在以太网帧的“源MAC地址”和“协议类型”字段之间,插入4个字节(32位) 的VLAN标签。
802.1Q标签结构详解:
- TPID(标签协议标识符):16位,固定值为
0x8100,用于标识该帧携带了VLAN标签。 - TCI(标签控制信息):16位,包含三个子字段:
- Priority(优先级):3位,用于QoS(服务质量),定义数据帧的优先级(0-7)。
- CFI(规范格式指示器):1位,用于兼容不同类型的网络,以太网中通常为0。
- VID(VLAN标识符):12位,这是VLAN的核心标识。取值范围为 1 ~ 4094,其中0和4095保留。

交换机利用VLAN标签中的VID来识别数据帧所属的VLAN,广播帧只在同一VLAN内转发,这就将广播域限制在一个VLAN内。
2.2 交换机的内部处理流程
交换机处理VLAN数据帧遵循一套严格的逻辑:
- 接收(Ingress):从端口收到数据帧,检查是否带标签。若无标签,则打上该端口的PVID(端口默认VLAN ID);若有标签,则读取其VID。
- 转发(Forwarding):交换机查询MAC地址表,并结合VID进行转发。帧只能在同一个VID的端口间转发。
- 发送(Egress):根据出端口的类型,决定是否剥离标签再发送。
三、VLAN的三种端口类型
主流交换机端口分为Access、Trunk和Hybrid三种类型。它们的核心区别在于允许通过的VLAN数量和对VLAN标签(Tag)的处理方式。
3.1 Access端口(接入端口)
- 核心用途:连接终端设备,如电脑、打印机、IP电话等。
- 核心特性:“专一”。一个Access端口只能属于一个VLAN,并只能传输该VLAN的流量。
- 标签处理规则:
- 接收数据:从终端收到无标签帧,打上端口PVID标签。若收到带标签帧(非本VLAN),则丢弃。
- 发送数据:向终端发送帧时,强制剥离VLAN标签,以确保终端能正常识别(终端无法解析标签)。
- 配置示例(华为):
system-view interface GigabitEthernet 0/0/1 port link-type access # 设置为Access模式 port default vlan 10 # 加入VLAN 10,同时PVID设为10 - 配置示例(思科):
configure terminal interface GigabitEthernet 0/1 switchport mode access # 设置为Access模式 switchport access vlan 10 # 加入VLAN 10
3.2 Trunk端口(干道端口)
- 核心用途:连接交换机与交换机,或交换机与路由器。
- 核心特性:“多车道”。一个Trunk端口可以同时承载多个VLAN的流量。
- 标签处理规则:
- 接收数据:收到带标签帧,若VLAN在允许列表中则接收。收到无标签帧,则打上端口的PVID(Native VLAN) 标签。
- 发送数据:除Native VLAN外,所有其他VLAN的帧都保留VLAN标签发送。Native VLAN的帧在发送时剥离标签(Untagged)。
- 配置示例(华为):
system-view interface GigabitEthernet 0/0/24 port link-type trunk # 设置为Trunk模式 port trunk allow-pass vlan 10 20 # 允许VLAN 10和20通过 port trunk pvid vlan 99 # (可选)设置Native VLAN为99 - 配置示例(思科):
configure terminal interface GigabitEthernet 0/24 switchport mode trunk # 设置为Trunk模式 switchport trunk allowed vlan 10,20 # 允许VLAN 10和20通过 switchport trunk native vlan 99 # (可选)设置Native VLAN为99
3.3 Hybrid端口(混合端口)
- 核心用途:华为/华三等厂商提供的灵活端口模式,适用于复杂组网。
- 核心特性:“灵活”。它结合了Access和Trunk的特性,可以手动控制哪些VLAN的帧带标签(Tagged)发出,哪些不带标签(Untagged)发出。
- 标签处理规则:
- 接收数据:与Trunk端口规则完全相同。
- 发送数据:管理员可以精细配置,对指定的VLAN剥离标签发送(类似Access),对指定的VLAN保留标签发送(类似Trunk)。
- 配置示例(华为):
system-view interface GigabitEthernet 0/0/3 port link-type hybrid port hybrid pvid vlan 10 port hybrid untagged vlan 10 # 发送VLAN 10时剥离标签 port hybrid tagged vlan 20 30 # 发送VLAN 20,30时保留标签
四、VLAN的划分方式
VLAN的划分可以基于多种依据,最常见的是基于端口:
- 基于端口:最常用,按交换机端口静态划分。
- 基于MAC地址:根据设备的MAC地址动态划分,用户移动位置无需重新配置。
- 基于IP子网:根据设备的IP地址所属子网划分。
- 基于协议:根据上层协议类型(如IP、IPX)划分。
五、VLAN间路由(跨VLAN通信)
基本原则:VLAN是二层(数据链路层) 的隔离技术。不同VLAN间的设备不能直接通信,必须通过三层(网络层) 设备进行路由转发。
5.1 单臂路由(Router-on-a-Stick)
- 原理:在路由器的一个物理接口上创建多个逻辑子接口,每个子接口对应一个VLAN,并作为该VLAN的网关。
- 配置示例(思科):
interface GigabitEthernet0/0.10 encapsulation dot1Q 10 ip address 192.168.10.1 255.255.255.0
5.2 三层交换(VLANIF / SVI)
- 原理:使用三层交换机,为每个VLAN创建一个虚拟三层接口(VLANIF或SVI),并配置IP地址作为网关。交换机内部通过硬件芯片实现高速路由转发。
- 配置示例(华为):
interface Vlanif 10 ip address 192.168.10.1 255.255.255.0
六、VLAN高级特性
6.1 Native VLAN(本征VLAN)
- 定义:Trunk端口上的PVID被称为Native VLAN。
- 关键特性:在Trunk链路上,Native VLAN的数据帧不带标签传输。
- 安全风险:如果链路两端的Native VLAN配置不一致,会导致VLAN信息错乱,甚至引发VLAN跳跃攻击。
- 最佳实践:强烈建议将Native VLAN修改为一个未使用的VLAN ID(如999),并确保两端一致。
6.2 Super VLAN(超级VLAN)
- 目的:节省IP地址。让多个VLAN(Sub VLAN)共享一个三层网关接口(Super VLAN的SVI)。
- 工作原理:Sub VLAN仅包含物理端口,用于隔离广播域。它们之间的通信以及对外通信,都依赖Super VLAN接口的ARP代理功能。
6.3 Private VLAN(私有VLAN)
- 目的:解决同一VLAN内不同端口之间的隔离问题。
- 工作原理:将一个主VLAN(Primary VLAN)划分为多个辅助VLAN(Secondary VLAN),包括:
- 隔离VLAN(Isolated VLAN):端口间完全不能二层通信。
- 群体VLAN(Community VLAN):同群体内的端口可以通信,不同群体间不能。
七、VLAN安全与攻击防范
7.1 常见的VLAN攻击
- 交换机欺骗(Switch Spoofing):攻击者伪装成交换机,通过DTP协议动态协商建立Trunk,从而访问所有VLAN。
- 双标签攻击(Double Tagging):攻击者发送双层VLAN标签的帧,利用Native VLAN的不一致性,使数据“跳跃”到其他VLAN。
7.2 防御措施
- 关闭未使用的端口:
shutdown,并设置为Access模式。 - 显式配置Trunk:手动将互联端口设置为Trunk模式,并关闭DTP协商(
switchport nonegotiate)。 - 限制Trunk允许的VLAN:只放行必要的VLAN,避免使用
vlan all。 - 修改默认Native VLAN:将其改为一个不使用的VLAN ID。
- 启用端口安全:限制端口上学习的MAC地址数量。
八、VLAN故障排查指南
遇到VLAN不通的问题,可按以下步骤排查:
- 检查VLAN创建:确保VLAN已在交换机上创建。
- 华为:
display vlan - 思科:
show vlan brief
- 华为:
- 检查端口配置:确认端口模式(Access/Trunk)和所属VLAN是否正确。
- 华为:
display port vlan - 思科:
show interfaces trunk
- 华为:
- 检查Trunk链路:确认两端Trunk端口的允许VLAN列表和Native VLAN是否一致。
- 检查VLAN间路由:对于跨VLAN通信,检查三层交换机VLANIF接口是否
up/up,并配置了正确的IP地址。- 华为:
display ip routing-table - 思科:
show ip interface brief
- 华为:
- 检查终端配置:确认终端设备的IP地址、子网掩码和网关是否正确。
九、主流厂商VLAN配置命令速查
| 操作 | 华为/H3C | 思科/Cisco | 锐捷/Ruijie |
|---|---|---|---|
| 进入系统视图 | system-view |
configure terminal |
configure terminal |
| 创建VLAN | vlan batch 10 20 |
vlan 10 |
vlan range 10,20 |
| 配置Access端口 | port link-type access port default vlan 10 |
switchport mode access switchport access vlan 10 |
switchport mode access switchport access vlan 10 |
| 配置Trunk端口 | port link-type trunk port trunk allow-pass vlan 10 20 |
switchport mode trunk switchport trunk allowed vlan 10,20 |
switchport mode trunk switchport trunk allowed vlan add 10,20 |
| 设置Native VLAN | port trunk pvid vlan 99 |
switchport trunk native vlan 99 |
switchport trunk native vlan 99 |
| 保存配置 | save |
write memory |
write |
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)