我目前正在 VMware ESXi 主机内创建网络。
网络目前由两个 vSwitch 和两个端口组组成。端口组 A 与 vSwitch0 关联,端口组 B 与 vSwitch1 关联。我有一个网关 (pfSense),它有两个 Internet 网卡和一个端口组 A 网卡。
我有一组虚拟机,每个虚拟机在端口组 B 中都有一个 NIC。我的计划是让一个运行 Linux 的虚拟机有两个 NIC,每个端口组一个,并将它们桥接起来,以便端口组 B 中的客户端可以与互联网通信,我可以监控 Linux 虚拟机上的网络流量。
我在 Linux 机器上创建了一个网桥,但无法从那里 ping 通我的网关,端口组 B 中的虚拟机也无法 ping 通网桥/网关。
我做错了什么或者有没有更简单的解决方案?
答案1
桥接端口组以强制所有流量通过 pfSense VM 是正确的方法。
但是,如果您使用 pfSense 在两个端口组之间进行桥接,则每个端口组都需要允许混杂模式。vSwitch 不需要学习端口组(等效 VLAN)的 MAC 地址,它知道。
桥接需要能够与其他虚拟机的 MAC 进行发送和接收,因此混杂模式是必需的。缺点是允许混杂模式适用于整个端口组。作为一种解决方法,您可以使用两个端口组 - 一个允许 pfSense 使用混杂模式,另一个不允许普通虚拟机使用混杂模式 - 并通过分配相同的 VLAN ID 将它们连接起来(它们也需要位于同一个 vSwitch 上)。
请注意,没有理由使用两个 vSwitch - 单个 vSwitch 也可以很好地分隔两个端口组。
此外,vSwitch 的工作方式与物理交换机略有不同。物理交换机将学习 pfSense 端口上的桥接 MAC。具有混杂模式的 vSwitch 更像集线器,因此 pfSense 接收全部在端口组内移动的帧,而不仅仅是那些需要桥接的帧。