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