我有下一个配置:
VM1 - - - >
VM2 - - - > VM0 网关
VM3--- >
现在所有虚拟机都在同一个 PortGroup 中,但我想将每个虚拟机隔离在一个 VLAN 中,因此我为每个虚拟机创建了一个带有一个 VLAN 的 PortGroup,如下所示:
网关 (pfSense) 的 PortGroupA VLAN 10
VM1 的 PortGroupB VLAN 20
VM2 的 PortGroupC VLAN 30
VM3 的 PortGroupD VLAN 40
问题是这样的,我想将每个虚拟机连接到网关,但我做不到,我读到过,无法将两个或更多 VLAN 分配给一个 PortGroup,我尝试将 VLAN 10 放在 4095 中,但没有成功,当然,如果我将 PortGroupA 和 PortGroupB 放在同一个 VLAN 中,效果很好。我想到的另一个解决方案是将一个 NIC 放在每个 PortGroup 的网关中,但我认为这是一个错误的选择。谢谢!
编辑:我正在阅读有关 esxi 中的 vlan 的信息,有人说,我们只在连接到物理交换机时使用 vlan,对吗?在这种情况下,我的基础设施完全虚拟化,那么,最好的解决方案是使用子网吗?仅此而已?
答案1
好的,我明白你想做什么。你为每个 VLAN 添加额外 NIC 的想法也没错,但让我们假设你有 100 个 VLAN。如果是这样的话,那么向 pfsense VM 添加额外的 NIC 听起来肯定不可行。你肯定会遇到规模问题。
从设计角度来看,正确的做法是将 PortGroupA 配置为接收所有 VLAN。为此,请将 PortGroupA VLAN ID 设置编辑为全部(4095)。这将允许 PortGroupA 扩展每个 VLAN 的广播域,一直延伸到 pfSense 虚拟防火墙设备。
然后在 pfsense 防火墙设备上配置四个子接口(或 VLAN 接口),其 VLAN 标签为 10、20、30、40。在 pfsense 中为每个子接口配置 IP 地址。这一切都假设您对不同的 VLAN 使用不同的子网。例如,您应该有如下所示的子网;
subnet 192.168.10.x/24 part of VLAN 10.
subnet 192.168.20.x/24 part of VLAN 20.
subnet 192.168.30.x/24 part of VLAN 30.
subnet 192.168.40.x/24 part of VLAN 40.
然后,在 pfsense 上,您的 VLAN 接口应该具有来自每个 VLAN 的 IP 地址,这些 IP 地址将成为其各自 VLAN 的默认网关。对于您的虚拟机来说,这意味着它们的默认网关将配置为指向 pfsense 防火墙上配置的 IP 地址。例如,
if IP address for VLAN 20 on pfsense firewall is configured to 192.168.20.254
then the default gateway on the VM part of VLAN 20 (PortGroupB) should be
configured to 192.168.20.254
最重要的是,您要启用 pfSense 来处理了解哪些流量属于哪个 VLAN、这些流量来自哪里以及要到哪里。
基本上,从网络角度来看,您应该考虑创建一个具有防火墙功能的 Router-on-A-Stick,并将其作为虚拟设备托管在 ESXi 虚拟机管理程序中。
祝一切顺利!让我知道你的进展。