DHCP サーバが TFTP または HTTP サーバのアドレスと初期ブートローダーのファイル名を ESXi ホストに送信する必要があります。
ターゲット マシンは初めて起動するときに、ネットワーク全体にパケットをブロードキャストして、起動に必要な情報を要求します。DHCP サーバがこれに応答します。DHCP サーバは、ターゲット マシンの起動が許可されているかどうかと、初期ブート ローダーのバイナリの場所を判断できる必要があります。PXE ブートの場合、場所は TFTP サーバ上のファイルです。UEFI HTTP ブートの場合、場所は URL です。
使用できる 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"; }