包如何知道要去哪个 VLAN

包如何知道要去哪个 VLAN

我对 VLAN 概念还很陌生,并且对于其工作原理和如何配置端口存在疑问。

假设我在 SwitchA 后面有一个正常 LAN 192.168.1.0,在 SwitchB 后面有一个 VLAN2 192.168.2.0 和 VLAN3 192.168.3.0。

192.168.1.1 是通向互联网的网关。SwitchA 和 SwitchB 通过 Trunk 连接。

每当 LAN 中的设备想要与 VLAN2 或 VLAN3 通信时,对于设备的 SSH/RDP 或 HTTP 请求,它如何知道要进入哪个 VLAN?将使用 LAN/VLAN 的 IP 通过 GW 进行简单路由?还是在标记方面需要添加更多内容?因为根据我的理解,我应该配置设备部分 VLAN2 连接的端口,以仅接受带有 VID2 的包和带有 VID3 的 VLAN3 包。

答案1

简短回答:

问问自己:“如果我向主机添加两个以太网端口,它如何知道使用哪个端口?”

对于 VLAN 来说答案是相同的。


长答案:

每当 LAN 中的设备想要与 VLAN2 或 VLAN3 通信时,对于设备的 SSH/RDP 或 HTTP 请求,它如何知道要进入哪个 VLAN?

实际上,您的设备通常不关心 VLAN – 它只是将数据包发送到网关。

网关(即路由器)做出此决定的方式与它在物理连接之间做出决定的方式相同:基于子网和路由表。大多数系统会将 VLAN 显示为虚拟网络接口:如果物理以太网端口名为eth0,则 VLAN 3 将是eth0.3eth0_vlan3。它们可以分配 IP 地址、添加路由、启用防火墙等等。

主机标记自己的流量的情况相当罕见,允许这样做实际上会破坏您可能想要实现的任何分离。但如果你配置多个 VLAN(Linux/BSD 可以做到这一点),然后它会做出标记决定确切地与路由器相同:它将每个配置的 VLAN 视为虚拟以太网端口,具有自己的子网和路由。


(当然,通向路由器的交换机端口需要配置为承载所有 VLAN - 在某些交换机型号中,您可能需要选择“中继”或“混合”模式,在其他类型中将所需的 VLAN 添加为“标记”。)

答案2

这取决于您配置的内容。VLAN 与 ISO/OSI 模型的第二层相关联。此时,您正在查看基于链路的连接。假设您使用IEEE 802.1Q为了实现 VLAN,在该层上添加了一个特定的标头以允许 VLAN。

如果您想允许 VLAN 之间的通信,您将必须拥有一个可从两个 VLAN 访问的设备,并且在大多数情况下是路由器。

相关内容