Le serveur DHCP doit envoyer l'adresse du serveur TFTP ou HTTP et le nom de fichier du chargeur de démarrage initial à l'hôte ESXi.

Lorsque la machine cible démarre pour la première fois, elle transmet un paquet sur le réseau demandant cette information pour pouvoir démarrer. Le serveur DHCP répond. Le serveur DHCP doit pouvoir déterminer si la machine cible est autorisée à démarrer et connaître l'emplacement du fichier binaire de démarrage initial. Pour le démarrage PXE, l'emplacement est un fichier sur un serveur TFTP. Pour le démarrage HTTP UEFI, l'emplacement est une URL.

Attention : Ne configurez un second serveur DHCP si votre réseau en compte déjà un. Si plusieurs serveurs DHCP répondent aux requêtes DHCP, les machines peuvent obtenir des adresses IP incorrectes ou conflictuelles, ou ne pas recevoir les bonnes informations de démarrage. Adressez-vous à un administrateur réseau avant de configurer un serveur DHCP. Pour obtenir de l'aide à propos de la configuration du serveur DHCP, adressez-vous au fournisseur du serveur DHCP.

Vous pouvez utiliser plusieurs serveurs DHCP. Les exemples suivants concernent un serveur ISC DHCP. Si vous utilisez une version DHCP pour Microsoft Windows, reportez-vous à la documentation du serveur DHCP pour déterminer comment transmettre les arguments next-server et filename à la machine cible.

Exemple de démarrage en utilisant PXE et TFTP avec IPv4

Cet exemple présente la configuration d'un serveur ISC DHCP pour démarrer ESXi par PXE à l'aide d'un serveur TFTP à l'adresse 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";
   }
}

Lorsqu'une machine tente de démarrer en PXE, le serveur DHCP fournit une adresse IP et l'emplacement du fichier binaire pxelinux.0 ou mboot.efisur le serveur TFTP.

Exemple de démarrage en utilisant PXE et TFTP avec IPv6

Cet exemple montre comment configurer un serveur ISC DHCPv6 pour effectuer un démarrage PXE d'ESXi à l'aide d'un serveur TFTP à l'adresse 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";

Lorsqu'une machine tente de démarrer en PXE, le serveur DHCP fournit une adresse IP et l'emplacement du fichier binaire mboot.efi sur le serveur TFTP.

Exemple de démarrage en utilisant iPXE et HTTP avec IPv4

Cet exemple montre comment configurer un serveur ISC DHCP pour démarrer ESXi en chargeant iPXE à partir d'un serveur TFTP à l'adresse 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";
   }
}

Lorsqu'une machine tente de démarrer en PXE, le serveur DHCP fournit une adresse IP et l'emplacement du fichier binaire gundionly.kpxe ou snponly.efi sur le serveur TFTP. Dans le cas du BIOS hérité, iPXE demande au serveur DHCP le fichier suivant à charger. Le serveur retourne cette fois le nom de fichier pxelinux.0. Dans le cas de l'UEFI, iPXE demande au serveur DHCP le fichier suivant à charger. Le serveur retourne cette fois le nom de fichier mboot.efi. Dans les deux cas, iPXE est résident et le système dispose de la capacité HTTP. Par conséquent, le système peut charger des fichiers supplémentaires à partir d'un serveur HTTP.

Exemple de démarrage en utilisant iPXE et HTTP avec IPv6

Cet exemple montre comment configurer un serveur ISC DHCPv6 pour démarrer ESXi en chargeant iPXE depuis un serveur TFTP à l'adresse 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";
}

Lorsqu'une machine tente de démarrer en PXE, le serveur DHCP fournit une adresse IP et l'emplacement du fichier binaire snponly.efi (iPXE) sur le serveur TFTP. iPXE demande au serveur DHCP le fichier suivant à charger. Le serveur retourne cette fois le nom de fichier mboot.efi. iPXE est résident et le système dispose de la capacité HTTP. Par conséquent, le système peut charger des fichiers supplémentaires à partir d'un serveur HTTP.

Exemple de démarrage en utilisant UEFI HTTP avec IPv4

Cet exemple montre comment configurer un serveur ISC DHCP pour démarrer ESXi à l'aide de HTTP UEFI natif sur IPv4 à partir du serveur 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;
   }
}

Exemple de démarrage en utilisant UEFI HTTP avec IPv6

Cet exemple montre comment configurer un serveur ISC DHCPv6 pour démarrer ESXi à l'aide de HTTP UEFI natif sur IPv6 à partir du serveur 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";
}