Zum Inhalt springen

Preboot Execution Environment

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 18. Mai 2005 um 10:12 Uhr durch 143.93.17.29 (Diskussion) (Boot Server). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Beschreibung

Die PXE(Preboot Execution Environment) ist nach der aktuellen Version 2.1 der Spezifikation von Intel & Systemsoft eine von Client-seitig verfügbarem Massenspeicher und insbesondere Betriebssystemen unabhängige Umgebung, die einen netzwerkbasierten Bootvorgang(Netzboot) erlaubt. Die Umgebung nutzt IP, UDP, DHCP, TFTP, GUID/UUID, UNDI(Universal Network Device Interface) und eine Client-seitige Firmware-Erweiterung mit definierten APIs. PXE wurde als Teil der Wired-for-Management-Umgebung eingeführt.

Ablauf

Die Firmware sucht einen PXE-kompatiblen Redirection-Service(Proxy DHCP), der ihr die Informationen zu verfügbaren PXE-Boot-Servern übermittelt. Sie kontaktiert im nächsten Schritt den passenden Boot Server, um von ihm den TFTP-Pfad zum Herunterladen des NBP(Network Bootstrap Program) übermittelt zu bekommen. Dieses NBP wird anschließend in den Arbeitsspeicher geladen, eventuell verifiziert und ausgeführt. Wird nur ein einziges NBP verwendet, kann dieses in den meisten Fällen auch über die BOOTP-Methode heruntergeladen werden 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 IA-32 spezifiziert; durch die Integration in das EFI ist sie auch auf der IA-64 verfügbar.

PXE Client/Server Protocol

Über die PXE-Firmware-Erweiterung wird ein mit PXE-Optionen versehenes DHCPDISCOVER-Paket(extended DHCPDISCOVER) per Broadcast an Port 67/ UDP gesendet. Durch zusätzliche, PXE-spezifische DHCP-Optionen identifiziert sich die Firmware als PXE-fähig. Dieses Paket wird auch von nicht PXE-fähigen DHCP-Servern empfangen und kann somit zur DHCP-Konfiguration genutzt werden.

Proxy DHCP

Empfängt ein PXE Redirection Service(Proxy DHCP) ein extended-DHCPDISCOVER-Paket, so sendet dieser 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 dem selben 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. Die Firmware-Erweiterung muss in diesem Fall allerdings vom Standard-DHCP-Dienst ein mit einer bestimmten Kombination von PXE-spezifischen Optionen versehenes DHCPOFFER-Paket erhalten, damit sie 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 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(zB IA-32) konfiguriert, so muss er mit einem als DHCPACK kodierten, mit PXE- ist ein erneuter Austausch von extended DHCPREQUEST bzw. extended DHCPINFORM und extended DHCPACK notwendig.

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 implementiert 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.

Quellen

Dokumente, Spezifiaktionen und RFCs zu PXE: