Prostředí před spuštěním - Preboot Execution Environment

Přehled PXE na vysoké úrovni

Ve výpočtu je Preboot eXecution Environment , PXE (nejčastěji vyslovováno jak / p ɪ k y I / skřítek ) specifikace popisuje standardizované klient-server prostředí, které boty softwarový shromáždění, načíst ze sítě, na PXE klienty umožňující (NIC ) a používá malou sadu průmyslových standardů síťových protokolů Extensible Firmware Interface, jako je DHCP a TFTP .

Koncept PXE vznikl v počátcích protokolů jako BOOTP /DHCP /TFTP a od roku 2015 je součástí standardu Unified Extensible Firmware Interface (UEFI). V moderních datových centrech je PXE nejčastější volbou pro spouštění, instalaci a nasazení operačního systému.

Přehled

Od počátku počítačových sítí stále existuje potřeba klientských systémů, které mohou spouštět vhodné bitové kopie softwaru s odpovídajícími konfiguračními parametry, které lze načíst při spuštění z jednoho nebo více síťových serverů . Tento cíl vyžaduje, aby klient používal sadu služeb před spuštěním na základě standardních síťových protokolů . Program Network Bootstrap Program (NBP), který je původně stažen a spuštěn, musí být navíc vytvořen pomocí vrstvy firmwaru klienta (v zařízení, které má být zaváděno pomocí PXE), což poskytuje standardizovaný způsob hardwaru nezávislý na interakci s okolním prostředím pro spouštění sítě. V tomto případě je klíčovým faktorem potřebným k zajištění interoperability systému zavádění procesu ze sítě dostupnost a podrobení se standardům.

Jedním z prvních pokusů v tomto ohledu bylo zavádění bootstrapu pomocí standardu RTP 906 TFTP, publikované v roce 1984, které zavedlo standard RFC 783 publikovaný v roce 1981 Trivial File Transfer Protocol (TFTP), který má být použit jako standardní protokol pro přenos souborů pro načítání bootstrapu. Krátce na to následoval standard Bootstrap Protocol RFC 951 (BOOTP), publikovaný v roce 1985, který umožnil bezdiskovému klientskému počítači zjistit vlastní IP adresu, adresu serveru TFTP a název NBP. načteny do paměti a provedeny. Problémy s implementací BOOTP, mimo jiné, nakonec vedly k vývoji standardu Dynamic Host Configuration Protocol RFC 2131 (DHCP) publikovaného v roce 1997. Průkopnický přístup TFTP/BOOTP/DHCP zaostával, protože v té době nedefinoval požadovaná standardizovaná klientská strana zřizovacího prostředí.

Preboot Execution Environment (PXE) byl představen jako součást rozhraní Wired for Management od společnosti Intel a je popsán ve specifikaci publikované společnostmi Intel a SystemSoft. PXE verze 2.0 byla vydána v prosinci 1998 a aktualizace 2.1 byla zveřejněna v září 1999. Prostředí PXE využívá několik standardních protokolů klient -server včetně DHCP a TFTP (nyní definováno RFC 1350 publikovaným v roce 1992). Ve schématu PXE je klientská strana zřizovací rovnice nedílnou součástí standardu PXE a je implementována buď jako rozšíření BIOSu Network Interface Card (NIC), nebo aktuální zařízení v kódu UEFI . Tato výrazná vrstva firmwaru zpřístupňuje klientovi funkce základního rozhraní Universal Network Device Interface (UNDI), minimalistického zásobníku UDP / IP , klientského modulu Preboot (DHCP) a klientského modulu TFTP, které dohromady tvoří rozhraní pro programování aplikací PXE ( API) používané NBP, když potřebují komunikovat se službami nabízenými protějškem serveru v prostředí PXE. Nízká propustnost TFTP , zejména při použití přes odkazy s vysokou latencí , byla zpočátku zmírňována možností blokování velikosti TFTP RFC 2348 vydanou v květnu 1998 a později možností TFTP Windowsize RFC 7440 vydanou v lednu 2015, což umožňuje potenciálně větší dodávky užitečného zatížení, a tím zlepšení propustnosti.

Podrobnosti

Prostředí PXE spoléhá na kombinaci standardních internetových protokolů, konkrétně UDP/IP, DHCP a TFTP. Tyto protokoly byly vybrány, protože jsou snadno implementovatelné do firmwaru NIC klienta, což má za následek standardizované PXE ROM s malou stopou . Standardizace, malá velikost obrazů firmwaru PXE a jejich nízké využití zdrojů jsou některé z hlavních cílů návrhu, což umožňuje identickou implementaci klientské strany standardu PXE na širokou škálu systémů, od výkonných klientských počítačů po omezené zdroje. jednodeskové počítače (SBC) a počítače typu system-on-a-chip (SoC).

DHCP se používá k poskytování příslušných parametrů klientské sítě a konkrétně umístění (IP adresy) hostitele serveru TFTP, připraveného ke stažení, počátečního bootstrap programu (NBP) a doplňkových souborů. K zahájení relace bootstrapu PXE komponenta DHCP klientského firmwaru PXE vysílá paket DHCPDISCOVER obsahující možnosti specifické pro PXE na port 67/UDP (port serveru DHCP); požádá o požadovanou konfiguraci sítě a parametry spouštění sítě. Volby specifické pro PXE identifikují inicializovanou transakci DHCP jako transakci PXE. Standardní servery DHCP (bez povolení PXE) budou moci odpovídat běžným protokolem DHCPOFFER, který bude přenášet informace o síti (tj. IP adresa), ale nikoli parametry specifické pro PXE. Klient PXE se nebude moci spustit, pokud obdrží odpověď pouze ze serveru DHCP, který nemá povoleno PXE.

Po analýze DHCP serveru DHCPOFFER s povoleným PXE bude klient moci nastavit svou vlastní síťovou IP adresu, masku IP atd. A ukázat na spouštěcí prostředky umístěné v síti na základě přijaté IP adresy serveru TFTP a názvu NBP. Klient dále přenese NBP do své vlastní paměti s náhodným přístupem (RAM) pomocí TFTP, případně ji ověří (tj. UEFI Secure Boot ) a nakonec z ní spustí. NBP jsou pouze prvním článkem v procesu zaváděcího řetězce a obecně vyžadují prostřednictvím TFTP malou sadu doplňkových souborů, aby bylo možné spustit minimalistický výkonný OS (tj. WindowsPE nebo základní linuxové jádro + initrd ). Malý výkonný OS načítá vlastní síťové ovladače a zásobník TCP/IP. V tomto okamžiku jsou zbývající pokyny potřebné ke spuštění nebo instalaci plného operačního systému poskytovány nikoli přes TFTP, ale pomocí robustního přenosového protokolu (jako je HTTP , CIFS nebo NFS ).

Integrace

DHCP vs proxy Server DHCP

Prostředí PXE klient/server bylo navrženo tak, aby bylo možné jej bezproblémově integrovat s již zavedenou serverovou infrastrukturou DHCP a TFTP. Tento návrhový cíl představoval výzvu při řešení klasického protokolu DHCP. Podnikové servery DHCP obvykle podléhají přísným zásadám, které mají zabránit snadnému přidávání dalších parametrů a pravidel požadovaných pro podporu prostředí PXE. Z tohoto důvodu standard PXE vyvinul koncept přesměrování DHCP nebo „proxyDHCP“. Myšlenkou proxyDHCP je rozdělit požadavky PXE DHCP na dvě nezávisle spuštěné a spravované serverové jednotky:

  1. Klasický server DHCP poskytující IP adresu, masku IP atd. Všem spouštěcím klientům DHCP .
  2. Server proxyDHCP poskytující IP adresu serveru TFTP a název NBP pouze zaváděcím klientům identifikovaným PXE .

V prostředí serveru DHCP plus proxyDHCP klient PXE zpočátku vysílá jeden paket PXE DHCPDISCOVER a přijímá dva doplňkové DHCPOFFER; jeden z běžného DHCP serveru bez povolení PXE a druhý ze serveru proxyDHCP. Obě odpovědi dohromady poskytují požadované informace, aby klient PXE mohl pokračovat v procesu zavádění. Tento neintruzivní přístup umožňuje nastavení prostředí PXE, aniž byste museli zasahovat do konfigurace již fungujícího serveru DHCP. Služba proxyDHCP může také běžet na stejném hostiteli jako standardní služba DHCP, ale i v tomto případě se jedná o dvě nezávisle spuštěné a spravované aplikace. Protože dvě služby nemohou používat stejný port 67/UDP na stejném hostiteli, proxyDHCP běží na portu 4011/UDP. Přístup proxyDHCP se ukázal jako mimořádně užitečný v celé řadě scénářů PXE od podnikového až po domácí prostředí.

Dostupnost

PXE byl koncipován s ohledem na několik systémových architektur. Verze 2.1 specifikace definovala identifikátory architektury pro šest typů systémů, včetně IA-64 a DEC Alpha . PXE v2.1 však zcela pokryl pouze IA-32 . I přes tento zjevný nedostatek úplnosti se Intel nedávno rozhodl široce podporovat PXE v rámci nové specifikace UEFI rozšiřující funkčnost PXE do všech prostředí EFI/UEFI. Specifikace aktuálního sjednoceného rozšiřitelného firmwaru 2.4A, část 21 Síťové protokoly - SNP, PXE a BIS definují protokoly, které poskytují přístup k síťovým zařízením při provádění v prostředí bootovacích služeb UEFI. Mezi tyto protokoly patří Simple Network Protocol (SNP), PXE Base Code Protocol (PXE) a Boot Integrity Services Protocol (BIS). Dnes je v prostředí PXE detekce klientské architektury zřídka založena na identifikátorech původně zahrnutých ve specifikaci PXE v2.1, místo toho by každý počítač, který bude zavádět ze sítě, měl nastavit možnost DHCP 93 pro označení architektury klienta. To umožňuje serveru PXE znát (v době spuštění) přesnou architekturu klienta z prvního síťového zaváděcího paketu. Hodnoty architektury klientského systému jsou uvedeny (mimo jiné parametry PXE) v publikovaném dokumentu RFC 4578 (Dynamic Host Configuration Protocol (DHCP) pro prostředí Intel Preboot eXecution Environment (PXE)), který byl publikován v roce 2006.

S příchodem IPv6 se DHCP vyvinul do DHCPv6 ; potřeba možností podporujících PXE v rámci nového protokolu DHCP byla řešena v roce 2010 publikovaným RFC 5970 (DHCPv6 Options for Network Boot).

Původní rozšíření firmwaru klienta PXE bylo navrženo jako volitelná ROM pro IA-32 BIOS , takže osobní počítač (PC) byl původně vytvořen jako PXE díky instalaci řadiče síťového rozhraní (NIC), který poskytoval volitelnou ROM PXE. Dnes je klientský PXE kód přímo zahrnut ve vlastním firmwaru NIC nebo jako součást firmwaru UEFI na základní desce.

I když původní klientský firmware PXE byl napsán společností Intel a vždy poskytován bezplatně jako propojitelný modul formátu formátu objektového kódu IA32, který je součástí jejich sady Product Development Kit (PDK), svět s otevřeným zdrojovým kódem za ta léta vytvořil nestandardní derivační projekty jako gPXE / iPXE nabízející vlastní ROM. Zatímco ROM založené na procesorech Intel implementují klientskou stranu standardu PXE již více než 20 let, někteří uživatelé byli ochotni obchodovat s dalšími funkcemi pro stabilitu a standardní shodu s PXE.

Přijetí

Přijetí PXE od v2.1 je všudypřítomné; dnes je prakticky nemožné najít síťovou kartu bez firmwaru PXE. Dostupnost levného gigabitového ethernetového hardwaru (síťové karty, přepínače , směrovače atd.) Učinila z PXE nejrychlejší dostupnou metodu pro instalaci operačního systému na klienta, když konkuruje klasickým alternativám disků CD , DVD a USB flash .

V průběhu let zahrnovala podpora PXE několik velkých projektů, včetně:

Pokud jde o vývoj NBP, existuje několik projektů implementujících správce spouštění, které mohou nabídnout rozšířené funkce spouštěcí nabídky, možnosti skriptování atd.:

Všechny výše uvedené projekty, pokud jsou schopny zavést/nainstalovat více než jeden operační systém, fungují podle paradigmatu „Boot Manager - Boot Loader“. Počáteční NBP je Boot Manager schopný načíst vlastní konfiguraci a nasadit nabídku možností zavádění. Uživatel vybere možnost zavádění a zavaděč závislý na operačním systému se stáhne a spustí, aby mohl pokračovat ve vybrané konkrétní zaváděcí proceduře.

Sourozenecké prostředí

Společnost Apple přišla s velmi podobným přístupem ke spouštění ze sítě pod záštitou specifikace BoDP Server Discovery Protocol (BSDP). BSDP v0.1 byl původně publikován společností Apple v srpnu 1999 a jeho poslední v1.0.8 byl publikován v září 2010. Server OS X obsahuje systémový nástroj s názvem NetBoot . Klient NetBoot používá BSDP k dynamickému získávání prostředků, které mu umožňují spustit vhodný operační systém. BSDP je vytvořen nad DHCP pomocí informací specifických pro dodavatele, aby poskytl další funkce NetBoot, které ve standardním DHCP nejsou. Protokol je implementován do firmwaru klienta. V době bootování klient získá IP adresu přes DHCP a poté objeví zaváděcí servery pomocí BSDP. Každý server BSDP odpovídá informacemi o spuštění, které se skládají z:

  • Seznam spouštěcích bitových kopií operačního systému
  • Výchozí bitová kopie operačního systému
  • Aktuálně vybraná bitová kopie operačního systému klienta (pokud je definována)

Klient si ze seznamu vybere operační systém a odešle na server zprávu označující jeho výběr. Vybraný zaváděcí server odpoví zadáním spouštěcího souboru a spouštěcí bitové kopie a dalších informací potřebných ke stažení a spuštění vybraného operačního systému.

Potomkové prostředí

Společnost Microsoft vytvořila nepřekrývající se rozšíření prostředí PXE s jejich vrstvou BINL (Boot Information Negotiation Layer). BINL je implementován jako serverová služba a je klíčovou součástí jejich strategií Remote Installation Services (RIS) a Windows Deployment Services (WDS). Obsahuje určité přípravné procesy a síťový protokol, který by se dal nějakým způsobem považovat za rozšíření DHCP vytvořené společností Microsoft. BINL je patentovaná technologie společnosti Microsoft, která používá standardní klientský firmware PXE. Aktuálně neexistuje veřejně dostupná specifikace BINL.

Dokumentace standardů IETF

RFC # Titul Zveřejněno Autor Zastaralé a aktualizované informace
RFC 783 Protokol TFTP (revize 2) Červen 1981 K. Sollins Zastaralé - RFC 1350
RFC 906 Načítání bootstrapu pomocí TFTP Červen 1984 Ross Finlayson -
RFC 951 Protokol Bootstrap Září 1985 Bill Croft Aktualizováno RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494
RFC 1350 Protokol TFTP (revize 2) Července 1992 K. Sollins Aktualizováno RFC 1782, RFC 1783, RFC 1784, RFC 1785, RFC 2347, RFC 2348, RFC 2349
RFC 2131 DHCP, protokol dynamické konfigurace hostitelského počítače Března 1997 R. Droms Aktualizováno RFC 3396, RFC 4361, RFC 5494, RFC 6842
RFC 2348 Možnost blokování TFTP Květen-1998 G. Malkin -
RFC 4578 Možnosti DHCP pro Intel PXE Listopad 2006 M. Johnston -
RFC 5970 Možnosti DHCPv6 pro spouštění ze sítě Září-2010 T. Huth -
RFC 7440 Možnost Windowsize TFTP Leden-2015 P. Masotta -

Viz také

Reference

externí odkazy