若要以 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 做為檔案名稱。