若要以 PXE 將 ESXi 安裝程式開機,DHCP 伺服器必須將 TFTP 伺服器的位址以及初始開機載入器的檔案名稱傳送給 ESXi 主機。

目標機器首次開機時,會在網路中廣播封包,要求取得自行開機所需的資訊。DHCP 伺服器會進行回應。DHCP 伺服器必須能夠判斷目標機器是否獲准開機,還有初始開機載入器二進位檔案 (通常是 TFTP 伺服器上的檔案) 的位置。

注意: 如果網路中已經有一個 DHCP 伺服器,請勿再設定一個 DHCP 伺服器。如果有多個 DHCP 伺服器回應 DHCP 要求,機器可能會取得錯誤或存在衝突的 IP 位址,或者可能無法接收正確的開機資訊。在設定 DHCP 伺服器之前,請與網路管理員連絡。如需設定 DHCP 的支援,請與 DHCP 伺服器廠商連絡。

許多 DHCP 伺服器都可以對主機進行 PXE 開機。如果使用適用於 Microsoft Windows 的 DHCP 版本,請參閱 DHCP 伺服器說明文件來判定如何將 next-serverfilename 引數傳遞到目標機器。

使用具有 IPv4 的 TFTP 來開機的範例

此範例顯示如何將 ISC DHCP 伺服器設定為使用位於 IPv4 位址 xxx.xxx.xxx.xxx 的 TFTP 伺服器將 ESXi 開機。

#
# ISC DHCP server configuration file snippet.  This is not a complete
# configuration file; see the ISC server documentation for details on
# how to configure the DHCP server.
#
allow booting;
allow bootp;
option client-system-arch code 93 = unsigned integer 16;
class "pxeclients" {
   match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
   next-server xxx.xxx.xxx.xxx;
   if option client-system-arch = 00:07 or option client-system-arch = 00:09 {
      filename = "mboot.efi";
   } else {
      filename = "pxelinux.0";
   }
}

在機器嘗試進行 PXE 開機時,DHCP 伺服器會提供 IP 位址和 TFTP 伺服器上 pxelinux.0mboot.efi 二進位檔案的位置。

使用具有 IPv6 的 TFTP 來開機的範例

此範例顯示如何將 ISC DHCPv6 伺服器設定為使用位於 IPv6 位址 xxxx:xxxx:xxxx:xxxx::xxxx 的 TFTP 伺服器將 ESXi 開機。

#
# ISC DHCPv6 server configuration file snippet.  This is not a complete
# configuration file; see the ISC server documentation for details on
# how to configure the DHCP server.
#
allow booting;
allow bootp;
option dhcp6.bootfile-url code 59 = string;
option dhcp6.bootfile-url "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi";

在機器嘗試進行 PXE 開機時,DHCP 伺服器會提供 IP 位址和 TFTP 伺服器上 mboot.efi 二進位檔案的位置。

使用具有 IPv4 的 HTTP 來開機的範例

此範例顯示如何將 ISC DHCP 伺服器設定為使用位於 IPv4 位址 xxx.xxx.xxx.xxx 的 Web 伺服器將 ESXi 開機。此範例會對舊版 BIOS 主機使用 gPXELINUX 並對 UEFI 主機使用 iPXE。

#
# ISC DHCPv6 server configuration file snippet.  This is not a complete
# configuration file; see the ISC server documentation for details on
# how to configure the DHCP server.
#
allow booting;
allow bootp;
option client-system-arch code 93 = unsigned integer 16;
class "pxeclients" {
   match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
   next-server xxx.xxx.xxx.xxx;
   if option client-system-arch = 00:07 or option client-system-arch = 00:09 {
      if exists user-class and option user-class = "iPXE" {
         # Instruct iPXE to load mboot.efi as secondary bootloader
         filename = "mboot.efi";
      } else {
         # Load the snponly.efi configuration of iPXE as initial bootloader
         filename = "snponly.efi";
      }
   } else {
      filename "gpxelinux.0";
   }
}

在機器嘗試進行 PXE 開機時,DHCP 伺服器會提供 IP 位址和 TFTP 伺服器上 gpxelinux.0snponly.efi 二進位檔案的位置。在 UEFI 案例中,iPXE 接著會向 DHCP 伺服器詢問下一個要載入的檔案,而這次伺服器會傳回 mboot.efi 做為檔案名稱。

使用具有 IPv6 的 HTTP 來開機的範例

此範例顯示如何將 ISC DHCPv6 伺服器設定為使用位於 IPv6 位址 xxxx:xxxx:xxxx:xxxx::xxxx 的 TFTP 伺服器將 ESXi 開機。

#
# ISC DHCPv6 server configuration file snippet.  This is not a complete
# configuration file; see the ISC server documentation for details on
# how to configure the DHCP server.
#
allow booting;
allow bootp;

option dhcp6.bootfile-url code 59 = string;
if exists user-class and option user-class = "iPXE" {
   # Instruct iPXE to load mboot.efi as secondary bootloader
   option dhcp6.bootfile-url "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi";
} else {
   # Load the snponly.efi configuration of iPXE as initial bootloader
   option dhcp6.bootfile-url "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/snponly.efi";
}

在機器嘗試進行 PXE 開機時,DHCP 伺服器會提供 IP 位址和 TFTP 伺服器上 snponly.efi (iPXE) 二進位檔案的位置。iPXE 接著會向 DHCP 伺服器詢問下一個要載入的檔案,而這次伺服器會傳回 mboot.efi 做為檔案名稱。