深入了解带有 VLAN 标签的以太网帧结构,以及它是如何实现跨 VLAN 通信的。
标准的以太网帧在源 MAC 地址和类型/长度字段之间插入了一个 4 字节 (32 bits) 的 VLAN 标签(802.1Q Tag)。
核心概念: VLAN 的本质就是在以太网帧中打上一个 VLAN ID 标签。交换机通过识别这个标签,来决定这个数据帧应该在哪个 VLAN 广播域内转发,从而实现二层隔离。
不同 VLAN 在二层是隔离的。要实现互通,必须经过三层设备(路由器或三层交换机)剥离原 VLAN 标签,查路由表后,重新打上目标 VLAN 标签再转发。
PC 不懂 VLAN,发出的是标准的无标签帧 (Untagged)。
数据进入 Access 接口,交换机为其打上 PVID=10 的 VLAN 10 标签。通过 Trunk 口发往网关。
路由器接收帧,剥离 VLAN 10 标签,查路由表后,发现目标在 VLAN 20,于是重新打上 VLAN 20 标签发回交换机。
交换机收到 VLAN 20 的帧,准备从连接 PC2 的 Access 接口发包时,剥离 VLAN 20 标签,PC2 收到无标签帧。
通常不同 VLAN 代表不同网段。但在特定场景下(如提供网络隔离但共享资源),我们可能会把它们配置在同一网段,并通过 Hybrid 端口实现二层互通,而无需经过三层路由。
untagged (发送时剥离标签) 和 tagged (发送时保留标签) 的 VLAN 列表。通过这样配置,交换机在将数据发给 PC1/PC2 时,都会把 VLAN Tag 剥离,从而欺骗 PC,让它们以为自己在同一个普通局域网中直接通信,实现了二层互通。