Preboot Execution Environment

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Vereinfachter Prinzipaufbau bei PXE

Das Preboot Execution Environment (PXE) ist ein ursprünglich von der Firma Intel entwickeltes Client-Server-Modell um netzwerkfähige Rechner, die sogenannten Clients, von einem Server ausgehend über ein lokales Rechnernetz booten zu können.[1] Der Server stellt dafür die nötigen Daten wie ein oder mehrere Bootimages zur Verfügung, die Clients müssen über eine PXE-fähige Netzwerkkarte bzw. PXE-Unterstützung im BIOS verfügen. In der Umsetzung basiert PXE auf den bestehenden Netzwerkprotokollen DHCP für die Übermittlung der Konfiguration, die PXE-spezifischen Erweiterungen von DHCP sind dazu in RFC 4578 festgelegt, und dem Trivial File Transfer Protocol (TFTP) für die Verteilung der Dateien im Rahmen des Bootvorganges. PXE kommt primär in Local Area Networks (LAN) basierend auf Ethernet zur Anwendung und zählt im Bereich von Rechenzentren zu einer der bevorzugten Methoden, um eine Vielzahl von Rechnern zentral gesteuert zu booten.[2]

Geschichte[Bearbeiten | Quelltext bearbeiten]

Anfang 1999 schlug Intel der Internet Engineering Task Force eine Arbeitsgruppe zum PXE vor, welche nicht zustande kam.[3] PXE wurde in Folge 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.[4]

Ablauf[Bearbeiten | Quelltext bearbeiten]

Vereinfachter Ablauf des Bootvorganges bei PXE

PXE benötigt auf Serverseite einen DHCP-Server und einen TFTP-Server, diese beiden Dienste müssen nicht gemeinsam auf einem physischen Server laufen, und im Client eine PXE-fähige Netzwerkkarte bzw. Unterstützung im BIOS. Der eigentliche PXE-Code befindet sich dabei nur auf Client-Seite, auf Serverseite werden von der Systemadministration nur bestimmte DHCP-Konfigurationen vorgenommen und am TFTP-Server zum Download vorbereite Dateien bereit gestellt.

Im Rahmen des PXE-Bootvorgangs führt der PXE-Code am Client zunächst über DHCP eine Konfiguration der Netzwerkschnittstelle durch, dabei werden vom Server Konfigurationen wie die IP-Netzwerkadresse und die Netzmaske am Client eingestellt, des Weiteren werden zusätzliche Daten im Rahmen der Erweiterung von DHCP zur Unterstützung von PXE, übertragen. Dabei werden unter anderem auch Daten vom Client wie die Systemarchitektur oder die Globally Unique Identifier übertragen. Die erweiterte Information vom DHCP-Server an den Client stellt dabei die Angabe einer initialen Bootloaderdatei dar, dem sogenannten englisch Network Bootstrap Program (NBP), und Angabe einer Netzwerkadresse von einem TFTP-Server, von wo diese Bootloaderdatei bezogen werden kann. Diese Parameter müssen zuvor am DHCP-Server entsprechend konfiguriert werden.

Mit diesen über DHCP bezogenen Konfigurationsdaten bezieht der PXE-Client in Folge das initiale Network Bootstrap Program vom TFTP-Server und führt diese Datei im Arbeitsspeicher aus. Dabei muss sichergestellt sein, dass die Bootloaderdatei zu der jeweiligen Systemarchitektur passt und der Binärcode vom Prozessor ausgeführt werden kann. Dieser Vorgang ist im Prinzip vergleichbar mit dem Bootvorgang über den Master Boot Record (MBR) bei einer lokalen Festplatte, nur dass dabei die Bootloaderdaten über das Netzwerk übertragen werden.

Der weitere Verlauf richtet sich nach der Gestaltung des initialen Bootloaderprogrammes und ist nicht mehr Teil der PXE-Spezifikation. Im Regelfall werden von dem Network Bootstrap Program verschiedene weitere Zusatzprogramme vom TFTP-Server geladen, welche beispielsweise die grafische Ausgabe eines Boot-Menüs mit verschiedenen Auswahlmöglichkeiten erlauben, ähnlich zu dem Boot-Menü von Bootloader wie dem Grand Unified Bootloader (GRUB). Dabei können auch je nach Client und deren unterschiedliche MAC-Adresse unterschiedliche Boot-Optionen angeboten werden bzw. unter Umgehung eines Startmenüs eine bestimmte fix voreingestellte Bootkonfiguration unmittelbar ausgeführt werden.

Anwendungen und Besonderheiten[Bearbeiten | Quelltext bearbeiten]

Proxy DHCP[Bearbeiten | Quelltext bearbeiten]

Prinzip von Proxy DHCP

Die PXE-Firmware sendet zur Ermittlung der zusätzlichen Bootparameter wie den TFTP-Server ein mit PXE-Optionen versehenes DHCPDISCOVER-Paket (extended DHCPDISCOVER) per Broadcast an UDP-Port 67. DHCP-Server welche diese PXE-spezifischen DHCP-Optionen nicht unterstützen ignorieren diese Anfrage, womit kein Booten mittels PXE möglich ist. Um eine Integration in bestehende Infrastruktur ohne Austausch bestehender nicht PXE-fähiger DHCP-Server zu erlauben, besteht die Möglichkeit zu einem Proxy-DHCP. Der PXE-fähige Proxy-DHCP wird dabei parallel zu dem schon bestehenden DHCP-Server im Netzwerk integriert und übernimmt nur die PXE-spezifischen Anfragen vom PXE-Client.

Thin Client[Bearbeiten | Quelltext bearbeiten]

PXE erlaubt den Betrieb von sogenannten Thin Clients, das sind in diesem Zusammenhang primär vollwertige PC-Systeme aber ohne lokaler Festplatte oder Solid-State-Drive. Dabei wird der Bootvorgang über PXE abgewickelt und in Folge das Speichermedium durch netzwerkbasierte Filesysteme wie das Network File System (NFS) realisiert. Der Vorteil ist, dass am Thin Client, außer dem Teil im BIOS, keine Software vorgehalten wird und somit auch jede Softwarewartung am Client entfällt. Ein Speicherabbild für die Thin Clients kann dabei unter Umständen für eine Vielzahl gleichartiger Clients parallel verwendet werden, was den Aufwand für Aktualisierung reduziert. Nachteilig ist der damit höhere Datenverkehr am Netzwerk, da prinzipiell alle gespeicherten Daten über das Netzwerk zu einem zentralen Speichersystem wie einem Network Attached Storage (NAS) übertragen werden müssen.

Die Einrichtung von Thin Clients ohne eigenen Massenspeicher wird durch eigene Software wie das Linux Terminal Server Project (LTSP) erleichtert.

Systemwartung[Bearbeiten | Quelltext bearbeiten]

PXE besitzt auch bei mit lokalen Festplatten ausgestatteten Clients Anwendungsmöglichkeiten um beispielsweise zu Wartungszwecken Live-Systeme wie Knoppix, Parted Magic oder Clonezilla bei Bedarf zu starten. Es wird dafür kein physisches Bootmedium wie ein speziell vorbereiteter USB-Stick oder eine DVD benötigt, auch wird kein lokaler Speicherplatz auf den Festplatten für das Vorhalten der nur gelegentlich benötigten Bootsysteme verbraucht.

Software[Bearbeiten | Quelltext bearbeiten]

Einfaches Bootmenü mit PXELINUX

Ein mögliches Bootloaderprogramm ist PXELINUX aus dem Projekt SYSLINUX. PXELINUX stellt dabei vom initialen Network Bootstrap Program ausgehend eine Vielzahl von verschiedenen Modulen für den Bootvorgang bereit. Unter anderem besteht die Möglichkeit neben grafisch gestalteten Boot-Menüs den Linux-Kernel ohne weiteren Lader mit entsprechenden Parametern starten zu können und auch bootfähige ISO-Abbilder von DVDs ohne Konvertierung mittels PXE booten zu können.

Kompatible Alternativen zu dem von Intel entwickelten PXE-Client stellen das Open-Source-Projekt Etherboot (gPXE) oder das Open-Source-Projekt iPXE dar. Dabei wird die Firmware auf der Netzwerkkarte durch eine projektspezifische Variante ersetzt. Dies erfordert allerdings einen Hardwareeingriff auf der Netzwerkkarte welcher bei vielen in der Hauptplatine integrierten Netzwerkadaptern nicht einfach möglich ist.

Eine proprietäre Weiterentwicklung von PXE stellt das Windows Deployment Services von Microsoft dar.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Intel Preboot Execution Environment. Internet Engineering Task Force. 24. Juni 1999. Abgerufen am 5. Mai 2012.
  2. Lucien Avramov: The Policy Driven Data Center with ACI: Architecture, Concepts, and Methodology. Cisco Press, 2014, ISBN 1-58714-490-5, S. 43.
  3. IETF March 1999 Proceedings. Internet Engineering Task Force. Abgerufen am 5. Mai 2012.
  4. Preboot Execution Environment (PXE) Specification (PDF; 490 kB) Intel. Archiviert vom Original am 24. Mai 2011. Abgerufen am 5. Mai 2012.