透過 IP 或 MAC 位址定位 VMware 虛擬機器的位置

在大型 VMware vSphere 基礎架構中,您可能只知道虛擬機器的 IP 位址,卻需要其名稱;或者反之亦然。例如,您可能透過 SSH 或遠端桌面協定 (RDP) 遠端存取客體作業系統時已知其 IP 位址,但為了進行設定、遷移或備份,需要虛擬機器的名稱才能在 ESXi 主機上找到該虛擬機器的位置。您可以透過 vSphere 完成這些操作,但無法透過客體作業系統完成。

此外,您可能需要識別虛擬機器所使用的虛擬網路介面卡的 MAC 位址。在這篇部落格文章中,我們將說明如何查找虛擬機器的 IP 或 MAC 位址,以及當您已知 IP 或 MAC 位址時,如何找出虛擬機器的名稱。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

在 VMware vSphere Client 中檢查 IP 位址

在 VMware vSphere 中檢查虛擬機器 IP 位址的最簡單方法,就是使用 VMware vSphere Client。

  1. 在網頁瀏覽器中,於網址列輸入您的 vCenter Server IP 位址,開啟 vSphere Client,並輸入您的憑證以登入。
  2. 前往 Hosts and Clusters,根據名稱選取所需的虛擬機器,並勾選 Summary [標籤]。虛擬機器的 VMware IP 位址顯示在 IP addresses 節。一台虛擬機器可以擁有多個虛擬網路介面卡和多個 IP 位址。
  3. 點擊 View all N IP addresses 以顯示虛擬機器所使用的所有 IP 位址。
  4. 在下方的螢幕截圖中,您可以看到一臺 VMware 虛擬機器所使用的 1 個 IPv4 位址和 1 個 IPv6 位址。 VMware Tools 必須在客體作業系統 (OS) 上安裝此軟體,才能在 VMware vSphere Client 的網頁介面中查看 IP 位址。虛擬機器必須處於開機狀態。
    How To Find IP Address Of Virtual Machine

在 vSphere Client 中檢查 MAC 位址

虛擬機器的 MAC 位址可用於網路診斷及其他用途。

  1. 若要檢查 MAC 位址,請在 Navigator VMware vSphere Client 的視窗中,在快顯選單中,按一下 Edit Settings.
  2. Virtual Hardware 的""分頁 Edit Settings 在視窗中,按一下網路介面卡的名稱,以查看虛擬機器所使用的虛擬網路介面卡的 MAC 位址。VMware vSphere Client MAC

在 VMware Host Client 中檢查虛擬機的 IP 位址

如果您使用的是未安裝 VMware vCenter, 您無法使用 VMware vSphere Client 來管理虛擬環境。此情況發生於您使用 ESXi 免費版本 在伺服器上。在此情況下,您可以使用 VMware Host Client 透過網頁介面管理 ESXi 主機。

  1. 在網頁瀏覽器的網址列中輸入您的 ESXi 主機的 IP 位址,並輸入 ESXi 管理員帳戶的用戶名稱和密碼。
  2. Navigator 窗格,點擊 Virtual Machines 並選取需要確認 IP 位址的虛擬機器。與在 vSphere Client 中確認虛擬機器的 VMware IP 位址相同,該虛擬機器必須已啟動,且客體作業系統上必須已安裝 VMware Tools。
  3. 在虛擬機器資訊頁面上,找到包含位置 General information 然後點擊 Networking 展開該窗格,以檢視虛擬機器所使用的 IP 位址。Checking a VM’s IP address in VMware Host Client

在 VMware Host Client 中檢查虛擬機器 MAC 位址

  1. 要在 VMware Host Client 中查看虛擬機的 MAC 位址,請如同查看 IP 位址時那樣選取該虛擬機。
  2. 請向下捲動頁面至 Hardware Configuration 網頁介面中的該區段。
  3. 點選所需的虛擬機器網路介面卡以展開選項,並找出對應虛擬網路介面卡的 MAC 位址。The VMware Virtual Machine MAC Address

註: 在此範例中,我們使用由 vCenter Server 管理的 ESXi 主機,但目前已登入 VMware Host Client。這些虛擬機器是在 vCenter 中建立的。

VMware vSphere 中的虛擬機器搜尋功能允許您透過名稱查找虛擬機器,但無法透過 IP 位址或 MAC 位址進行搜尋。

根據 IP 位址識別虛擬機器名稱

如果您知道 IP 位址,可以使用以下方式識別虛擬機器名稱: vSphere PowerCLI.

  1. 連線至 ESXi 主機或 vCenter,並輸入管理帳戶的使用者名稱和密碼:
    Connect-VIServer ESXi_or_vCenter_IP -User root
  2. 在我們的情況下,我們使用以下指令連線至由 vCenter Server 管理的 ESXi 主機:
    Connect-VIServer 10.10.10.74 -User root
  3. 顯示具有指定 IP 位址之虛擬機器的最簡單指令是:
    Get-VM * |where-object{$_.Guest.IPAddress -match "192.168.17.137"}在哪裡 192.168.17.137 是待識別虛擬機器的 IP 位址。Detecting A VM name

如果您知道 PowerCLI 中某台虛擬機的 IP 位址,還有另一種方法可以識別該虛擬機的名稱。在這種情況下,您需要執行兩條指令。

  1. 請指定要識別的虛擬機器之 IP 位址:
    $vmIP="192.168.17.137"
  2. 取得虛擬機器相關資訊:
    Get-VM * |where-object{$_.Guest.IPAddress -eq $vmIP}|select Name, VMHost, PowerState,GuestId,@{N="IP Address";E={@($_.guest.IPAddress[0])}}|ftIdentifying The Name Of A VM
  3. 如果您知道 IP 位址的一部分,即可顯示所有 IP 位址符合搜尋模式的虛擬機器。
    $vmIP="192.168."

    Get-VM * |where-object{$_.Guest.IPAddress -match $vmIP}|select Name, VMHost, PowerState,@{N="IP Address";E={@($_.guest.IPAddress[0])}} ,@{N="OS";E={$_.Guest.OSFullName}},@{N="Hostname";E={$_.Guest.HostName}}|ft
    The Command To Display VM Names
  4. 以下是一條用於取得主機或叢集中所有虛擬機器清單,並在可能的情況下顯示 IP 位址的指令:
    Get-VM | Select Name, @{N="IP Address";E={@($_.guest.IPAddress[0])}}

此方法的缺點在於,有時 IP 位址只會顯示部分內容。

  • 此外,還有一個命令可用於檢視叢集中的所有虛擬機器(叢集名稱包含 “cluster” 字串)並在可能的情況下顯示 IP 位址:
    Get-Cluster "*cluster*" | Get-VM | Select Name, Host, @{N="IP Address";E={@($_.guest.IPAddress[0])}}變更 [0][1] 如果您想顯示第二個 IP 位址,可以從指令中刪除這些字元,以查看顯示結果的差異。

透過 MAC 位址識別虛擬機器名稱

如果您知道虛擬機的 MAC 位址,也可以使用 VMware PowerCLI 來識別虛擬機名稱。

  1. 在 VMware PowerCLI 中連線至 ESXi 主機或 vCenter。在此範例中,我將連線至前一個範例中提到的 ESXi 主機:
    Connect-VIServer 10.10.10.74 -User root
  2. 請指定虛擬機器的 MAC 位址,並找出此虛擬機器的名稱:
    $vmMAC="00:50:56:84:C4:5F"

    Get-VM | Get-NetworkAdapter | Where-Object {$_.MacAddress -eq $vmMAC } | Select-Object Parent,Name,MacAddress
    How To Identify The VM Name
  3. 您可以透過 SSH 連線至 ESXi 主機,並使用 ESXi 命令列 介面)以透過虛擬機器的 MAC 位址來識別虛擬機器的名稱。
    find /vmfs/volumes | grep .vmx$ | while read i; do grep -i "00:50:56:84:C4:5F" "$i" && echo "$i"; doneHow To Identify The VM Name ESXi

VMware 環境中的虛擬機器 MAC 位址

MAC 位址並非隨機分配。MAC 位址的前半部通常與相應的硬體或軟體製造商相關聯。

00:50:56 這些是屬於 VMware 虛擬機器的 MAC 位址,正如我在先前範例中識別 VMware 虛擬機器 MAC 位址時所示。

VMware MAC 位址有四種分配方式: 00:50:56, 00:0C:29, 00:05:69, 00:1C:14. 讓我們來看看 VMware MAC 位址區間的一些常見類別:

  • 00:50:56 – VMware 工作站、VMware vSphere、VMware ESXi 伺服器
  • 00:50:56:80:00:00 - 00:50:56:BF:FF:FF – vCenter、由 vCenter 管理的 VMware vSphere 虛擬機器
  • 00:0C:29 – 獨立 ESXi 主機、VMware Horizon、VMware 工作站
  • 00:05:69 – VMware ESXi、VMware GSX
  • 00:1C:14 – VMware

根據 VMware OUI 分配方案,組織唯一識別碼 (OUI) 會用作 VMware MAC 位址的前綴。VMware vCenter 與 ESXi 主機會使用不同的 MAC 位址前綴,以避免在主機尚未連線至 vCenter Server、但日後可能連線至 vCenter 的情況下,發生 MAC 位址衝突。 若 ESXi 主機由 vCenter 管理,則 vCenter 會為 VMware 虛擬機器生成 VMware vSphere MAC 位址。

當虛擬機器的 MAC 位址是手動設定(在虛擬機器設定中)時,前綴(前三個八位元組)會自動保留。MAC 位址的後半部則可自訂。

若要手動為 VMware 虛擬機器設定 MAC 位址,請使用此範本:

00:50:56:XX:YY:ZZ

  • 建議的十六進位數值,取代 XX 是一個介於 00 以及 3F.
  • 有效的數字為 YY 以及 ZZ 數值範圍在 00 以及 FF (全系列)。

遵循這些建議,可協助您避免手動設定的 MAC 位址與 VMware vCenter 自動產生的 VMware MAC 位址,以及指派給 VMkernel 介面卡的 MAC 位址之間發生衝突。請注意,手動設定的 VMware MAC 位址的最大值為 00:50:56:3F:FF:FF 如果 00:50:56 使用前綴 (OUI)。此方法亦有助於識別手動及自動指派的 VMware MAC 位址。請注意,網路中的所有 MAC 位址都必須是唯一的。

vCenter 唯一識別碼的計算方式

讓我們進一步探討識別 VMware vCenter MAC 位址的其他面向。

如前所述,vCenter 的 MAC 位址是從以下範圍中分配的 (00:50:56:80:00:00 - 00:50:56:BF:FF:FF)00:50:56:XX:YY:ZZ 格式。

在這種情況下,該 XX 該值是根據 vCenter 唯一識別碼計算得出的。

XX=80+vCenterID

如果您知道 vCenter 的 MAC 位址,即可計算出 vCenter Server 的唯一識別碼(範圍為 0 至 63)。

讓我們以一個實例來說明:當 vCenter Server 部署為虛擬機器,且其網路介面具有 VMware MAC 位址時:

00:50:56:9B:48:55

減去 80 來自 9B (十六進位)。您可以使用 HEX 計算機。

0x9B - 0x80 = 0x1B

HEX 將數值轉換為十進制數值:

0x1B = 27

vCenter 唯一識別碼是 27 在此情況下。

獨立主機上虛擬機器(VM)的 VMware MAC 位址

現在,讓我們透過一個獨立 ESXi 主機上虛擬機器 (VM) 的 MAC 位址生成範例,來了解獨立 ESXi 主機是如何生成虛擬機器的 MAC 位址,並掌握其生成原理。虛擬機器的通用唯一識別碼 (UUID) 的最後六個字元,將用於填入該虛擬機器 VMware MAC 位址的最後三個八位元組。在獨立 ESXi 主機上建立的虛擬機器,其 VMware MAC 位址的前三個八位元組為 00:0C:29.

在下方的螢幕截圖中,您可以看到一臺具有以下參數的虛擬機器:

MAC 位址: 00:0C:29:B0:3E:1D

虛擬機器名稱: Windows-VM

The MAC address format for a VM created on a standalone ESXi host

讓我們檢查虛擬機的 UUID,並比較 UUID 的最後幾個字元與虛擬機的 MAC 位址。

您可以在 PowerCLI 中使用以下指令檢查虛擬機的 UUID:

Get-VM Windows-VM | %{(Get-View $_.Id).config.uuid}

在我們的情況下,UUID 是 564df9a2-261e-869e-5a1d-d118abb03e1d

而 MAC 位址是 <em>00:0C:29:B0:3E:1D

如您所見,這條規則確實有效。

Checking the principle of VMware MAC address generation on a standalone ESXi host

結論

您可以在 VMware vSphere Client 和 VMware Host Client 的圖形使用者介面中查看虛擬機器 (VM) 的 MAC 位址和 IP 位址。此外,如果您知道虛擬機器的名稱,也可以使用 ESXi 命令列或 PowerCLI 來偵測該虛擬機器的 MAC 位址。 若您已知虛擬機器的 IP 或 MAC 位址,亦可使用 VMware PowerCLI 來識別虛擬機器的名稱。了解 VMware 虛擬基礎架構中為虛擬機器及其他裝置分配 MAC 位址的原則,有助於您在檢查連線裝置的 MAC 位址時,從網路中的其他裝置中識別出與 VMware 相關的裝置。

請勿忘記備份在 VMware vSphere 上運行的虛擬機器。請使用可靠的 VMware ESXi 備份軟體,例如 NAKIVO Backup & Replication 以實現強大的資料保護。此解決方案支援虛擬機器備份、實體伺服器備份、資料庫備份以及 Microsoft 365 備份。

1 年免費資料保護: NAKIVO Backup & Replication

1 年免費資料保護: NAKIVO Backup & Replication

2 分鐘即可部署,並保護虛擬、雲端、實體及 SaaS 資料。提供備份、複製與快速還原選項。

People also read