交换机对标记和未标记的 VLAN 数据包做什么?

交换机对标记和未标记的 VLAN 数据包做什么?

假设我们有一个支持 VLAN 的 4 端口交换机。

1     2     3     4       

Port 1 is TAGGED to VLAN10` and `UNTAGGED to Default_VLAN(1)

Port 2 is UNTAGGED to VLAN10

Port 3 is UNTAGGED to VLAN10

为了解决这个问题,我们有一个数据包进入端口 1,该数据包被标记为 VID 10。端口 1 保留了该标签。

碰巧的是,它需要发送数据包的设备连接到端口 2。当交换机将数据包从 UNTAGGED 端口发送到该 VID 时,它是否会从数据包中删除 VLAN 10 标签?

此外,假设这是一个 ICMP 数据包,端口 2 上的设备发送回复,该回复以未加标签的形式发送到端口 2,并成为 VLAN 10 的一部分。当它离开端口 1 到达其目标设备时,它是否被标记为 VID 10,因为端口 1 被标记为该 VID?(为了回答这个问题,我们还做了一个大假设,即交换机正在执行第 3 层 IP 路由)。

答案1

交换机根据端口设置剥离或添加标签。假设带有 VLAN 10 标记的数据包从端口 1 进入时其标签会被剥离,而从端口 2(或端口 3,因为两者都是 VLAN 10 的未标记成员)离开时标签也会被剥离。

类似地,根据问题的第二部分,当数据包进入端口 2 时,它将在离开端口 1 之前被标记为 VLAN 10。

我知道至少有一种以太网交换机实现,它在未标记端口上标记进入的帧,移动全部交换机内部的帧作为标记帧。该特定交换机仅当帧从未标记端口传出时才剥离标记。

我认为这种行为可能相当常见,因为交换机需要某种方式来跟踪帧在交换机内部移动时的原始 VLAN。但由于我只知道一台(现在已经非常过时且不再生产)交换机的底层细节,因此我不会做出我无法支持的笼统概括。

答案2

标记仅当帧在两个网络设备之间的介质上传输时才应用于该帧。标记在帧从接口发出时添加,并在被第二台设备接收时被剥离。

仅在接收时才需要该标签来识别应在何处处理流量。在由网络设备本身处理(路由/交换)时,不会保留该标签。

对于你的例子/问题:

为了解决这个问题,我们有一个数据包进入端口 1,该数据包被标记为 VID 10。端口 1 保留了该标签。

碰巧的是,它需要发送数据包的设备连接到端口 2。当交换机将数据包从 UNTAGGED 端口发送到该 VID 时,它是否会从数据包中删除 VLAN 10 标签?

P1 不保留标签。收到帧时标签会被剥离,因此当 P1 将帧转发出 P2 时,没有标签。

此外,假设这是一个 ICMP 数据包,端口 2 上的设备发送回复,它以未加标签的形式进入端口 2,成为 VLAN 10 的一部分,当它离开端口 1 前往其目标设备时,它是否会被标记为 VID 10,因为端口 1 被标记为该 VID?(为了回答这个问题,我们还做一个大的假设,即交换机正在执行第 3 层 IP 路由)。

由于 VLAN 10 在 P1 上被标记,因此从 P1 流出的所有 VLAN 10 上的流量都将被标记。交换机是否执行 L3 与 802.1Q 标记功能完全无关。

答案3

它比您想象的要简单,基本上任何到达交换机的数据包都会被剥离任何标签并放到正确的 VLAN 上(除非它被标记为该端口未携带的 VLAN)。

因此,在您的场景中,数据包从带有 VLAN 10 标签的端口 1 进入,然后被剥离该标签并放入 VLAN 10。CAM 表表明目标 MAC 在端口 2 上,数据包以未加标签的形式通过该端口发送。就是这么简单。

至于您的第二个问题,是的,数据包在离开端口 1 时将被标记为 VLAN 10。

相关内容