Privacy Policy Cookie Policy Terms and Conditions Preboot Execution Environment - Wikipedia

Preboot Execution Environment

aus Wikipedia, der freien Enzyklopädie

Das Preboot Execution Environment (PXE) ist ein Verfahren, um Computern einen netzwerkbasierten Bootvorgang (Netzboot) zu ermöglichen, der von client-seitig verfügbarem Massenspeicher und insbesondere Betriebssystemen unabhängig ist. Aktuell gilt die Version 2.1 der Spezifikation von Intel & Systemsoft.

PXE nutzt die Protokolle IP, UDP, DHCP, TFTP sowie die Konzepte GUID/UUID, UNDI (Universal Network Device Interface) und eine client-seitige Firmware-Erweiterung mit festgelegten APIs. PXE wurde als Teil der Wired-for-Management-Umgebung eingeführt.

Inhaltsverzeichnis

[Bearbeiten] Ablauf

Die Firmware sucht einen PXE-kompatiblen Redirection-Service (Proxy DHCP), der ihr 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.

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

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

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

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

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

[Bearbeiten] Weblinks

  • #pxe - Ein kleiner Channel im freenode.net
  • PXE Wiki - Ein kleines Wiki, das mit euren Fragen wächst...
  • PXE Error codes - Webseite mit PXE Error Codes und Erklärung

[Bearbeiten] Quellen

Dokumente, Spezifikationen und RFCs zu PXE:

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu