交换机对标记和未标记的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.交换机是否从数据包中删除了VLAN 10标记,因为它正在将数据包从端口UNTAGGED发送到该VID?

此外,假设这是一个ICMP数据包,并且端口2上的设备发送应答,该应答到达未标记的端口2,并且成为VLAN 10的一部分。当端口1离开其目标设备时,是否获得带有VID 10的TAGGED因为Port1被标记为该VID? (为了解决交换机正在进行第三层IP路由的问题,我们也做一个大的假设)。

根据端口的设置切换条带或添加标签。 当端口1上的虚假数据包标记VLAN 10入口时,其标签将被剥离,并且当端口2(或端口3,因为它们都是未标记VLAN 10的成员)出口时。

同样,当一个数据包入口端口2时,它将在出口端口1之前被标记为VLAN 10,如同你的问题的第二部分。

我知道至less有一个以太网交换机的实现可以在非标记端口的入口上标记帧,并将交换机内的所有帧作为标记帧移动。 只有当帧从未加标签的端口出口时,该特殊切换条才会被标记。

我认为这种行为可能是相当普遍的,看看交换机如何在交换机内部移动时跟踪帧的原始VLAN。 由于我只知道一个(现在已经过时,不再生产)的低级细节,所以我不会进行笼统的概括,我不能支持。

标签只适用于帧,因为帧在两个networking设备之间的介质上传输。 标签在发送到接口时被添加,并在被第二设备接收时被剥离。

标签只有在收到时才需要识别stream量应该被处理的位置。 networking设备本身处理(路由/交换)时不保留。

所以你的例子/问题:

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

恰好如此,发送数据包所需的设备连接到端口2.交换机是否从数据包中删除了VLAN 10标记,因为它正在将数据包从端口UNTAGGED发送到该VID?

P1不保留标签。 当帧被接收时被剥离,所以当它将帧转发出P2时,没有标签。

还有,假设这是一个ICMP数据包,并且端口2上的设备发送应答,到端口2未标记,成为VLAN 10的一部分,当它离开端口1到目标设备时,是否获得带有VID 10的TAGGED因为Port1被标记为该VID? (为了解决交换机正在进行第三层IP路由的问题,我们也做一个大的假设)。

由于VLAN 10在P1上被标记,所以在VLAN 10上的所有出口P1上的stream量将被标记。 802.1Q标签的function对于交换机是否在L3中是完全没有影响的。

这比你想象的要简单,基本上任何分组都会被剥夺标签并放在正确的VLAN上(除非标签上有一个不是由该端口携带的VLAN)。

因此,在您的场景中,数据包在端口1上标记了VLAN 10,被剥离了该标签,并放置到VLAN 10中.CAM表指出目标MAC位于端口2上,并且数据包以未标记的端口发送。 就这么简单。

至于你的第二个问题,数据包在端口1出口的路上会被标记为VLAN 10。