- Preboot Execution Environment
-
Das Preboot eXecution Environment (PXE) ist ein Verfahren, um Computern einen netzwerkbasierten Bootvorgang zu ermöglichen. Der Computer ist dadurch von Massenspeicher und darauf installiertem Betriebssystem unabhängig. Der PXE-Code befindet sich im BIOS auf der Netzwerkschnittstelle des Computers und ermöglicht es ihm, mit dem DHCP- und dem PXE-Server zu kommunizieren. Vom DHCP-Server bekommt der Computer die IP-Konfiguration und vom PXE-Server das Betriebssystem.
PXE nutzt die Protokolle TCP/IP, UDP, DHCP, TFTP, sowie die Konzepte GUID, UUID, Universal Network Device Interface (UNDI) und eine client-seitige Firmware-Erweiterung mit festgelegten APIs. PXE wurde als Teil der Wired-for-Management-Umgebung eingeführt.
Inhaltsverzeichnis
Allgemein
Mit einem PXE-fähigen Rechner ist man in der Lage, anstelle von lokalen Medien (Festplatte, Diskette, CD etc.) über ein Netzwerk (Ethernet) von einem entfernten Rechner zu booten. PXE wurde als Teil der Initiative „Wired for Management“ von Intel eingeführt und in der Spezifikation (Version 2.1) von Intel und Systemsoft am 20. September 1999 veröffentlicht. Der Netzwerk-Bootvorgang wird in der Regel durch die Netzwerkkarte selbst initiiert (genauer: ein auf der Karte installiertes BIOS). Dies ist bei sogenannten "onboard"-Netzwerkschnittstellen Teil des System-BIOS. Unterstützt die Netzwerkkarte dies nicht, besteht unter anderem die Möglichkeit, ein Image von beispielsweise einer Diskette zu laden (als ersten Boot-Schritt), welches diese Funktionalität übernimmt. PXE benötigt einen DHCP-Server, einen PXE-Server und PXE-fähige Netzwerkkarten, wenn nicht über eine Diskette o.ä. gebootet wird.
Ablauf
Die Firmware sucht einen PXE-kompatiblen Redirection-Service (Proxy DHCP), der die Informationen zu verfügbaren PXE-Boot-Servern übermittelt. Nach Empfang einer Antwort kontaktiert sie im nächsten Schritt den passenden Boot-Server, um von ihm den TFTP-Pfad zum Herunterladen des NBP (Network Bootstrap Program) übermittelt zu bekommen. Dieser Boot-Loader wird anschließend in den Arbeitsspeicher geladen, eventuell verifiziert und ausgeführt. Wird nur ein einziges NBP für alle Clients verwendet, kann dieses in den meisten Fällen auch über die BOOTP-Methode heruntergeladen und der PXE-spezifische Ablauf somit übersprungen werden.
Verfügbarkeit
Prinzipiell sollte PXE auf die meisten Hardware-Plattformen portierbar sein, von Intel wurde sie allerdings nur für die 32-Bit-Architektur IA-32 spezifiziert; durch die Integration in das EFI (Extensible Firmware Interface) ist sie auch auf der IA-64 verfügbar.
PXE Client/Server Protokoll
Das PXE-Protokoll ist eine Kombination von DHCP und TFTP (jeweils mit Anpassungen). DHCP liefert den/die Boot-Server und TFTP wird zum Laden des Bootloaders benutzt.
Die PXE-Firmware sendet ein mit PXE-Optionen versehenes DHCPDISCOVER-Paket (extended DHCPDISCOVER) per Broadcast an Port 67/ UDP (DHCP-Server-Port). Die PXE-spezifischen DHCP-Optionen werden von nicht PXE-fähigen DHCP-Servern ignoriert.
Proxy DHCP
Empfängt ein PXE Redirection Service (Proxy DHCP) ein extended-DHCPDISCOVER-Paket, so sendet er ein als DHCPOFFER kodiertes, mit PXE-Optionen erweitertes DHCP-Paket (extended DHCPOFFER) zurück an den Client. Da dieser häufig seine IP-Adresse erst noch mit einem DHCP-Server aushandeln muss, wird das Paket per Broadcast an Port 68/UDP (DHCP Client Port) gesendet und die Identifikation des Ziel-Hosts erfolgt über die vom Client im extended DHCPDISCOVER mitgesendete GUID/UUID.
Durch das extended-DHCPOFFER-Paket wird der Firmware hauptsächlich Folgendes übergeben:
- Multicast, Unicast oder Broadcast für die Kommunikation mit dem Boot Server verwenden
- Eine Liste von IP-Adressen für jeden verfügbaren Boot-Server-Typ
- Ein Bootmenü, bei dem jeder Eintrag einen Boot-Server-Typ repräsentiert
- Einen Bootprompt, der den Benutzer auffordern sollte, die Taste <F8> für das Bootmenü zu drücken
- Einen Timeout für den Bootprompt, nach dessen Ablauf automatisch der erste Eintrag im Bootmenü gewählt wird
Soll der Proxy DHCP auf demselben Host wie der Standard-DHCP-Dienst laufen, so lauscht er auf Port 4011/UDP und erwartet als DHCPREQUEST kodierte Pakete, die ansonsten den vorher beschriebenen extended-DHCPDISCOVER-Paketen entsprechen. In diesem Fall sendet der Standard-DHCP-Dienst ein mit einer bestimmten Kombination von PXE-spezifischen Optionen versehenes DHCPOFFER-Paket an den Client, damit dieser nach dem Proxy-DHCP-Dienst auf demselben Host an Port 4011/UDP sucht.
Boot Server
Um mit einem PXE-Boot-Server in Kontakt treten zu können, muss die PXE-Firmware-Erweiterung eine gültige IP-Adresse und ein extended-DHCPOFFER-Paket erhalten haben. Anhand der Informationen aus dem extended-DHCPOFFER-Paket und der Auswahl des Boot-Server-Typs sendet die Firmware-Erweiterung nun per Multicast, Broadcast oder Unicast ein als DHCPREQUEST (oder DHCPINFORM) kodiertes, mit PXE-spezifischen Optionen erweitertes DHCP-Paket (extended DHCPREQUEST bzw. extended DHCPINFORM) an Port 4011/UDP - oder 67/UDP im Falle eines Broadcasts. Dieses Paket enthält den PXE Boot Server Type und einen sogenannten PXE Boot Layer; somit ist es auch möglich, mehrere Boot Server auf einem Host zu betreiben.
Empfängt ein PXE Boot Server ein extended-DHCPREQUEST- oder ein extended-DHCPINFORM-Paket und ist er sowohl für den verlangten Boot-Server-Typ als auch für die angegebene Client-Architektur (z.B. IA-32) konfiguriert, so muss er mit einem als DHCPACK kodierten, mit PXE-spezifischen Optionen erweiterten DHCP-Paket (extended DHCPACK) an den Source-Port aus dem extended-DHCPREQUEST- oder extended-DHCPINFORM-Paket antworten.
Integrationsfähigkeit
Das PXE Client/Server Protocol wurde so entworfen, dass es sich
- parallel und störungsfrei zu bestehenden DHCP-Umgebungen betreiben lässt
- nahtlos in DHCP-Dienste integrieren lässt
- als selbständige Server für jeden einzelnen Dienst (DHCP, Proxy DHCP, Boot Server) oder in beliebigen Kombinationen in integrierten Servern implementieren lässt
- ohne den Umweg der offiziellen Spezifizierung durch Intel erweitern lässt
Außerdem ist die PXE-Firmware-Erweiterung als Option-ROM zum BIOS der IA-32 entworfen, so dass sich ein PC durch eine neue Netzwerkkarte PXE-fähig aufrüsten lässt.
Siehe auch
- LTSP - Ein für viele Linuxsysteme verfügbares auf PXE basierendes Thinclient-System
- Etherboot - Eine Open Source Alternative zum proprietären PXE
- Softwareverteilung - In diesem Zusammenhang wird PXE am häufigsten genutzt
- Windows Deployment Services - Weiterentwicklung des PXE von Microsoft
Weblinks
- Webseite mit PXE Error Codes und Erklärung (engl.)
- PXE-Spezifikation v2.1 von Intel und Systemsoft (engl. PDF; 491 kB)
- Entwurf für das Remote Boot Protocol, das in die PXE-Spezifikation integriert wurde
- RFC-3679: DHCP Option Codes, die teilweise PXE zugewiesen sind
Kategorie:- Rechnernetze
Wikimedia Foundation.