答案1
这完全正常——这就是 VLAN 的全部目的;它们的存在是为了将端口彼此隔离。直接“同一子网”访问只能在位于同一 VLAN 中的端口(VM)之间进行。
要在 VLAN 之间转发(即路由)数据包,您需要一个路由器。这可以是具有 802.1Q VLAN 支持的物理路由器,也可以是“L3 交换机”或“L2+ 交换机”(既可以路由 IP 也可以交换以太网),也可以是设置为路由器的虚拟机(同样,运行具有 802.1Q VLAN 支持的操作系统)。
根据其文档,您的 Draytek VigorSwitch G2500 只是一台普通的以太网 L2 交换机。虽然它具有 VLAN 和 IP 路由配置,但这似乎纯粹是为了管理对交换机本身的访问(显然还有它的 ONVIF 支持)——它很可能不会转发数据包之间VLAN。
您的 Draytek Vigor 3910 是一个 IP 路由器,支持 802.1Q VLAN(根据其文档,最多支持 100 个)。
无论哪种情况,路由器都需要有一个 VLAN“中继”连接(就像 ESXi 本身一样)。如果它们通过交换机连接,则交换机上的两个端口(路由器和 ESXi)都需要“标记”所有 VLAN。每个“标记”VLAN 对应于路由器本身上的虚拟 VLAN 接口(您必须逐个创建),而单个“未标记”VLAN 对应于路由器上的物理以太网接口。
(如果您决定使用 ESXi 上的虚拟机作为路由器,请将其放入具有特殊 VLAN ID 4095 的端口组中;这样它将获得所有 VLAN 都带有“标记”的完整“中继”连接。)
最重要的是,每个 VLAN 需要有一个不同的 IP 网络(地址范围)。在路由器上配置 VLAN 接口时,请确保选择不重叠的 IP 网络 - 将它们视为完全独立的 LAN。
(如果它们重叠,主机将无法知道目的地位于不同的网络中——就像在您自己的示例中一样,您尝试 ping 位于不同 VLAN 中的主机,但源主机想目的地是本地的。