由於虛擬機器具有 vCenter Server 產生的重複 MAC 位址,因此您會遇到封包遺失和連線中斷的情況。

問題

同一廣播網域或 IP 子網路中虛擬機器的 MAC 位址存在衝突,或者 vCenter Server 為新建立的虛擬機器產生重複的 MAC 位址。

某台虛擬機器可以開啟電源並正常運作,但與另一台虛擬機器共用一個 MAC 位址。這種情況可能會導致封包遺失及其他問題。

原因

虛擬機器可能由於多種原因而具有重複的 MAC 位址。

  • 具有相同識別碼的兩個 vCenter Server 執行個體為虛擬機器網路介面卡產生重疊的 MAC 位址。

    每個 vCenter Server 執行個體都具有一個在安裝時隨機產生的介於 0 和 63 之間的識別碼,安裝完成後可以重新設定此識別碼。vCenter Server 使用執行個體識別碼為虛擬機器的網路介面卡產生 MAC 位址。

  • 某台虛擬機器已在關閉電源狀態下從同一網路中的一個 vCenter Server 執行個體傳輸到另一個執行個體 (例如,透過共用儲存區),並且第一個 vCenter Server 上的新虛擬機器網路介面卡會收到釋放的 MAC 位址。

解決方案

  • 手動變更虛擬機器網路介面卡的 MAC 位址。
    如果您的現有虛擬機器具有衝突的 MAC 位址,則必須在 虛擬硬體設定中提供一個唯一的 MAC 位址。
    • 關閉虛擬機器的電源,將介面卡設定為使用手動型 MAC 位址,然後輸入新位址。
    • 如果無法關閉虛擬機器的電源來進行設定,請重新建立與已啟用的手動型 MAC 位址指派衝突的網路介面卡,然後輸入新位址。在客體作業系統中,將重新新增的介面卡的靜態 IP 位址設定為跟之前一樣。

    如需設定虛擬機器網路介面卡的資訊,請參閱 vSphere 網路vSphere 虛擬機器管理說明文件。

  • 如果 vCenter Server 執行個體根據預設配置 VMware OUI 產生虛擬機器的 MAC 位址,請變更 vCenter Server 執行個體識別碼,或使用其他配置方法解決衝突。
    備註: 變更 vCenter Server 執行個體識別碼或切換到不同的配置組合不會解決現有虛擬機器中的 MAC 位址衝突。根據新配置,只有變更後建立的虛擬機器或新增的網路介面卡可以接收位址。

    如需 MAC 位址配置組合和設定的資訊,請參閱 vSphere 網路說明文件。

    解決方案 說明
    變更 vCenter Server 識別碼

    如果您的部署中包含少量 vCenter Server 執行個體,則可以繼續使用 VMware OUI 配置組合。根據此配置,MAC 位址將具有以下格式:

    00:50:56:XX:YY:ZZ

    其中 00:50:56 代表 VMware OUI,XX 的計算方式為 (80 + vCenter Server 識別碼),YY:ZZ 是一個隨機數字。

    若要變更 vCenter Server 識別碼,請在 vCenter Server 執行個體一般設定的執行階段設定區段中設定 vCenter Server 唯一識別碼選項,然後重新啟動 vCenter Server。

    VMware OUI 配置最多支援 64 個 vCenter Server 執行個體,適用於小型部署。

    切換到以首碼為基礎的配置

    可以使用自訂 OUI。例如,對於 02:12:34 本機管理的位址範圍,MAC 位址的格式將為 02:12:34:XX:YY:ZZ。可以使用第四個八位元 XXvCenter 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 中登錄。

    1. 設定 MAC 位址配置。
    2. 虛擬硬體設定中的現有虛擬機器套用新的 MAC 位址配置組合。
      • 關閉虛擬機器的電源,將介面卡設定為使用手動型 MAC 位址,還原為自動配置 MAC 位址,然後開啟虛擬機器的電源。
      • 如果虛擬機器處於生產模式,並且無法關閉其電源來進行設定,請在變更 vCenter Server 識別碼或位址配置組合後,重新建立與已啟用的自動型 MAC 位址指派衝突的網路介面卡。在客體作業系統中,將重新新增的介面卡的靜態 IP 位址設定為跟之前一樣。
  • vCenter Server 執行個體之間傳輸虛擬機器時,使用資料存放區中的虛擬機器檔案強制重新產生 MAC 位址。
    1. 關閉虛擬機器的電源,將其從詳細目錄中移除,然後在其組態檔 (.vmx) 中將 ethernetX.addressType 參數設定為 generated
      ethernet 旁邊的 X 表示虛擬機器中虛擬 NIC 的序號。
    2. 透過將資料存放區中的虛擬機器登錄到目標 vCenter Server,將虛擬機器從一個 vCenter Server 系統匯入到另一個系統中。
      虛擬機器檔案可位於兩個 vCenter Server 執行個體之間共用的資料存放區中,也可以上傳到只能從目標 vCenter Server 系統中存取的資料存放區中。

      如需登錄資料存放區中虛擬機器的資訊,請參閱 vSphere 虛擬機器管理

    3. 首次開啟虛擬機器的電源。
      虛擬機器啟動過程中, vSphere Client 中的虛擬機器上將顯示一個資訊圖示。
    4. 在虛擬機器上按一下滑鼠右鍵,然後選取客體作業系統 > 回答問題
    5. 選取我已將其複製選項。
    目標 vCenter Server 將重新產生虛擬機器的 MAC 位址。新的 MAC 位址將以 VMware OUI 00:0c:29 開頭,並以虛擬機器的 BIOS UUID 為基礎。虛擬機器的 BIOS UUID 根據主機的 BIOS UUID 計算而來。
  • 如果 vCenter Server 及主機為 6.0 版及更新版本,並且 vCenter Server 執行個體在增強型連結模式下處於連線狀態,則可以透過在 vCenter Server 系統之間使用 vMotion 來移轉虛擬機器。
    vCenter Server 系統之間移轉虛擬機器時,來源 vCenter Server 會將該虛擬機器的 MAC 位址新增到封鎖清單,並且不會將其指派給其他虛擬機器。