Der DHCP-Server muss zum Starten des ESXi-Installationsprogramms über das Netzwerk die Adresse des TFTP- oder HTTP-Servers und den Dateinamen des anfänglichen Bootloaders an den ESXi-Host senden.

Beim ersten Start der Zielmaschine sendet sie ein Paket über das Netzwerk, und es werden Informationen angefordert, damit sie selbst starten kann. Der DHCP-Server antwortet. Der DHCP-Server muss feststellen können, ob die Zielmaschine starten darf. Außerdem muss er den Speicherort der anfänglichen Bootloader-Binärdatei ermitteln. Für den PXE-Startvorgang ist der Speicherort eine Datei auf einem TFTP-Server. Für den UEFI HTTP-Startvorgang ist der Speicherort eine URL.

Vorsicht: Richten Sie keinen zweiten DHCP-Server ein, wenn sich bereits einer in Ihrem Netzwerk befindet. Falls mehrere DHCP-Server auf die DHCP-Anforderungen reagieren, können Maschinen falsche oder widersprüchliche IP-Adressen abrufen oder nicht die richtigen Startinformationen erhalten. Sprechen Sie mit einem Netzwerkadministrator, bevor Sie einen DHCP-Server einrichten. Zur Unterstützung bei der Konfiguration von DHCP wenden Sie sich an den Hersteller Ihres DHCP-Servers.

Es gibt viele DHCP-Server, die Sie verwenden können. Die folgenden Beispiele beziehen sich auf einen ISC-DHCP-Server. Wenn Sie eine Version von DHCP für Microsoft Windows verwenden, lesen Sie die DHCP-Serverdokumentation, um zu erfahren, wie die Argumente next-server und filename an die Zielmaschine übergeben werden.

Beispiel für den Start unter Verwendung von PXE und TFTP mit IPv4

In diesem Beispiel wird gezeigt, wie ein ISC-DHCP-Server für den PXE-Start von ESXi unter Verwendung eines TFTP-Servers mit der IPv4-Adresse xxx.xxx.xxx.xxx konfiguriert wird.

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

Wenn eine Maschine einen Startvorgang über PXE versucht, stellt der DHCP-Server eine IP-Adresse und den Speicherort der Binärdatei pxelinux.0 oder mboot.efi auf dem TFTP-Server zur Verfügung.

Beispiel für den Start unter Verwendung von PXE und TFTP mit IPv6

In diesem Beispiel wird gezeigt, wie ein ISC-DHCPv6-Server für den PXE-Start von ESXi über einen TFTP-Server mit der IPv6-Adresse xxxx:xxxx:xxxx:xxxx::xxxx konfiguriert wird.

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

Wenn eine Maschine einen Startvorgang über PXE versucht, stellt der DHCP-Server eine IP-Adresse und den Speicherort der Binärdatei mboot.efi auf dem TFTP-Server zur Verfügung.

Beispiel für den Start unter Verwendung von iPXE und HTTP mit IPv4

In diesem Beispiel wird gezeigt, wie ein ISC-DHCP-Server für den Start von ESXi konfiguriert wird, indem iPXE von einem TFTP-Server mit der IPv4-Adresse xxx.xxx.xxx.xxx geladen wird.

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

Wenn eine Maschine einen Startvorgang über PXE versucht, stellt der DHCP-Server eine IP-Adresse und den Speicherort der Binärdatei undionly.kpxe oder snponly.efi auf dem TFTP-Server zur Verfügung. Im Legacy-BIOS-Fall fordert iPXE dann den DHCP-Server zum Laden der nächsten Datei auf, und der Server gibt pxelinux.0 als den Dateinamen zurück. Im UEFI-Fall fordert iPXE dann den DHCP-Server zum Laden der nächsten Datei auf, und dieses Mal gibt der Server mboot.efi als den Dateinamen zurück. In beiden Fällen ist iPXE enthalten und das System verfügt über HTTP-Funktionalität. Dies führt dazu, dass das System zusätzliche Dateien von einem HTTP-Server laden kann.

Beispiel für den Start unter Verwendung von iPXE und HTTP mit IPv6

In diesem Beispiel wird gezeigt, wie ein ISC-DHCPv6-Server für den Start von ESXi konfiguriert wird, indem iPXE über einen TFTP-Server mit der IPv6-Adresse xxxx:xxxx:xxxx:xxxx::xxxx geladen wird.

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

Wenn eine Maschine einen Startvorgang über PXE versucht, stellt der DHCP-Server eine IP-Adresse und den Speicherort der Binärdatei snponly.efi (iPXE) auf dem TFTP-Server zur Verfügung. iPXE fordert dann den DHCP-Server zum Laden der nächsten Datei auf, und dieses Mal gibt der Server mboot.efi als den Dateinamen zurück. iPXE ist enthalten, und das System verfügt über HTTP-Funktionalität. Dies führt dazu, dass das System zusätzliche Dateien von einem HTTP-Server laden kann.

Beispiel für den Start unter Verwendung von UEFI HTTP mit IPv4

Dieses Beispiel zeigt, wie Sie einen ISC-DHCP-Server für das Starten von ESXi mithilfe des nativen UEFI HTTP mit IPv4 über den Webserver www.example.com konfigurieren.

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

Beispiel für den Start unter Verwendung von UEFI HTTP mit IPv6

Dieses Beispiel zeigt, wie Sie einen ISC-DHCPv6-Server für das Starten von ESXi mithilfe des nativen UEFI HTTP mit IPv6 über den Webserver www.example.com konfigurieren.

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