Preboot Execution Environment

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Das Preboot Execution Environment (kurz PXE) ist eine Erweiterung des Bootens über Rechnernetze mittels Dynamic Host Configuration Protocol (DHCP) durch Intel.[1]

Ziel des Netzwerkprotokolls PXE ist es, hunderte Computer mit unterschiedlichen Befehlssätzen ohne Konfiguration und Betriebssystem anliefern zu können, und alle zugleich nach Anschluss an das Local Area Network automatisch mit dem jeweils passenden Betriebssystem versehen zu lassen.[1] Zu diesem Zweck sieht das PXE vor, dass die Computer ohne Betriebssystem Informationen über ihre Beschaffenheit senden und durch eine proprietäre Variante vom Trivial File Transfer Protocol für Multicast bestückt werden. Unterstützung von Heterogenität und Multicast sind die wesentlichen Erweiterungen durch PXE.

Anfang 1999 schlug Intel der Internet Engineering Task Force eine Arbeitsgruppe zum PXE vor.[2] Sie kam nicht zustande. Die abschließende Spezifikation 2.1 durch Intel datiert vom September 1999.[3]

Der PXE-Code befindet sich im BIOS auf der Netzwerkschnittstelle des Computers und ermöglicht es ihm, mit dem DHCP- und dem TFTP-Server zu kommunizieren. Vom DHCP-Server bekommt der Computer die IP-Konfiguration und vom TFTP-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.

Allgemein[Bearbeiten]

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 durch ein auf der Karte installiertes BIOS). Bei sogenannten “onboard”-Netzwerkschnittstellen ist es Teil des System-BIOS. Unterstützt die Netzwerkkarte das 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 TFTP-Server und PXE-fähige Netzwerkkarten, wenn nicht über eine Diskette o. ä. gebootet wird.

Ablauf[Bearbeiten]

Schematischer PXE-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[Bearbeiten]

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 Extensible Firmware Interface (EFI) ist sie auch auf der IA-64 verfügbar.

PXE Client/Server Protokoll[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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
  • durch Intel ohne den Umweg der offiziellen Spezifizierung 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[Bearbeiten]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. a b Intel Preboot Execution Environment. Internet Engineering Task Force. 24. Juni 1999. Abgerufen am 5. Mai 2012.
  2. IETF March 1999 Proceedings. Internet Engineering Task Force. Abgerufen am 5. Mai 2012.
  3. Preboot Execution Environment (PXE) Specification (PDF; 490 kB) Intel. Abgerufen am 5. Mai 2012.