技术背景
-
交换机所有接口属于一个广播域,往往也是一个逻辑子网;
-
用户无法根据业务需要灵活的在交换机上进行广播域的隔离;
-
随着网络规模变大、数据变多,广播风暴将给网络带来重大问题。
VLAN优点
-
有效控制广播域范围
-
增强局域网的安全性
-
灵活构建 虚拟工作组
-
简化网络管理
VLAN特点
-
将一个物理局域网在逻辑上划分为多个广播域;
-
广播不会在vlan之间转发,而是被限制在各自的vlan中;
-
不同vlan间设备默认无法通讯,需要三层设备(路由器/三层交换机)才能实现。
VLAN范围
0~4095(0和4095为保留、1为默认vlan)
VLAN标签

IEEE 802.1q:也称为dot1q,是VLAN的正式标准,对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1q Tag;
每台支持802.1q协议的交换机发送的数据包都会包含VLAN ID,以指明交换机属于哪一个VLAN。因此,在一个VLAN交换网络中,以太网帧有以下两种形式:
有标记帧
|
加入了4字节的802.1q Tag的帧
|
无标记帧
|
原始的、未加入4字节802.1q Tag的帧
|
VLAN链路类型
类型
|
备注
|
Access Link
接入链路
|
用于连接
主机和交换机的链路
接入连路上传输的帧都是
untagged帧(不带Tag标记)
|
Trunk Link
干道/中继链路
|
用于
交换机间的互连或
交换机与路由器之间的链路
干道连路上传输的帧几乎都是
tagged帧用户两端识别(多带有4个字节的标签)
|
PVID端口虚拟ID:
-
即Port VLAN ID,代表端口的缺省VLAN;
-
X7系列交换机每个接口PVID=1。
VLAN端口类型
类型
|
备注
|
Access
接入端口
|
用于连接主机;
收到数据后会添加VLAN tag,VLAN ID和端口的PVID相同;
转发数据前会移除VLAN tag.
![]() |
Trunk干道端口
|
用于连接交换机和路由器
收到帧时,
发送帧时,该帧的VLAN ID在Trunk的允许发送列表(华为默认允许vlan 1通过,可关闭)中:
![]()
(允许列表解释图如下,通过Trunk VLAN list可查看允许的VLAN列表)
![]() |
Hybrid混杂端口 |
既可以连接主机,又可以连接其他交换机;
既可以连接接入链路又可以链接干道链路;
允许多个VLAN的帧通过,并可以在出接口方向将某些VLAN帧的Tag剥掉(由命令决定)
![]() |
VLAN转发流程

VLAN规划
最常见的是
基于端口划分,不过也可以根据
MAC地址划分、基于
IP子网划分、基于
协议划分、基于
策略划分
VLAN配置命令
命令
|
备注
|
vlan 10
|
创建单个VLAN
|
vlan batch 10 to 20 |
创建多个Vlan
|
port link-type access/trunk/hybird
|
配置接口类型
|
port default vlan 10 |
配置Access关联VLAN/PVID
|
port trunk allow-pass vlan 10
|
配置trunk运行VLAN
默认只允许VLAN1
|
port turnk pvid vlan 10 |
配置Trunk的PVID
|
port hybird tagged/untagged vlan 10 |
配置Hybird标记VLAN
|
port hybird pvid vlan 10
|
配置Hybird的PVID
|
display vlan
|
验证VLAN
|
display port vlan
|
验证VLAN
|
VLAN配置

分析问题(先以左边为例):
首先,如果需要vlan10、vlan100可互通,那么可以确定SW1、SW2、SW3之间的端口需要是trunk或hybrid模式;
以此题为例,用trunk的方式会简单一些(由于如果涉及到hybrid的话需要加标签/去标签等);
其次,vlan10与vlan100之间互通,那么可以通过将SW1的g0/0/5端口、SW2的g0/0/8端口以及SW3的g0/0/24端口设置为hybrid模式,并剥离掉标签10/100;
另外,此题需要将不同的端口设置为不同的PVID,以便数据传输过程(将SW1的g0/0/5端口和SW3的g0/0/24端口的PVID设置为10,SW2的g0/0/8端口PVID设置为100)。
命令配置:
SW1:
sys
sysn SW1
vlan batch 10 100 20 200
int g0/0/4
port link-type trunk
port trunk all vlan 10 100 20 200
int g0/0/5
port link-type hybrid
port hybrid pvid vlan 10
port hybrid untagged vlan 10 100
int g0/0/2
port link-type hybrid
port hybrid pvid vlan 20
port hybrid untagged vlan 20 200
SW2:
sys
sysn SW2
vlan batch 10 100 20 200
int g0/0/10
port link-type trunk
port trunk all vlan 10 100 20 200
int g0/0/9
port link-type trunk
port trunk all vlan 10 100 20 200
int g0/0/8
port link-type hybrid
port hybrid pvid vlan 100
port hybrid untagged vlan 10 100
int g0/0/7
port link-type hybrid
port hybrid pvid vlan 20
port hybrid untagged vlan 20 200
SW3:
sys
sysn SW3
vlan batch 10 100 20 200
int g0/0/14
port link-type trunk
port trunk all vlan 10 100 20 200
int g0/0/24
port link-type hybrid
port hybrid pvid vlan 10
port hybrid untagged vlan 10 100
int g0/0/23
port link-type hybrid
port hybrid pvid vlan 20
port hybrid untagged vlan 20 200
配置PC1 ~ PC6 的IP地址、子网掩码。
测试:
PC1 ping PC2 :可在SW1的g0/0/4位置抓包,抓包截图及分析如下:

解释:我们这里查看的是PC1 ping PC2的第一个包,可以在下面红框看到后面有一个ID:10,这就表示从PC1 发送到PC2 方向的数据包是
带有标签的,并且
标签为10.
我们再对比拓扑图进行查看:
PC1 发送数据包到 SW1 的 g0/0/5 端口,在 g0/0/5 端口我们设置了 PVID 为 10 。那么进入 SW1 交换机后,数据是加上了一个PVID,值为 10 ;由于 SW1 通往 SW2 之间的线路为 Trunk 且允许 Vlan 10 通过,那么数据包就可以发送到SW2交换机上了;
到了 SW2 交换机,由于此数据是已经有了PVID的,那么就不会再进行添加标签等,并将其发送到 PC2 主机;
在发送到 PC2 主机时,通过 SW2 的 g0/0/8 端口,由于是 hybrid 模式,且会剥离掉 vlan10、vlan100 的标签,那么发送到 PC2时,就是纯数据了;
同样,PC2 回数据到 PC1 时,也是这样的过程。那么通过查看第二个包中 ID 为 100 ,可进行验证(图如下)。

总结:
-
如入方向的PVID与出方向的PVID相同,则后面发送数据不带Tag标签
-
如需将某端口类型进行更改,需要将其原模式的子命令删除
-
设置为hybird模式时,可自由选择是否对接口添加标签(port hybird tagged vlan 5)或者去掉标签(port hybird untagged vlan 5)
-
是否有标签可通过 dis vlan 查看
-
端口允许通过的vlan、端口PVID以及端口类型可通过dis port vlan 查看