3-11-2 虚拟局域网VLAN的实现机制

虚拟局域网VLAN技术是在交换机上实现的,需要交换机能够实现以下两大功能

  • 一是能够处理带有VLAN标记的帧,也就是IEEE 802.1Q帧
  • 二是交换机的各端口可以支持不同的端口类型,不同端口类型的端口对帧的处理方式有所不同

IEEE 802.1Q帧

  • IEEE 802.1Q帧 (Dot One Q帧即.1Q帧),它对以太网的MAC帧格式进行了扩展,插入了 4 字节的VLAN标记。如图所示,分别是以太网版本 2 的MAC帧格式和插入VLAN标记后的 802. 1 Q 帧的格式

image-20231004202724510

  • VLAN标记的最后 12 个比特称为VLAN标识符VID。它唯一的标识了以太网帧属于哪一个VLAN

    • VID 的取值范围是 0 到4095(0~2^12^-1),
    • 其中 0 和 4095 都不用来表示VLAN,因此用于表示VLAN的 VID 的有效取值范围是 1- 4094。
  • 需要注意的是, 802.1Q帧是由交换机来处理的,而不是用户主机来处理的。

    • 当交换机收到普通的以太网帧时,会将其插入 4 字节的VLAN标记,将其转变为 802 .1Q 帧,简称为“打标签”。
    • 当交换机转发 802. 1 Q 帧时,可能会删除其 4 字节VLAN标记,将其转变为普通以太网帧,简称为“去标签”。
  • VLAN标记字段的其他内容对我们理解VLAN划分机制来说并没有什么帮助,因此就不再赘述

交换机的端口类型

接下来我们介绍交换机的端口类型。交换机的端口类型一般有以下三种,它们分别是

  • Access
  • Trunk
  • Hybrid

需要说明的是,思科交换机没有Hybrid端口。

交换机的缺省VLAN ID

在介绍这三种交换机端口类型之前,我们首先需要了解一下端口的缺省VLAN ID 这个概念。

  • 在思科交换机上将其称为Native VLAN,即本征VLAN。例如,思科交换机在用户未配置VLAN时,所有端口都默认属于VLAN1,即所有端口的本征VLAN都是VLAN1,
  • 在华为交换机上将其称为PortDefault VLAN ID ,即端口VLAN ID,简记为 PVID。

在我们接下来的介绍中,为了描述方便,我们采用 PVID,而不是本征VLAN。需要注意的是,交换机的每个端口有且仅有一个PVID。

Access端口

接下来我们首先介绍 Access 端口。

  • Access端口一般用于连接用户计算机
  • Access端口只能属于一个VLAN,因此 Access 端口的 PVID 值与端口所属VLAN的 ID 相同(默认为1)

image-20231004203645280

如图所示,主机A、B、C、 D 分别连接在交换机的一个端口上,交换机首次上电时,默认配置各端口属于VLAN1,也就是各端口的 PVID 值等于1,默认配置各端口的类型为Access,我们用大写字母A来表示。

Access端口的处理方法

Access端口的接收处理方法

Access 端口的接收处理方法:一般只接受未打标签的普通以太网MAC帧,根据接收帧的端口的 PVID 给帧打标签,即插入 4 字节VLAN标记字段中的 VID 取值与端口的 PVID 取值相等。

Access端口的发送处理方法

Access 端口的发送处理方法:若帧中的 VID 与端口的 PVID 相等,则去标签后转发该帧,否则不转发。

举例说明1

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

image-20231004203955236

Access 端口的发送处理方法:若帧中的 VID 与端口的 PVID 相等,则去标签后转发该帧,否则不转发。

对于本例,广播帧中的 VID 的取值与端口 2、3、4 的 PVID 取值都等于1,因此交换机会从这三个端口对帧进行去标签转发,如下图所示。

image-20231004204153280

举例说明2

再来看这个例子,我们的应用需求是将主机 A 和 B 划归到VLAN2,将主机 C 和 D 划归到VLAN3,这样VLAN2 中的广播帧不会传送到VLAN3,VLAN3 中的广播帧也不会传送到VLAN2。

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

image-20231004204350909

主机A发送广播帧

我们来看主机A发送广播帧的情况,该帧从交换机的端口 1 进入交换机,由于端口 1 的类型是Access,他会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入 4 字节的VLAN标记字段,如图所示,由于端口 1 的 PVID 值等于2,因此所插入的 4 字节VLAN标记字段中的 VID 的值也等于2。

image-20231004204442524

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

image-20231004204518744

主机C发送广播帧

我们再来看主机 C 发送广播帧的情况,该帧从交换机的端口 3 进入交换机,由于端口 3 的类型是Access,它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入 4 字节的VLAN标记字段,如图所示。

image-20231004205101168

由于端口 3 的PVID值等于3,因此所插入的 4 字节VLAN标记字段中的VID的值也等于3。广播帧中的VID的取值与端口 4 的PVID取值都等于3,因此交换机会从端口 4 对帧进行去标签转发。

image-20231004205140076

Trunk端口

接下来我们介绍Trunk端口。

  • Trunk端口一般用于交换机之间或交换机与路由器之间的互连。
  • Trunk端口可以属于多个VLAN:也就是说Trunk端口可以接收和发送多个VLAN的帧
  • 用户可以设置Trunk端口的 PVID 值,默认情况下,Trunk端口的 PVID 值为1。
Trunk端口的发送处理方法

Trunk端口的发送处理方法:

  • 对 VID 等于 PVID 的帧去标签再转发;
  • 对 VID 不等于 PVID 的帧直接转发,即不去掉标签而带着标签直接转发
Trunk端口的接收处理方法

Trunk端口的接收处理方法:

  • 接收未打标签的帧,根据接收帧的端口的 PVID 给帧打标签。即插入 4 字节VLAN标记字段,其中的 VID 取值与端口的 PVID 取值相等。
  • 接收已打标签的帧

image-20231004205341628

举例说明

我们来举例说明Trunk端口的功能,如图所示,两台交换机互连而成的一个交换式以太网,我们的应用需求是将主机A、B、E、 F 划归到VLAN1,将主机C、D、G、 H 划归到VLAN2。

image-20231004205427807

交换机配置VLAN及Trunk端口

由于交换机首次上电时默认配置各端口属于VLAN1,其相应的 PVID 值等于1,并且端口的类型为Access,因此我们需要对交换机进行相应的配置才能满足应用需求。

分别在两个交换机上创建VLAN2,并将他们的端口 3 和 4 都划归到VLAN2,其相应的 PVID 值等于2,而两个交换机的端口 1 和 2 保持默认配置即可,也就是属于VLAN1,其相应的 PVID 值等于1。特别需要注意的是,两个交换机互联的端口 5 需要将它们的类型更改为Trunk类型,而它们的 PVID 值保持默认的 1 即可。

主机 A 发送个广播帧

假设主机 A 发送了一个广播帧,该帧从交换机 1 的端口 1 进入交换机。

Access类型发送端口打标签

由于端口 1 的类型是Access,它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入 4 字节的VLAN标记字段,如图所示。由于端口 1 的 PVID 值等于1,因此所插入的 4 字节VLAN,标记字段中的 VID 的值也等于1。

image-20231004205904117

同交换机下的Access端口转发

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

同交换机下的Trunk端口转发

该广播帧中的 VID 的取值与端口 5 的 PVID 值都等于1。端口 5 的类型是Trunk,因此交换机 1 会从端口 5 对帧进行去标签转发。很显然,该广播帧会从交换机 2 的端口 5 进入交换机 2 。

另一交换机Trunk端口转发

Trunk端口的接收处理方法:接收未打标签的帧,根据接收帧的端口的 PVID 给帧打标签。即插入 4 字节VLAN标记字段中的 VID 取值与端口的 PVID 取值相等。

对于本例,交换机 2 会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入 4 字节的VLAN标记字段。如图所示,由于端口 5 的 PVID 值等于1,因此所插入的 4 字节VLAN标记字段中的 VID 的值也等于1。

另一交换机Access端口转发

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

image-20231004210550118

主机 C 发送广播帧

再来看主机 C 发送广播帧的情况

Access类型发送端口打标签

该帧从交换机 1 的端口 3 进入交换机,由于端口 3 的类型是Access,它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入 4 字节的VLAN标记字段。如图所示,由于端口 3 的 PVID 值等于2,因此所插入的 4 字节VLAN标记字段中的 VID 的值也等于2。

image-20231004211351602

同交换机下Access类型端口转发

该广播帧中的VID的取值与端口 4 的 PVID 值都等于2,端口 4 的类型是Access,因此交换机 1 会从端口 4 对帧进行去标签转发,见上图所示。

同交换机下Trunk类型端口转发

该广播帧中的 VID 的取值与端口 5 的 PVID 值不相等。由于Trunk端口对 VID 不等于 PVID 的帧是直接转发的,因此交换机 1 会从端口 5 对帧直接转发,也就是不去掉标签而带着标签直接转发。

image-20231004211646069

很显然,该 802. 1 Q 广播帧会从交换机 2 的端口 5 进入交换机 2 Trunk端口接收已打标签的 802. 1 Q 帧。

另一交换机Access类型端口转发

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

image-20231004211737404

通过本例可以看出,在由多个交换机互连而成的交换式以太网中划分VLAN时,连接主机的交换机端口应设置为 Access 类型,交换机之间互联的端口应设置为 Trunk 类型。

==笔者注:若A、B、E、F划分为VLAN10,C、D、G、H划分为VLAN20;各端口5配置Trunk端口类型,PVID值为1,似乎也可实现VLAN划分,各VLAN的数据帧在Trunk口处直接转发即可==

习题

image-20231004212112072

本题的答案如下所示

image-20231004212140917

Hybrid端口

最后我们简单介绍一下华为交换机私有的Hybrid的端口类型。

  • Hybrid的端口既可用于交换机之间或交换机与路由器之间的互联(与Trunk端口相同),也可用于交换机与用户计算机之间的互联(与 Access 端口相同)。

  • Hybrid端口可以属于多个VLAN(同Trun端口)

  • 用户可以设置Hybrid端口的PVID值。默认情况下,Hybrid端口的PVID值为1(同Trun端口)

除此之外, Hybrid 端口的绝大部分功能与Trunk端口相同。不同点在于Hybrid端口的发送处理方法。

Hybrid发送处理方法(与Trunk端口不同)

Hybrid端口会查看帧的VID是否在端口的“去标签”列表中

  • 若存在,则“去标签”后再转发;
  • 若不存在,则直接转发;

Hybrid接收处理方法(与Trunk端口相同)

  • 接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等
  • 接收“已打标签的帧”;

举例说明Hybrid的端口的功能

主机A、B、 C 连接在同一个交换机的不同接口上,请利用Hybrid的端口的功能实现以下应用需求: A 和 B 都能与 C 相互通信,但 A 与 B 不能相互通信。

image-20231004212929505

如图所示。我们可以将这三台主机所连接的交换机的三个端口划分到不同的VLAN,并且端口类型设置为Hybrid。假设这三个VLAN分别是VLAN10、VLAN20、VLAN30,相应的 PVID 分别为10、20、30。

  • 在端口 1 的去标签列表中配置VLAN10和VLAN30。
  • 在端口 2 的去标签列表中配置VLAN 20 和VLAN30。
  • 在端口 3 的区标签列表中配置VLAN10、VLAN20、VLAN30。
主机A给C发送数据帧

主机A给C发送数据帧,该帧从交换机的端口 1 进入交换机。由于端口译的类型是Hybrid,它会对接收到的未打标签的普通以太网MAC帧打标签,也就是插入 4 字节的VLAN标记字段,如图所示。

image-20231004213211868

由于端口 1 的 PVID 值等于10,因此所插入的 4 字节VLAN标记字段中的 VID 的值也等于10,该帧将从端口 3 转发(帧VID值与端口PVID值不同时直接转发)。又由于帧中的VID 的取值在端口 3 的去标签列表中,因此该帧会被端口3去标签转发,这样主机C就可以收到主机 A 发送的数据帧。

同理,主机 C 给 A 发送数据帧,主机 A 同样可以收到,我们就不再演示了。

同理,主机 B 给 C 发送数据帧,如下图所示

image-20231004213724718

同理,主机 C 给 B 发送数据帧,就不再演示了。

主机 A 给 B 发送数据帧

再来看看主机 A 给 B 发送数据帧的情况。该帧从交换机的端口 1 进入交换机,给该帧打标签,其中 VID 取之为10,该帧将从端口 2 转发(帧VID值与端口PVID值不同时直接转发)。

image-20231004213817628

由于帧中的 VID 的取值不在端口 2 的去标签列表中,因此该帧被直接转发,这样主机B 就会收到一个带有VLAN标记的 802.1Q 帧,但是主机 B 可以识别普通以太网MAC帧,而不能识别 802.1Q 帧,只能丢弃该帧。

image-20231004214032713

同理,主机 B 给 A 发送的普通以太网MAC帧,主机 A 收到的却是 802.1Q帧,无法识别而丢弃。

本节小结

image-20231004214051401

站内搜索

没有找到内容!