我们的ESX集群出现了奇怪的行为:
基础设施:
我们在集群中安装了 2 个 ESXi 5.5.0 build 2718055,由 vCenter 管理。我们使用的是 Essentials 许可证,因此没有分布式交换机。我们公司的网络有多个 VLAN,其中大约 10 个是虚拟机服务器所需要的。硬件是 HP DL380 Gen8,8 个 1Gb eth 端口。连接到服务器的交换机(Cisco 2960E 和 3850E)端口配置了 cisco trunk VLAN - 所有数据包都带有其 VLAN 标记。物理网络是完全冗余的,服务器上的两个交换机中的一个和两个网卡中的一个可以发生故障,而不会导致虚拟机崩溃。
所有交换机端口均配置相同,
我使用 2 个虚拟交换机(在每个主机上),每个交换机都分配了
问题
当我重新启动虚拟机并将其放置在 esx1 上并使用自动 ip 地址配置时,该机器将无法获得 DHCP 连接 - 网络连接可用,如果我设置手动 ip 地址,则一切正常,但是pconfig /refresh
正在挂起,并且 DHCPExplorer 找不到有效的 dhcp 服务器(如果我分配手动 ip 地址,我可以 ping 通它)。
现在我必须将机器迁移到 esx2 并等待一段时间(或执行ipconfig /renew
或禁用并启用 nic),机器将获得一个 dhcp 地址。之后我可以将机器移回 esx1,它将完美运行。之后我甚至从 dhcp explorer 获得了积极的结果。
然后我测试该行为是否与网络的物理部分有关:我从受影响的 VLAN 的端口组中删除了除一个之外的所有物理网卡,使用 dhcp 机器进行了几次重新启动,然后使用另一个网卡进行了测试 - 简而言之,我强制来自该端口组的所有流量通过网卡和交换机的一个物理端口。
结果是:问题仅发生在两个不同网卡的两个不同端口上,但它们都连接到同一个交换机。
在我看来,这个交换机似乎以某种方式阻止了对 dhcp 服务的访问。有人见过这样的行为吗?我别无选择——我们很快就想升级到 ESX 6,但由于我们也有 VMWare View Desktop Virtualisation,升级过程将包括大量工作和测试,无法快速完成……
编辑:
由于我们的交换机的可视化配置对于屏幕来说太大,我通过 powershell 导出了虚拟交换机和端口组。
有问题的主机是 host-1002,我发现有问题的网卡是 vmnic4 和 vmnic8,观察到问题的端口组是 PortGroup35 和 PortGroup41
Get-Virtualswitch|select Name, ID, NumPorts, NumPortsAvailable, Nic, MTU, VMHostID
结果:
Name : vSwitch0
Id : key-vim.host.VirtualSwitch-vSwitch0
NumPorts : 4352
NumPortsAvailable : 4309
Nic : {vmnic7, vmnic0, vmnic2, vmnic9}
Mtu : 1500
VMHostId : HostSystem-host-1001
Name : vSwitch2
Id : key-vim.host.VirtualSwitch-vSwitch2
NumPorts : 4352
NumPortsAvailable : 4309
Nic : {vmnic3, vmnic1, vmnic6, vmnic8}
Mtu : 1500
VMHostId : HostSystem-host-1001
Name : vSwitch5
Id : key-vim.host.VirtualSwitch-vSwitch5
NumPorts : 4352
NumPortsAvailable : 4309
Nic : {vmnic4}
Mtu : 1500
VMHostId : HostSystem-host-1001
Name : vSwitch0
Id : key-vim.host.VirtualSwitch-vSwitch0
NumPorts : 4352
NumPortsAvailable : 4304
Nic : {vmnic7, vmnic3, vmnic5, vmnic9}
Mtu : 1500
VMHostId : HostSystem-host-1002
Name : vSwitch2
Id : key-vim.host.VirtualSwitch-vSwitch2
NumPorts : 4352
NumPortsAvailable : 4304
Nic : {vmnic8, vmnic4, vmnic6, vmnic2}
Mtu : 1500
VMHostId : HostSystem-host-1002
Name : vSwitch5
Id : key-vim.host.VirtualSwitch-vSwitch5
NumPorts : 4352
NumPortsAvailable : 4304
Nic : {vmnic1}
Mtu : 1500
VMHostId : HostSystem-host-1002
Get-Virtualportgroup|select Name, VirtualSwitchId, Key, VLANId, VMHostID
结果:
Name : PORTGROUP82
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP82
VLanId : 82
VMHostId : HostSystem-host-1001
Name : PORTGROUP90
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP90
VLanId : 90
VMHostId : HostSystem-host-1001
Name : PORTGROUP83
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP83
VLanId : 83
VMHostId : HostSystem-host-1001
Name : PORTGROUP16
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP16
VLanId : 16
VMHostId : HostSystem-host-1001
Name : Management Network
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-Management Network
VLanId : 41
VMHostId : HostSystem-host-1001
Name : PORTGROUP80
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key : key-vim.host.PortGroup-PORTGROUP80
VLanId : 80
VMHostId : HostSystem-host-1001
Name : PORTGROUP41
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key : key-vim.host.PortGroup-PORTGROUP41
VLanId : 41
VMHostId : HostSystem-host-1001
Name : PORTGROUP35
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key : key-vim.host.PortGroup-PORTGROUP35
VLanId : 35
VMHostId : HostSystem-host-1001
Name : VMkernel
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch5
Key : key-vim.host.PortGroup-VMkernel
VLanId : 0
VMHostId : HostSystem-host-1001
Name : PORTGROUP43
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP43
VLanId : 43
VMHostId : HostSystem-host-1001
Name : PORTGROUP82
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP82
VLanId : 82
VMHostId : HostSystem-host-1002
Name : PORTGROUP83
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP83
VLanId : 83
VMHostId : HostSystem-host-1002
Name : PORTGROUP90
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP90
VLanId : 90
VMHostId : HostSystem-host-1002
Name : PORTGROUP16
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP16
VLanId : 16
VMHostId : HostSystem-host-1002
Name : Management Network
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-Management Network
VLanId : 41
VMHostId : HostSystem-host-1002
Name : PORTGROUP80
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key : key-vim.host.PortGroup-PORTGROUP80
VLanId : 80
VMHostId : HostSystem-host-1002
Name : PORTGROUP41
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key : key-vim.host.PortGroup-PORTGROUP41
VLanId : 41
VMHostId : HostSystem-host-1002
Name : PORTGROUP35
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key : key-vim.host.PortGroup-PORTGROUP35
VLanId : 35
VMHostId : HostSystem-host-1002
Name : VMkernel
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch5
Key : key-vim.host.PortGroup-VMkernel
VLanId : 0
VMHostId : HostSystem-host-1002
Name : PORTGROUP43
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key : key-vim.host.PortGroup-PORTGROUP43
VLanId : 43
VMHostId : HostSystem-host-1002
编辑:新信息
现在我意识到,为什么问题只发生在 esx1 上:这些机器的 dhcp 服务器是一个虚拟机,放置在 esx2 上。因此,来自 esx2 上机器的 dhcp 请求甚至不必离开虚拟交换机。如果我将 dhcp 服务器移动到 esx1,问题就会在那里解决,并在 esx2 上启动。仍然只有一个交换机受到影响,另一个工作正常。所以在我看来,问题肯定出在物理交换机上,而不是虚拟交换机上。
答案1
答案2
感谢您更新您的问题和评论,基本上您需要在该端口/VLAN 的特定交换机上设置“DHCP 助手”。
基本上在 switch 上做;
启用 conf t int {任何端口} ip helper-address {DHCP 服务器 IP 或集群 VIP}
然后测试,如果成功则将您的配置写回启动。