ESXi 설치 관리자를 PXE 부팅하려면 DHCP 서버가 TFTP 서버의 주소와 초기 부트 로더의 파일 이름을 ESXi 호스트에 보내야 합니다.

대상 시스템은 처음 부팅될 때 자체적으로 부팅하기 위해 네트워크를 통해 패킷을 브로드캐스트하여 필요한 정보를 요청합니다. DHCP 서버가 응답합니다. DHCP 서버는 대상 시스템의 부팅이 허용되는지 여부와 초기 부트 로더 이진 파일의 위치(일반적으로 TFTP 서버에 있는 파일)를 확인할 수 있어야 합니다.

경고: 네트워크에 DHCP 서버가 이미 있는 경우에는 새 DHCP 서버를 설정하지 마십시오. 여러 DHCP 서버가 DHCP 요청에 응답하면 시스템이 잘못되거나 충돌하는 IP 주소를 얻게 되거나 적절한 부팅 정보를 받지 못할 수도 있습니다. DHCP 서버를 설정하기 전에 네트워크 관리자와 상의하십시오. DHCP 구성에 대한 지원을 받으려면 DHCP 서버 벤더에 문의하십시오.

많은 DHCP 서버가 호스트를 PXE 부팅할 수 있습니다. Microsoft Windows용 DHCP 버전을 사용하는 경우 next-serverfilename 인수를 타겟 시스템으로 전달하는 방법을 확인하려면 DHCP 서버 설명서를 참조하십시오.

IPv4 주소를 가진 TFTP를 사용하는 부팅의 예제

이 예제에서는 IPv4 주소 xxx.xxx.xxx.xxx에 있는 TFTP 서버를 사용하여 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 {
      filename = "mboot.efi";
   } else {
      filename = "pxelinux.0";
   }
}

시스템이 PXE 부팅을 시도하면 DHCP 서버는 IP 주소와 TFTP 서버에 있는 pxelinux.0 또는 mboot.efi 이진 파일의 위치를 제공합니다.

IPv6 주소를 가진 TFTP를 사용하는 부팅의 예제

이 예제에서는 IPv6 주소 xxxx:xxxx:xxxx:xxxx::xxxx에 있는 TFTP 서버를 통해 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.bootfile-url "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi";

시스템이 PXE 부팅을 시도하면 DHCP 서버는 IP 주소와 TFTP 서버에 있는 mboot.efi 이진 파일의 위치를 제공합니다.

IPv4 주소를 가진 HTTP를 사용하는 부팅의 예제

이 예제에서는 IPv4 주소 xxx.xxx.xxx.xxx에 있는 웹 서버를 사용하여 ESXi를 부팅하도록 ISC DHCP 서버를 구성하는 방법을 보여 줍니다. 이 예제에서는 기존 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.0 또는 snponly.efi 이진 파일의 위치를 제공합니다. UEFI의 경우 iPXE는 다음으로 로드할 파일을 DHCP 서버에 요청하고, 이번에는 서버에서 mboot.efi를 파일 이름으로 반환합니다.

IPv6 주소를 가진 HTTP를 사용하는 부팅의 예제

이 예제에서는 IPv6 주소 xxxx:xxxx:xxxx:xxxx::xxxx에 있는 TFTP 서버를 통해 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를 파일 이름으로 반환합니다.