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

在大型 VMware vSphere 基礎架構中,您可能只知道虛擬機器 (VM) 的 IP 位址,卻需要其名稱;或者反之亦然。例如,您可能已取得 IP 位址,並能透過 SSH 或遠端桌面協定 (RDP) 遠端存取客體作業系統,但需要該虛擬機器的名稱,才能在 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 工具 必須在客體作業系統 (OS) 上安裝此軟體,才能在 VMware vSphere Client 的網頁介面中檢視 IP 位址。虛擬機器必須處於開機狀態。
    How To Find IP Address Of Virtual Machine

在 vSphere Client 中檢查 MAC 位址

虛擬機器(VM)的 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 虛擬機器 (VM) 產生 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 位址產生範例,來了解虛擬機器的 MAC 位址在獨立 ESXi 主機上是如何產生的,並掌握其產生原理。虛擬機器通用唯一識別碼 (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

讓我們檢查虛擬機器 (VM) 的 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</em>

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

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 備份。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面探索本解決方案的所有資料保護功能。15 天免費試用。無任何特點或容量限制。無需提供信用卡資訊。

People also read