我有一个运行 vSphere 5.1 的虚拟环境。我有两个 ESXi,它们之间有一个 vDS。为了便于讨论,该 vDS 上只有一个端口组配置为使用 VLAN。每个主机的上行链路由两个成组的 NIC 组成,它们都连接到同一个物理交换机。在物理交换机的另一个端口上有一个防火墙,其一条支路与端口组位于同一个 VLAN 中。
我偶尔发现,在 host1 上创建并启动新虚拟机时,交换机不会获知此虚拟机的 MAC 地址(即使我使用 arping 强制执行免费 ARP)。发生这种情况时,虚拟机将无法与防火墙通信,甚至无法与 host2 上的其他虚拟机(使用相同端口组)通信。但是,它仍然可以与 host1 上连接到相同端口组的其他虚拟机通信。
此外,如果 host1 上有一个运行良好且可以与外部通信的 VM,而我将其通过 vMotion 迁移到 host2,那么交换机将不会知道 MAC 地址已移动到其他端口(再次,即使我从 VM 发出 arping 之后),结果该 VM 将失去与防火墙的连接。
更令人困惑的是,这简直让我抓狂,如果我从防火墙运行“ping -t”,尽管虚拟机正在启动,然后交换机将要了解虚拟机的 MAC 地址,虚拟机将能够进行通信。
端口组和上行链路上均打开了“通知交换机”选项。
我可能错过了什么?我愿意考虑疯狂的想法。明天我将尝试重新启动主机,以防 vDS 配置不同步……
答案1
我的建议是升级你的 ESXi 安装。这类事情有时属于 bug 类别,根据VMware、您的版本号(838463) 于 2012 年 10 月发布。当前版本为 build1312873。
如果可以的话,修补是有意义的,因为您正在使用一个非常旧的版本。
答案2
不管怎样,这最终被证明是一个物理开关问题。有一个很长的帖子https://communities.vmware.com/thread/421560这被证明是非常有帮助的(只要向我们表明我们并不孤单......)。
谢谢大家的帮助!