VLan 和 VSphere 机器的连接丢失

VLan 和 VSphere 机器的连接丢失

我在 vSphere 设置中遇到了一些虚拟机非常奇怪的情况,我无法弄清楚发生了什么。

最初,我使用的192.168.9.0/24网络192.168.9.254是 DHCP 服务器,192.168.9.43是网关,192.168.9.82是我的工作站(它从 DHCP 服务器获得 IP),192.168.9.15是我同事的工作站。
这工作得很好,网络上的每台机器都可以与其他机器一起工作,它们都能够通过网关相互 ping 通,也可以 ping 通世界其他地方。

已安装 VSphere 6.5 集群,其中三台主机分别具有192.168.9.1192.168.9.2192.168.9.3静态地址。这些机器运行 ESXi 版本 6.0.0,3380124,每台都有四个 NIC,连接到一对堆叠的 Dell N1524 交换机,所述交换机连接到网络192.168.9.0/24。在该集群上,有一个Production与每台主机 NIC 绑定的网络,因此虚拟机从 DHCP 获取其 IP 192.168.9.254。这也可以正常工作,但由于虚拟机使用量增加,DHCP 服务器提供的 IP 范围现在非常拥挤,以至于一些普通用户如果在下午到达,就无法获取 IP 地址。

为了避免这种情况,我在 vSwitch 上为每个主机添加了一个新端口组,并为这些端口组赋予了相同的名称 ( VLAN) 和相同的 VLAN 值,即 42。
戴尔物理交换机已重新配置为允许该 VLAN 以及主机网卡所连接端口上的默认 VLAN(中继模式)。我决定将此 VLAN 设置为一个10.10.10.0/24网络,以便它很容易从常规网络中识别出来,因此为交换机提供了10.10.10.252该 VLAN 上的静态 IP。

然后,我创建了一台有两个接口的 Windows 2012 虚拟机,一个在Production(192.168.9.110),一个在VLAN( ),并激活了 RRAS 角色,这样这台机器现在就充当了与世界其他地方10.10.10.254之间的网关。 我创建了第二台只有一个接口的 Windows 2012 虚拟机,使用静态地址,并将其命名为。我激活了域控制器、DHCP 和 DNS 角色。DHCP 在范围内提供租约,而 DNS 只是从网络转发到 DNS10.10.10.0/24
VLAN10.10.10.253MDC10.10.10.50 - 10.10.10.200192.168.9.0/24

然后,我创建了两个虚拟机,一个在第一台主机上,与 MDC 和 Gateway 一起,另一个在第三台主机上,两者都连接到网络VLAN。由于连接似乎正常工作,我决定使用以下 PowerCLI 命令将现有虚拟机从文件夹移动TemporaryVLAN网络:

Get-Folder Temporary | Get-VMs | Get-networkadapater | set-networkadapter -NetworkName VLAN

我还借此机会确保所有网络适配器都vmxnet3使用此命令

Get-Folder Temporary | Get-VMs | Get-networkadapater | set-networkadapter -Type vmxnet3

由于连接仍然正常,我创建了另一组虚拟机,也连接到网络VLAN,放置在所有三个主机上,从而提供以下拓扑:

主持人 1
MDC ( 10.10.10.253)
网关 ( 10.10.10.254192.168.9.110)
Machine1_H1 ( 10.10.10.64)
Machine2_H1 ( 10.10.10.57)

主持人 2
机器3_H2(10.10.10.65

主持人 3
机器4_H3(10.10.10.50
机器5_H3(10.10.10.51

当谈到网络连接时,无论是内部VLAN还是连接到外部世界,我都会得到非常奇怪的结果:

  • MDC 可以 ping 除交换机之外的所有人(10.10.10.252
  • 网关可以 ping 除 Machine5_H3 之外的所有人
  • Machine1_H1 可以 ping 除 Machine3_H2 之外的所有人
  • Machine2_H1 可以 ping 除交换机之外的所有人(10.10.10.252
  • Machine3_H2 可以 ping 除 Host 1 和 Machine1_H1 之外的所有人
  • Machine4_H3 可以 ping 除 之外的所有人192.168.9.43192.168.9.15并且google.fr(名称解析正常)
  • Machine5_H3 可以 ping 除 之外的所有人192.168.9.254192.168.9.82(我自己的工作站)和10.10.10.254
  • 我自己的计算机 ( 192.168.9.82) 可以 ping 通除 Machine5_H3 ( 10.10.10.51)之外的所有人

在进行这些测试之前,我确保所有机器上的防火墙都已关闭,并且我还在arp -aMDC 上运行以查看是否存在 MAC 地址冲突并且没有重复。Temporary为了以防万一,文件夹中的所有机器也都关闭了,但这并没有改变上述结果。为了安全起见,我使用此代码段强制为这些机器生成新的 MAC 地址:

foreach ($VM in (Get-Folder Temporary | Get-VM))
{
  $NetworkAdapter = $VM | Get-NetworkAdapter
  $NetworkAdapter | Set-NetworkAdapter -MacAddress 00:50:56:1a:ff:ff -Confirm:$false
  $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
  $spec.deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (1)
  $spec.deviceChange[0] = New-Object VMware.Vim.VirtualDeviceConfigSpec
  $spec.deviceChange[0].operation = "edit"
  $spec.deviceChange[0].device = $NetworkAdapter.ExtensionData
  $spec.deviceChange[0].device.addressType = "generated"
  $spec.deviceChange[0].device.macAddress = $null
  $VM.ExtensionData.ReconfigVM_Task($spec)
}

这并没有改变任何情况。

然后我在网关上安装了 Wireshark,开始监控流量10.10.10.254,我可以看到与该机器相关的所有流量。例如,如果我的工作站 ( 192.168.9.82) 被 Machine5_H3 ( 10.10.10.51) ping,我可以看到 PING 请求,然后是 PING 回复,但 Machine5_H3 却抱怨它没有收到任何回复。如果我反过来做,我可以看到来自的请求,192.168.9.82但网关永远看不到任何回复。

因此,我相信一些数据包在某处被丢弃,我主要怀疑是交换机(10.10.10.252),但我不确定我能做些什么来证实这个理论。

链路聚合最初是在 DELL 交换机堆栈上激活的,但它在从我们的工作站连接到具有网络中 IP 的虚拟机时出现了问题192.168.9.0/24,所以我们将其关闭了。
不过,在交换机堆栈上更改此设置并没有改变上述情况。

我肯定做错了什么,或者错过了一些配置细节,但我不知道它是什么,并希望任何建议来帮助解决对我来说是个谜的问题。

答案1

根据 Zac67 的评论,我们验证了所有三台主机上的 NIC 组合配置,发现前两台主机使用“基于 IP 哈希的路由”参数,而第三台主机使用“基于原始虚拟端口的路由”。

然后,我们将第三个主机设置为与其他主机相同的值,并阅读与第一个选项相关的警告,即“应在物理交换机上设置链路聚合”。

因此,我们回到交换机并重新激活相应端口的链路聚合,但这导致整个连接变得不稳定,网络中的机器192.168.9.0/24部分变得无法访问,但对于网络中的机器而言却没有任何改变10.10.10.0/24

因此,我们决定反其道而行之,禁用交换机上的链路聚合,并在所有三个主机上使用“基于原始虚拟端口的路由”选项。

这样就可以恢复192.168.9.0/24网络的正常行为和更好的10.10.10.0/24网络连接。我说更好是因为有些机器仍然无法访问,也就是说,那些机器Host3甚至无法访问 DHCP 服务器来检索 IP。
使用 Wireshark 观察流量,我们发现 ARP 广播有时会被过滤,这解释了为什么有些机器无法相互通信,但仍然没有给我们任何可能的解决方案的线索。

经过几个星期的苦苦挣扎却依然没有找到答案之后,我们聘请了最初帮助安装基础设施的顾问,他们告诉了我们两件事:

  1. LACP 与 VLAN 不兼容
  2. 交换机的一个端口禁止使用 VLAN 42

因此,确保配置根本不使用 LACP,并且消除端口上的限制以实现完全正常工作的情况。

现在,我们不禁想知道如何设法仅在交换机的一个端口上禁止 VLAN 42。

至于 LACP 和 VLAN 不兼容,我们从未想到这可能是问题的根源,但现在他们告诉我们了,这似乎是堆叠 DELL 交换机时的一个众所周知的问题,但我找不到有关这个问题的任何明确答案。但由于没有它它也能正常工作,所以对我来说一切都很好。

相关内容