前言
VLAN技术是现代企业网络和数据中心网络的核心技术之一。本文将重点针对VLAN技术进行详解。
一.VLAN概述
VLAN(Virtual Local Area Network,虚拟局域网)是一种基于交换机和网络设备的划分技术,可以将不同区域的计算机、服务器和网络设备分成逻辑上的“虚拟”子网,使得不同的虚拟子网在物理上可以处于同一局域网中,但彼此之间相互隔离,从而增强网络的安全性、可管理性和灵活性。
VLAN技术可以通过交换机的端口配置、MAC地址、IP地址、协议类型等多种方式进行划分,从而为网络管理员提供更加细致和灵活的网络管理方式。
作用:
- 隔离广播域,让每个节点(比如电脑、手机)不需要收到太多无关的广播包,从而减少计算性能和网络带宽的无谓消耗。从而保证局域网的性能。
- 隔离常见病毒与攻击,这样即使某个主机感染了arp攻击病毒、dhcp攻击病毒等常见局域网病毒,影响的范围也只限于本vlan,不会影响到其他vlan,可以将故障限制在比较小的范围。一来造成的影响小,二来排查故障也更加容易。
二.VLAN基础认识
先根据下面的配置完成拓扑图中的vlan划分:
【 配置命令 】
首先分别在交换机 SW1 和 交换机 SW2 上创建 VLAN 10 和 VLAN 20
# SW1 配置
[SW1]vlan batch 10 20
# SW2 配置
[SW2]vlan batch 10 20
完成 VLAN 10 和 VLAN 20 的创建后,下面将 SW1 的接口划入对应的 VLAN(SW2配置相同):
# SW1 配置
[SW1]interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1]port link-type access
[SW1-GigabitEthernet0/0/1]port default vlan 10
[SW1]interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2]port link-type access
[SW1-GigabitEthernet0/0/2]port default vlan 20
[SW1]interface GigabitEthernet 0/0/3
[SW1-GigabitEthernet0/0/3]port link-type trunk
[SW1-GigabitEthernet0/0/3]port trunk allow-pass vlan 10
[SW1-GigabitEthernet0/0/3]port trunk allow-pass vlan 20
[SW1-GigabitEthernet0/0/3]port trunk pvid vlan 10
VLAN ID
VLAN ID(Virtual Local Area Network Identifier)即虚拟局域网标识符,是用于区分不同 VLAN 的编号。在基于 VLAN 技术构建的网络中,它是识别和管理 VLAN 的关键标识,在网络设备间传递数据时,用于标记数据帧所属的 VLAN。
基于上面的拓扑图,我们可以使用下述命令查看vlan信息
#查看vlan信息
[Huawei]display vlan

图片中展示的信息显示交换机 SW1 存在 VLAN 1(默认),VLAN 10 和 VLAN 20,其中接口G0/0/1 和 接口 G0/0/3属于 VLAN 10,接口G0/0/2属于 VLAN 20
VLAN 执行表格
- 查看 VLAN 执行表格
[LSW1]display port vlan active

VLAN端口类别
- 交换机的转发原理:
当数据通过交换机的接口进入交换机时,交换机首先查看数据包中的源MAC地址和接口的映射关系 ,同时,记录接口对应的VID。若目标MAC地址在地址表中映射的VID 和源MAC 映射的VID 相同,则进行单播转发,否则,交换机将通过VID 和源MAC地址映射的VID相同的接口泛洪。
- 一层VLAN (物理VLAN):给对应的接口和VLAN ID 作映射
- 二层VLAN:将MAC地址和VLAN ID 作映射
- 三层VLAN;基于数据帧中的类型字段和VID 作映射(例:IPv4属于VID2 IPv6属于VID3)
如上图,LSW 2 为了区分 LSW 1 发送的数据包并将数据包发送到对应的vlan 中(例如:将LSW1 vlan1中的数据传送到 LSW2 中的vlan1),需要将数据帧打上标签Tag。
- 未打标签的数据帧为以太网二进制帧(untagged帧)
- 在以太网二进制帧的源MAC和Type之间打上Tag标签的帧为802.1Q帧(Tag帧)
Tag帧用于交换机之间区分数据来源,而交换机与电脑之间数据帧格式为以太网二进制帧帧格式无需使用Tag帧来区分数据,根据此特点,将交换机的接口分为以下几种类型:
- PVID
接口的VID,反应的接口所属的VLAN ID,PVID默认为1,华为·体系下,所有进入交换机的数据帧必须是tagged帧,因此数据帧在进入交换机之前必须打上进入接口的PVID标签。
- VLAN List
当数据通过该端口进入/出去访问其它VLAN 时,如果该端口的VLAN List 的值中有对应VLAN的VID,则允许访问。
Access接口
交换机和电脑之间的链路称为Access链路,Access链路对应的交换机接口为Access接口。
转发原理:
- Access接口会给未打上标签的数据帧打上自己的PVID ;
- Access接口仅接收标签=PVID的报文,转发给主机时会剥离数据帧标签;若标签≠PVID,则丢弃报文
Trunk接口
交换机和交换机之间的链路称为Trunk链路,Trunk链路对应的交换机接口为Trunk接口。
当Trunk端口转发帧时,该帧的标签在Trunk允许发送的列表中
转发原理:
- 若数据帧VID=PVID,Trunk接口转发该数据帧时会剥离标签
- 若数据帧VID≠PVID,Trunk接口转发该数据帧时不会剥离标签
接收原理:
- 接收无标签数据帧:直接打上trunk端口的PVID
- 接收有标签数据帧:直接转发,不剥离标签
Hybrid接口
交换机上既可连接用户主机又可连接其他交换机的端口,它既可连接接入链路又可连接汇聚链路。Hybrid 端口允许多个Vlan的帧通过,并可在出端口方向将某些Vlan帧的Tag标签剥掉。
Hybrid 接口可以修改PVID,可以修改执行列表中的 VLAN List ,Trunk端口对应的执行列表中VLAN List可以存在多个VLAN,可以修改封装类型 。
数据接收:
- 收到无标记数据帧会打上本端口的PVID
- 收到有标记的数据帧,直接转发,不剥离标签
数据帧发送:
- Hybrid端口可以灵活设备哪些VLAN数据帧发送时需要剥离标签
实验分析:
判断PC7是否可以正常访问PC8
分析:
当PC7访问PC8时,报文来到LSW 4 的0/0/2 接口时,access类型的端口会给主机发送过来的报文打上标签Tag 2,当报文进入交换机来到LSW4 的0/0/1 接口时,Trunk类型的端口会检查Tag标签值是否和PVID相等,图中Tag=PVID,则剥离标签。
当数据包来到LSW5 的0/0/1接口时,Trunk类型的端口会打上标签Tag=3,数据包进入交换机LSW 5来到接口 0/0/2 时,首先查看VLAN List允许通过的VLAN,接着access类型的端口会将Tag值和PVID比较,相等则剥离标签转发,上图相同,则PC7的数据包可以发送给PC8。
三.VLAN 间通信
3.1 单臂路由器
配置要求:
在路由器上配置虚拟接口,子接口0.1允许VLAN 3 流量通过,子接口0.2允许VLAN 2流量通过
其余配置如上图所示,全网可达。
- 关闭配置命令的提示信息
[LSW1]undo info-center enable
- 创建VLAN:
[LSW1]vlan 2
- 将接口划入VLAN
[LSW1]interface Gigabitethernet 0/0/3
#选择链路类型
[LSW1-GigabitEthernet0/0/3]port link-type access
#上一步已已将0/0/1接口对应的链路设定为access链路
#将0/0/1接口对应的链路划入指定VLAN,指定该链路允许通过的VLAN数据
#原因:access链路仅向指定的VLAN发送数据
[LSW1-GigabitEthernet0/0/3]port default vlan 2
其余配置如上
- 创建子接口管理不同VLAN
#创建虚拟接口
[R1]interface GigabitEthernet 0/0/0.1
[R1-GigabitEthernet-0/0/0.1]ip address 192.168.1.254 24
#只有交换机可以识别标签,因此需要设置使子接口能够识别标签
[R1-GigabitEthernet-0/0/0.1]dot1q termination vid 2
#子接口并非真实接口无法回复ARP应答包,需要开启ARP广播
[R1-GigabitEthernet-0/0/0.1]arp broadcast enable
子接口0.2配置如上图
- 配置trunk接口
[sw1-GigabitEthernet0/0/2]port link-type trunk
#设置允许通过的VLAN
[sw1-GigabitEthernet0/0/2]port trunk allow-pass vlan 2
[sw1-GigabitEthernet0/0/2]port trunk allow-pass vlan 3
- 拓展配置
#批量创建VLAN 1-vlan 5
[LSW1]vlan bantch 1 to 5
#单独创建vlan 1 3 5
[LSW1]vlan batch 1 3 5
#批量删除
[LSW1]undo vlan bantch 1 to 5、
#为了提高效率批量配置,可以创建一个临时接口组,将接口划入到接口组中
[LSW1]port-group group-member GIgabitEthernet 0/0/1 GIgabitEthernet 0/0/2
#进入接口组视图进行批量创建,将0/0/1 和 0/0/2 接口同时划入vlan 2
[LSW1-port-group]port link-type access
[LSW1-port-group]port default vlan 2
#修改PVID
[LSW1-GigabitEthernet0/0/2]port hybrid pvid vlan 2
#设置接口转发数据到指定VLAN时不带标签且修改VLAN List允许指定VLAN的流量通过
[LSW1-GigabitEthernet0/0/2]port hybrid untagged vlan 2 3 4
3.2 VLANIF
vlanif能够实现三层通信,同时兼备不同vlan间隔绝广播(ARP/dhcp)的能力
作用:
VLANIF接口是一种逻辑接口,用于连接VLAN和物理接口。在华为交换机上,VLANIF接口是通过VLANIF概念来实现的,一般用于VLAN间的通信或者子网间的路由。

充当 VLAN 网关
- 每个 VLANIF 接口都有对应的 IP 地址,如 VLANIF2 对应 192.168.0.1/24 、VLANIF3 对应 192.168.1.1/24 ,这些 IP 地址是对应 VLAN 内主机的默认网关 。比如主机 A(192.168.0.2/24 )要与其他 VLAN 主机通信时,会将数据包先发送到 VLANIF2(192.168.0.1/24 ) 。
数据转发流程
- 发送至网关:当主机 A 要向不同 VLAN 的主机 D(192.168.1.5/24 )发送数据包时,主机 A 首先会将数据包发送到自己所属 VLAN(VLAN 2)的默认网关,即 VLANIF2 。这是因为不同 VLAN 在二层是隔离的,无法直接通信,需要通过三层的网关设备进行转发 。
- 路由查找:交换机(如交换机 A、C、B )接收到数据包后,根据自身的路由表(直连路由或动态路由 )查找目标网络(VLAN 3 )的转发路径。这里交换机之间通过 Trunk 链路相连,Trunk 链路允许不同 VLAN 的数据帧通过,且会携带 VLAN 标签 。
- 转发至目标 VLAN:交换机根据路由表找到目标网络(VLAN 3 )后,通过 VLANIF3 接口将数据包转发至 VLAN 3 内的主机 D 。在这个过程中,VLANIF 接口会处理 VLAN 标签,进行 VLAN Tag 的剥离和添加等操作 。
ARP 代理(Proxy ARP)
- 若不同 VLAN 间未配置网关,VLANIF 接口可代理响应跨 VLAN 的 ARP 请求 。例如在图中,若没有配置 VLANIF 相关网关,当主机 A 要访问主机 D 时,主机 A 发送 ARP 请求获取主机 D 的 MAC 地址,VLANIF 接口可以代替主机 D 回应 ARP 请求,告知主机 A 自己(VLANIF 接口 )的 MAC 地址,使主机 A 将数据包发送到 VLANIF 接口,进而实现跨 VLAN 通信,即透明路由 。
创建VLANIF
每个VLAN都可以创建一个VLANIF接口
[LSW1]interface vlanif 2
四. VLAN 划分方法
基于端口划分VLAN

先根据下面的配置完成拓扑图中的vlan划分,命令如下 :
首先分别在交换机 SW1 和 交换机 SW2 上创建 VLAN 10 和 VLAN 20
# SW1 配置
[SW1]vlan batch 10 20
# SW2 配置
[SW2]vlan batch 10 20
完成 VLAN 10 和 VLAN 20 的创建后,下面将 SW1 的接口划入对应的 VLAN(SW2配置相同):
# SW1 配置
[SW1]interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1]port link-type access
[SW1-GigabitEthernet0/0/1]port default vlan 10
[SW1]interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2]port link-type access
[SW1-GigabitEthernet0/0/2]port default vlan 20
[SW1]interface GigabitEthernet 0/0/3
[SW1-GigabitEthernet0/0/3]port link-type trunk
[SW1-GigabitEthernet0/0/3]port trunk allow-pass vlan 10
[SW1-GigabitEthernet0/0/3]port trunk allow-pass vlan 20
[SW1-GigabitEthernet0/0/3]port trunk pvid vlan 10
基于MAC划分VLAN
【 配置思路 】
- 创建 VLAN 10
- 配置以太网接口并加入 VLAN,实现接口允许 VLAN 报文通过
- 配置 PC1,PC2,PC3的 MAC 地址与 VLAN 10关联,PC4的MAC与 vlan 20 关联
【 SW1 配置 】
先创建 vlan 10 然后在 vlan 10 中配置 mac-vlan 绑定规则:
[SW4]vlan 10
[SW4]mac-vlan mac-address 5489-982f-617d priority 0
[SW4]mac-vlan mac-address 5489-9850-7780 priority 0
[SW4]mac-vlan mac-address 5489-9803-3c0e priority 0
[SW4-vlan20]mac-vlan mac-address 5489-9851-5a88
接下来,在交换机 SW4 接口上开启 mac-vlan 绑定
[SW4-vlan10]ip-subnet-vlan ip 192.168.1.0 24
功能,同时放行 vlan 10
[SW4-GigabitEthernet0/0/1]port hybrid untagged vlan 10
# 接口上开启 mac-vlan绑定功能
[SW4-GigabitEthernet0/0/1]mac-vlan enable
[SW4-GigabitEthernet0/0/2]port hybrid pvid vlan 10
【 转发原理 】
SW4 交换机 G0/0/1 口接收到 PC1 发往 AR1 的报文。因该口开启 mac - vlan 绑定,且源 MAC 与 vlan10 绑定,故报文被打上 vlan10 标签。又因 G0/0/1 口配置了 port hybrid untagged vlan 10,故tag表中 G0/0/1 口允许 vlan 10 报文通过,所以报文被转至 G0/0/2 口。G0/0/2 口同样配置了 port hybrid untagged vlan 10,会剥离标签后将报文转发给路由器,同理,由于接口未G0/0/1口未放行vlan20,所以报文会被丢弃
基于IP地址划分VLAN
总结