DHCP サーバが TFTP または HTTP サーバのアドレスと初期ブートローダーのファイル名を ESXi ホストに送信する必要があります。

ターゲット マシンは初めて起動するときに、ネットワーク全体にパケットをブロードキャストして、起動に必要な情報を要求します。DHCP サーバがこれに応答します。DHCP サーバは、ターゲット マシンの起動が許可されているかどうかと、初期ブート ローダーのバイナリの場所を判断できる必要があります。PXE ブートの場合、場所は TFTP サーバ上のファイルです。UEFI HTTP ブートの場合、場所は URL です。

注意: ネットワークにすでに DHCP サーバがある場合は、2 台目の DHCP サーバを設定しないでください。複数の DHCP サーバが DHCP 要求に応答すると、マシンが不正な、または競合する IP アドレスを取得するか、正しい起動情報を受け取れない可能性があります。DHCP サーバを設定する前に、ネットワーク管理者に確認してください。DHCP の構成についてサポートが必要な場合は、DHCP サーバのベンダーに問い合わせてください。

使用できる DHCP サーバは多数あります。次の例は、ISC DHCP サーバの場合です。Microsoft Windows 用の DHCP バージョンを使用している場合は、DHCP サーバのドキュメントを参照して、next-server 引数と filename 引数をターゲット マシンに渡す方法を確認してください。

IPv4 で PXE および TFTP を使用した起動の例

この例では、IPv4 アドレスが xxx.xxx.xxx.xxx の TFTP サーバを使用して ESXi を PXE ブートするように ISC DHCP サーバを構成する方法を示しています。

#
# 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.0 または mboot.efi バイナリ ファイルの場所を示します。

IPv6 で PXE および TFTP を使用した起動の例

この例では、IPv6 アドレスが xxxx:xxxx:xxxx:xxxx::xxxx の TFTP サーバを使用して ESXi を PXE ブートするように ISC DHCPv6 サーバを構成する方法を示しています。

#
# 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 で iPXE および HTTP を使用した起動の例

この例では、IPv4 アドレスが xxx.xxx.xxx.xxx の TFTP サーバから iPXE をロードすることによって ESXi を起動するように ISC DHCP サーバを構成する方法を示しています。

#
# 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 {
      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 {
      if exists user-class and option user-class = "iPXE" {
         # Instruct iPXE to load pxelinux as secondary bootloader
         filename = "pxelinux.0";
      } else {
         # Load the undionly configuration of iPXE as initial bootloader
         filename = "undionly.kpxe";
   }
}

マシンが PXE ブートを行うときには、DHCP サーバが IP アドレスと TFTP サーバの undionly.kpxe または snponly.efi バイナリ ファイルの場所を示します。レガシー BIOS の場合は、iPXE が次にロードするファイルを DHCP サーバに要求し、サーバはファイル名として pxelinux.0 を返します。UEFI の場合は、iPXE が DHCP サーバにロードする次のファイルを要求し、この時点でサーバはファイル名として mboot.efi を返します。いずれの場合でも、iPXE は常駐で、システムには HTTP の機能があります。そのため、システムは HTTP サーバから追加のファイルをロードできます。

IPv6 で iPXE および HTTP を使用した起動の例

この例では、IPv6 アドレスが xxxx:xxxx:xxxx:xxxx::xxxx の TFTP サーバから iPXE をロードすることによって ESXi を起動するように ISC DHCPv6 サーバを構成する方法を示しています。

#
# 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 を返します。iPXE は常駐で、システムには HTTP の機能があります。そのため、システムは HTTP サーバから追加のファイルをロードできます。

IPv4 で UEFI HTTP を使用した起動の例

この例では、Web サーバ www.example.com から IPv4 上のネイティブ UEFI HTTP を使用して ESXi を起動するように ISC DHCP サーバを構成する方法を示しています。

#
# 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 "httpclients" {
   match if substring(option vendor-class-identifier, 0, 10) = "HTTPClient";
   option vendor-class-identifier "HTTPClient";

   if option client-system-arch = 00:10 {
      # x86_64 UEFI HTTP client
      filename = http://www.example.com/esxi/mboot.efi;
   }
}

IPv6 で UEFI HTTP を使用した起動の例

この例では、Web サーバ www.example.com から IPv6 上のネイティブ UEFI HTTP を使用して ESXi を起動するように ISC DHCPv6 サーバを構成する方法を示しています。

#
# 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.user-class code 15 = { integer 16, string };
option dhcp6.vendor-class code 16 = { integer 32, integer 16, string };

if option dhcp6.client-arch-type = 00:10 {
      # x86_64 HTTP clients
      option dhcp6.vendor-class 0 10 "HTTPClient";
      option dhcp6.bootfile-url "http://www.example.com/esxi/mboot.efi";
}