由于虚拟机具有 vCenter Server 生成的重复 MAC 地址,因此您会遇到数据包和连接丢失的情况。
问题
同一广播域或 IP 子网中虚拟机的 MAC 地址存在冲突,或者 vCenter Server 为新创建的虚拟机生成重复的 MAC 地址。
某台虚拟机可以打开电源并正常工作,但与另一台虚拟机共享一个 MAC 地址。这种情况可能会导致数据包丢失及其他问题。
原因
虚拟机可能由于多种原因而具有重复的 MAC 地址。
解决方案
- 手动更改虚拟机网络适配器的 MAC 地址。
如果您的现有虚拟机具有冲突的 MAC 地址,则必须在
虚拟硬件设置中提供一个唯一的 MAC 地址。
- 关闭虚拟机的电源,将适配器配置为使用手动型 MAC 地址,然后键入新地址。
- 如果无法关闭虚拟机的电源以便进行配置,请重新创建一个与已启用的手动型 MAC 地址分配冲突的网络适配器,然后键入新地址。在客户机操作系统中,将重新添加的适配器的静态 IP 地址设置为与以前相同。
有关配置虚拟机网络适配器的信息,请参见《vSphere 网络连接》和《vSphere 虚拟机管理》文档。
- 如果 vCenter Server 实例根据默认分配 VMware OUI 生成虚拟机的 MAC 地址,则请更改 vCenter Server 实例 ID 或使用其他分配方法以解决冲突。
注: 更改
vCenter Server 实例 ID 或切换到其他分配方案不会解决现有虚拟机中的 MAC 地址冲突问题。根据新方案,只有更改后创建的虚拟机或添加的网络适配器能收到地址。
有关 MAC 地址分配方案和设置的信息,请参见《vSphere 网络连接》文档。
解决方案 |
描述 |
更改 vCenter Server ID |
如果您的部署中包含少量 vCenter Server 实例,则可以继续使用 VMware OUI 分配方案。根据此方案,MAC 地址将具有以下格式: 00:50:56:XX:YY:ZZ 其中 00:50:56 表示 VMware OUI,XX 的计算方式为 (80 + vCenter Server ID),YY:ZZ 是一个随机数。 要更改 vCenter Server 的 ID,请配置 vCenter Server 实例的常规设置的运行时设置部分中的 vCenter Server 的唯一 ID 选项,然后重新启动 vCenter Server。 VMware OUI 分配最多支持 64 个 vCenter Server 实例,适用于小规模部署。 |
切换到基于前缀的分配 |
可以使用自定义 OUI。例如,对于 02:12:34 本地管理的地址范围,MAC 地址的格式将为 02:12:34:XX:YY:ZZ 。可以使用第四个八位字节 XX 在 vCenter Server 实例之间分发 OUI 地址空间。此结构将导致生成 255 个地址集群,其中每个集群由一个 vCenter Server 实例管理,并导致每个 vCenter Server 大约有 65000 个 MAC 地址。例如,02:12:34:01:YY:ZZ 与 vCenter Server A 相对应,02:12:34:02:YY:ZZ 与 vCenter Server B 相对应,依此类推。 基于前缀的分配适用于较大规模的部署。 对于全局唯一 MAC 地址,OUI 必须在 IEEE 中注册。 |
- 配置 MAC 地址分配。
- 对虚拟硬件设置中的现有虚拟机应用新 MAC 地址分配方案。
- 关闭虚拟机的电源,将适配器配置为使用手动型 MAC 地址,恢复为自动型 MAC 地址分配,然后打开虚拟机的电源。
- 如果虚拟机处于生产模式,您无法关闭其电源以便进行配置,请在更改 vCenter Server ID 或地址分配方案后,重新创建与已启用的自动型 MAC 地址分配冲突的网络适配器。在客户机操作系统中,将重新添加的适配器的静态 IP 地址设置为与以前相同。
- 在 vCenter Server 实例之间传输虚拟机时,使用数据存储中的虚拟机文件强制重新生成 MAC 地址。
- 关闭虚拟机的电源,将其从清单中移除,然后在其配置文件 (.vmx) 中将 ethernetX.addressType 参数设置为 generated。
ethernet
旁边的
X
表示虚拟机中虚拟网卡的序列号。
- 通过将数据存储中的虚拟机注册到目标 vCenter Server,将虚拟机从一个 vCenter Server 系统导入到另一个系统中。
虚拟机文件可以驻留在两个
vCenter Server 实例之间共享的数据存储中,或者可以上载到只能从目标
vCenter Server 系统访问的数据存储中。
有关注册数据存储中的虚拟机的信息,请参见《《vSphere 虚拟机管理》》。
- 首次打开虚拟机的电源。
虚拟机启动过程中,
vSphere Client 中的虚拟机上将显示一个信息图标。
- 右键单击虚拟机,然后选择。
- 选择我已复制选项。
目标
vCenter Server 将重新生成虚拟机的 MAC 地址。新 MAC 地址将以 VMware OUI
00:0c:29
开头,并基于虚拟机的 BIOS UUID。虚拟机的 BIOS UUID 根据主机的 BIOS UUID 计算而得。
- 如果 vCenter Server 和主机的版本为 6.0 或更高版本,并且 vCenter Server 实例在增强链接模式下连接,请使用 vMotion 在 vCenter Server 系统之间迁移虚拟机。
在
vCenter Server 系统之间迁移虚拟机时,源
vCenter Server 会将虚拟机的 MAC 地址添加到拒绝列表,但不将其分配给其他虚拟机。