虚拟局域网 VLAN 技术是在交换机上实现的,需要交换机能够实现以下两大功能
- 能够处理带有
VLAN标记的帧:IEEE 802.1Q帧 - 交换机的各端口支持不同的端口类型(帧的处理方式有所不同)
1、IEEE 802.1Q 帧
IEEE 802.1Q 帧(也称 Dot One Q 帧)对以太网的 MAC 帧格式进行了扩展,插入了
4
4
4 字节的 VLAN 标记。
- 以太网版本
2
2
2 的
MAC帧格式

- 插入
VLAN标记的802.1Q帧格式

VLAN 标记的最后
12
12
12 个比特称为 VLAN 标识符 VID,它唯一的标志了以太网属于哪一个 VLAN
VID的取值范围为 0 0 0 ~ 4095 4095 4095 ( 0 0 0 ~ 2 12 − 1 2^{12}-1 212−1)-
0
0
0 和
4095
4095
4095 都不用来表示
VLAN,因此用于表示VLAN的VID的有效取值范围是 1 1 1~ 4094 4094 4094。
注意:
802.1Q帧是由交换机来处理的,而不是用户主机来处理的。
当交换机收到普通的以太网帧时,会将其插入
4
4
4 字节的 VLAN 标记转变为 802.1Q 帧,简称 “
打标签
\color{red}打标签
打标签”
当交换机转发 802.1Q 帧时,可能会删除其
4
4
4 字节 VLAN 标记转变为普通以太网帧,简称 “
去标签
\color{red}去标签
去标签”
2、交换机的端口类型
交换机的端口类型有以下三种:
-
Access -
Trunk -
Hybrid(思科交换机没有该端口)
交换机各端口的缺省 VLAN ID
-
在思科交换机上称为
Native VLAN,即本征VLAN。-
例如:思科交换机在用户未配置
VLAN时,所有端口都默认属属于VLAN1 即:所有端口的本征
VLAN都是VLAN1
-
-
在华为交换机上称为
Port VLAN ID,即端口VLAN ID,简记为PVID。
说明:以下均采用华为交换机
注意:
- 交换机的每个端口有且只有一个
PVID
2.1、Access 端口
Access 端口一般用于连接用户计算机
Access 端口只能属于一个VLAN
Access 端口的 PVID 值与端口所属 VLAN 的 ID 相同(默认为
1
1
1)
例如:主机 A、B、C、D 分别连接在交换机的一个端口上
交换机首次上电时,默认配置个端口属于 VLAN1
- 也就是各端口的
PVID值等于 1 1 1
默认配置各端口的类型为 Access(A 标识)

2.1.1、接受处理方法
Access 端口接收处理方法:
- 一般只接受 “未打标签” 的普通以太网
MAC帧。 - 根据接收帧的端口的
PVID给帧 “ 打标签 \color{red}打标签 打标签” ,即插入 4 4 4 字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
假设主机 A 发送了一个广播帧
该帧从交换机的端口 1 1 1 进入交换机。
由于端口
1
1
1 的类型是 Access,它会对接收到的 “未打标签” 的普通以太网 MAC 帧 “打标签” 。
- 插入
4
4
4 字节的
VLAN标记字段
由于端口
1
1
1 的 PVID 值也等于
1
1
1,因此所插入的
4
4
4 字节 VLAN 标记字段中的 VID 的值也等于
1
1
1。

2.1.2、发送处理方法
Access 端口发送处理方法:
- 若帧中的
VID与端口的PVID相等,则 “ 去标签 \color{red}去标签 去标签” 并转发该帧 - 否则不转发。
广播帧中的 VID 的取值与端口
2
、
3
、
4
2、3、4
2、3、4 的 PVD 取值都等于
1
1
1
- 因此,交换机会从这三个端口对帧进行 “去标签” 转发

若将主机 A、B 划归的 VLAN2,将主机 C、D 划归到 VLAN3
这样,VLAN2 的广播帧不会传送到 VLAN3。反之亦然

为了实现这种应用,可以在交换机上创建 VLAN2 和 VLAN3,然后将交换机的端口
1
1
1 和
2
2
2 划归到 VLAN2
- 因此,端口
1
1
1 和
2
2
2 的
PVID值等于 2 2 2
将交换机的端口
3
3
3 和
4
4
4 划归到 VLAN3
- 因此,端口
3
3
3 和
4
4
4 的
PVID值等于 3 3 3

假设主机 A 发送了一个广播帧
该帧从交换机的端口 1 1 1 进入交换机。
由于端口
1
1
1 的类型是 Access,它会对接收到的 “未打标签” 的普通以太网 MAC 帧 “打标签” 。
- 插入
4
4
4 字节的
VLAN标记字段
由于端口
1
1
1 的 PVID 值等于
2
2
2,因此所插入的
4
4
4 字节 VLAN 标记字段中的 VID 的值也等于
2
2
2 。

广播帧中的 VID 值与端口
2
2
2 的 PVID 值都等于
2
2
2
- 因此,交换机会从端口 2 2 2 对帧进行 “去标签” 转发。

假设主机 C 发送了一个广播帧
该帧从交换机的端口 3 3 3 进入交换机。
由于端口
3
3
3 的类型是 Access,它会对接收到的 “未打标签” 的普通以太网 MAC 帧 “打标签” 。
- 插入
4
4
4 字节的
VLAN标记字段
由于端口
3
3
3 的 PVID 值等于 3,因此所插入的 4 字节 VLAN 标记字段中的 VID 的值也等于
3
3
3 。

广播帧中的 VID 值与端口
4
4
4 的 PVID 值都等于
3
3
3
- 因此,交换机会从端口 4 4 4 对帧进行 “去标签” 转发。

2.2、Trunk 端口
Trunk 端口一般用于交换机之间或交换机与路由器之间的互连
Trunk 端口可以属于多个 VLAN
Trunk端口可以接受和发送多个VLAN的帧
用户可以设置 Trunk 端口的 PVID 值。默认情况下, Trunk 端口的 PVID 值为
1
1
1 。
两台交换机互连而成了一个交换式以太网

将主机 A、B、E、F 划归到 VLAN1,将主机 C、D、G、H 划归到 VLAN2
由于交换机首次上电时默认配置各端口属于 VLAN1
- 其相应的
PVID值等于 1 1 1,并且端口的类型为Access
因此,我们需要对交换机进行相应的配置才能满足应用需求
- 分别在两个交换机上创建
VLAN2,并将它们的端口 3 和 4 都划归到VLAN2,其相应的PVID值等于 2 2 2 - 而两个交换机的端口
1
1
1 和
2
2
2 保持默认配置即可,也就是属于
VLAN1,其相应的PVID值等于 1 1 1

注意:需要将交换机互联的端口
5
5
5 的类型更改为 Trank 类型,其 PVID 值默认
1
1
1 即可
2.2.1、发送处理方法
Trank 端口发送处理方法:
- 对
VID等于PVID的帧,“ 去标签 \color{red}去标签 去标签” 再转发 - 对
VID不等于PVID的帧, 直接转发 \color{red}直接转发 直接转发
假设主机 A 发送了一个广播帧
该帧从交换机 1 1 1 的端口 1 1 1 进入交换机。
由于端口
1
1
1 的类型是 Access,它会对接收到的 “未打标签” 的普通以太网 MAC 帧 “打标签” 。
- 插入
4
4
4 字节的
VLAN标记字段
由于端口
1
1
1 的 PVID 值也等于
1
1
1,因此所插入的
4
4
4 字节 VLAN 标记字段中的 VID 的值也等于
1
1
1 。
该广播帧中的 VID 的取值与端口
2
2
2 的 PVID 值都等于
1
1
1,端口
2
2
2 的类型是 Access
- 因此,交换机 1 1 1 会从端口 2 2 2 对帧进行 “去标签” 转发。

该广播帧中的 VID 的取值与端口
5
5
5 的 PVID 值都等于
1
1
1,端口
5
5
5 的类型是 Trank
- 因此,交换机 1 1 1 会从端口 5 5 5 对帧进行 “去标签” 转发。

很显然,该广播帧会从交换机 2 2 2 的端口 5 5 5 进入交换机 2 2 2
2.2.2、接受处理方法
Trunk 端口接收处理方法:
-
接收 “未打标签” 的帧,根据接收帧的端口的
PVID给帧 “ 打标签 \color{red}打标签 打标签”即插入 4 4 4 字节
VLAN标记字段,字段中的VID取值与端口的PVID取值相等。 -
接受 “已打标签的帧”
对上述广播帧
交换机
2
2
2 会对接受到的 “未打标签” 的普通以太网 MAC 帧 “打标签” 。
- 也就是插入
4
4
4 字节的
VLAN标志字段
由于端口
5
5
5 的 PVID 值等于
1
1
1
- 因此,所插入的
4
4
4 字节
VLAN标记字段中的VID值也等于 1 1 1

该广播帧中的 VID 值与 端口
1
1
1 和
2
2
2 的 PVID 值都等于
1
1
1,端口
1
1
1 和
2
2
2 的类型都是 Access
- 因此,交换机 2 2 2 会从端口 1 1 1 和 2 2 2对帧进行 “去标签” 转发。

假设主机 C 发送了一个广播帧
该帧从交换机 1 1 1 的端口 3 3 3 进入交换机。
由于端口
3
3
3 的类型是 Access,它会对接收到的 “未打标签” 的普通以太网 MAC 帧 “打标签” 。
- 插入
4
4
4 字节的
VLAN标记字段
由于端口
3
3
3 的 PVID 值等于
2
2
2,因此所插入的
4
4
4 字节 VLAN 标记字段中的 VID 的值也等于
2
2
2 。
该广播帧的 VID 取值 与端口
4
4
4 的 PVID 值都等于
2
2
2,端口
4
4
4 的类型是 Access
- 因此,交换机 1 1 1 会从端口 4 4 4 对帧进行 “去标签” 转发。

该广播帧的 VID 的值与端口
5
5
5 的 PVID 值不相等,由于 Trunk 端口对 VID 不等于 PVID 的帧是
直接转发
\color{red}直接转发
直接转发的。
- 因此,交换机 1 1 1 会从端口 5 5 5 对帧直接转发
- 也就是不去掉标签而带着标签直接转发
很显然,该 802.1Q 广播帧会从交换机
2
2
2 的端口
5
5
5 进入交换机
2
2
2
Trank 端口接受已打标签的 802.1Q帧
该广播帧的 VID 的取值与端口
3
3
3 和
4
4
4 的 PVID 值都等于
2
2
2,端口
3
3
3 和
4
4
4 的类型都是 Access 类型
- 因此,交换机 2 2 2 会从端口 3 3 3 和 4 4 4 对帧进行 “去标签” 转发。

2.3、小总结
在由多个交换机互连而成的交换式以太网中划分 VLAN 时。
-
连接主机的交换机端口应设置为
Access类型 -
交换机之间互连的端口应设置为
Trank类型
2.4、习题

解析

2.5、Hybrid 端口
Hybrid 端口既可用于交换机之间或交换机与路由器之间的互连(同 Trunk 端口),也可用于交换机与用户计算机之间的互连(同 Access 端口)
Hybrid 端口可以属于多个 VLAN (同 Trunk 端口)用户可以设置 Hybrid 端口的 PVID 值。
- 默认情况下
Hybrid端口的PVID值为 1 1 1 (同 Trunk 端口)
Hybrid 端口发送处理方法(
与
T
r
u
n
k
端口不同
\color{red}与 Trunk 端口不同
与Trunk端口不同)查看帧的 VID 是否在端口的 “去标签” 列表中;
-
若存在,则“去标签”后再转发;
-
若不存在,则直接转发;
Hybrid 端口接收处理方法(同 Trunk 端口)
-
接收 “未打标签” 的帧,根据接收帧的端口的
PVID给帧“打标签”即插入 4 4 4 字节 VLAN 标记字段,字段中的
VID取值与端口的PVID取值相等。 -
接收 “已打标签的帧” ;

主机 A 给 C 发送数据帧
该帧从交换机的端口
1
1
1 进入交换机,由于端口
1
1
1 的类型是 Hybrid
- 它会对接收到的 “未打标签”的 普通以太网
MAC帧 “打标签”
由于端口
1
1
1 的 PVID 值等于
10
10
10
- 因此,所插入的
4
4
4 字节
VLAN标记字段中的VID的值也等于 10 10 10。
该帧将从端口
3
3
3 转发,由于帧中的 VID 的取值再端口
3
3
3 的去标签列表中
- 因此,该帧会被 “去标签” 转发
这样主机 C 就可以收到主机 A 发送的数据帧

同理,主机 C 给 A 发送数据帧,主机 A 同样可以收到
主机 B 给 C 发送数据帧

同理,主机 C 给 B 发送数据帧,主机 B 同样可以收到
主机 A 给 B 发送数据帧
该帧从交换机的端口
1
1
1 进入交换机,给该帧打标签,其中 VID 取值为
10
10
10
该帧将从端口 2 2 2 转发
由于帧中的 VID 的取值不在端口
2
2
2 的去标签列表中。
- 因此,该帧被直接转发
这样主机 B 就会收到一个带有 VLAN 标记的 802.1Q 帧
- 但是主机
B可以识别普通以太网MAC帧,而不能识别802.1Q帧,只能丢弃该帧

主机 B 给 A 发送数据帧同理



















