Administration:projekte:pxe:allgemein

From chaoswiki
Revision as of 19:41, 17 November 2009 by Genesis (talk | contribs) (→‎SYSLINUX)
Jump to navigation Jump to search

Allegmeine Informationen zu PXE (Preboot eXecution Environment)

Allgemeines zu PXE

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. Dies kann dazu dienen, auf einem Rechner ohne Zufügen von Medien (CDs, DVDs etc.) ein Betriebssystem zu installieren oder auch ein Thinclient-System (z. B. LTSP) aufzubauen, in dem die Client-Rechner gar keine Laufwerke benötigen, und dem Nutzer dennoch ein komplett nutzbares Betriebssystem zur Verfügung gestellt wird.

Der Netzwerk-Bootvorgang wird in der Regel durch die Netzwerkkarte selbst initiiert (genauer: ein auf der Karte installiertes 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. Solche Images werden zum Beispiel von dem Projekt etherboot zur Verfügung gestellt.

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.

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.

SYSLINUX

SYSLINUX ist eine Sammlung von leichtgewichtigen Bootloadern. Zur Zeit werden DOS FAT Dateisysteme (SYSLINUX), Linux ext2/ext3 (EXTLINUX), PXE Netzwerk-Booten (PXELINUX) und bootbare »El Torito« ISO 9660 CD-ROMs (ISOLINUX) unterstützt. Sie enthält auch ein Werkzeug, MEMDISK, das alte Betriebssysteme (wie z.B. DOS) von diesen Medien laden kann.

Informatoinen in englisch zu PXELINUX

http://syslinux.zytor.com/wiki/index.php/PXELINUX