El servidor DHCP debe enviar la dirección del servidor TFTP o HTTP, y el nombre de archivo del cargador de arranque inicial al host ESXi.

Cuando la máquina de destino arranca por primera vez, transmite un paquete mediante la red para solicitar información a fin de realizar el arranque por sí misma. El servidor DHCP responde. El servidor DHCP debe ser capaz de determinar si la máquina de destino puede arrancar y, asimismo, de determinar la ubicación del archivo binario del cargador de arranque inicial. Para el arranque PXE, la ubicación es un archivo en un servidor TFTP. Para el arranque UEFI HTTP, la ubicación es una URL.

Precaución: No configure un segundo servidor DHCP si la red ya tiene uno. Si varios servidores DHCP responden a las solicitudes de DHCP, las máquinas pueden obtener direcciones IP incorrectas o en conflicto, o no recibir la información de arranque correcta. Consulte a un administrador de red antes de configurar un servidor DHCP. Para obtener asistencia en relación con la configuración de DHCP, póngase en contacto con el proveedor del servidor DHCP.

Hay muchos servidores DHCP que puede utilizar. Los siguientes ejemplos son para un servidor DHCP de ISC. Si usa una versión de DHCP para Microsoft Windows, consulte la documentación del servidor DHCP para determinar cómo transmitir los argumentos next-server y filename a la máquina de destino.

Ejemplo de arranque mediante PXE y TFTP con IPv4

En este ejemplo se muestra cómo configurar un servidor DHCP de ISC para el arranque PXE de ESXi mediante un servidor TFTP en una dirección IPv4 xxx.xxx.xxx.xxx.

#
# 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";
   }
}

Cuando una máquina intenta realizar un arranque PXE, el servidor DHCP proporciona una dirección IP y la ubicación del archivo binario pxelinux.0 o mboot.efi en el servidor TFTP.

Ejemplo de arranque mediante PXE y TFTP con IPv6

En este ejemplo se muestra cómo configurar un servidor DHCPv6 de ISC para el arranque PXE de ESXi mediante un servidor TFTP en una dirección IPv6 xxxx:xxxx:xxxx:xxxx::xxxx.

#
# 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";

Cuando una máquina intenta realizar un arranque PXE, el servidor DHCP proporciona una dirección IP y la ubicación del archivo binario mboot.efi en el servidor TFTP.

Ejemplo de arranque mediante iPXE y HTTP con IPv4

En este ejemplo se muestra cómo configurar un servidor DHCP de ISC para arrancar ESXi mediante la carga de iPXE desde un servidor TFTP en una dirección IPv4 xxx.xxx.xxx.xxx.

#
# 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";
   }
}

Cuando una máquina intenta realizar un arranque PXE, el servidor DHCP proporciona una dirección IP y la ubicación del archivo binario undionly.kpxe o snponly.efi en el servidor TFTP. En el caso de BIOS heredado, iPXE pide al servidor DHCP el siguiente archivo que se debe cargar y el servidor devuelve el nombre de archivo pxelinux.0. En el caso de UEFI, iPXE pide al servidor DHCP el siguiente archivo que se debe cargar y, en esta ocasión, el servidor devuelve el nombre de archivo mboot.efi. En ambos casos, iPXE es residente, y el sistema tiene la capacidad HTTP. Como resultado, el sistema puede cargar archivos adicionales desde un servidor HTTP.

Ejemplo de arranque mediante iPXE y HTTP con IPv6

En este ejemplo se muestra cómo configurar un servidor DHCPv6 de ISC para arrancar ESXi mediante la carga de iPXE desde un servidor TFTP en una dirección IPv6 xxxx:xxxx:xxxx:xxxx::xxxx.

#
# 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";
}

Cuando una máquina intenta realizar un arranque PXE, el servidor DHCP proporciona una dirección IP y la ubicación del archivo binario snponly.efi (iPXE) en el servidor TFTP. iPXE pide al servidor DHCP el siguiente archivo que se debe cargar y, en esta ocasión, el servidor devuelve el nombre de archivo mboot.efi. iPXE es residente y el sistema tiene la capacidad HTTP. Como resultado, el sistema puede cargar archivos adicionales desde un servidor HTTP.

Ejemplo de arranque mediante UEFI HTTP con IPv4

En este ejemplo se muestra cómo configurar un servidor DHCP de ISC para arrancar ESXi mediante el uso de UEFI HTTP nativo en IPv4 desde el servidor web www.example.com.

#
# 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;
   }
}

Ejemplo de arranque mediante UEFI HTTP con IPv6

En este ejemplo se muestra cómo configurar un servidor DHCPv6 de ISC para que arranque ESXi mediante el uso de HTTP UEFI nativo en IPv6 desde el servidor web www.example.com.

#
# 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";
}