VMware - 虚拟机重启后未获取 DHCP 地址

VMware - 虚拟机重启后未获取 DHCP 地址

我们的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

您的交换机可能存在不一致生成树不同交换机端口上的设置。

您等待了多久才认为此操作“失败”?您是否有权访问 Cisco 交换机配置?


除此之外,最好查看一下虚拟交换机的配置像这个例子

答案2

感谢您更新您的问题和评论,基本上您需要在该端口/VLAN 的特定交换机上设置“DHCP 助手”。

基本上在 switch 上做;

启用 conf t int {任何端口} ip helper-address {DHCP​​ 服务器 IP 或集群 VIP}

然后测试,如果成功则将您的配置写回启动。

相关内容