Preboot Execution Environment: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Hce (discussione | contributi)
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(74 versioni intermedie di 44 utenti non mostrate)
Riga 1:
'''Preboot Execution Environment''' (PXE), ovvero '''ambiente di esecuzione pre-boot''', in [[informatica]], indica un metodo per eseguire il [[boot]] di un [[computer]] utilizzando una [[connessione (informatica)|connessione]] di rete [[ethernet]] ed il supporto di un [[server]], senza bisogno di una [[unità di memoria di massa]].
{{T|inglese}}
 
Fu introdotto come parte del [[framework]] ''Wired for Management'' di [[Intel]], ed è descritto nella specifica pubblicata da Intel e Systemsoft il 20 settembre [[1999]].<ref>{{en}}[https://web.archive.org/web/20131102003141/http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf Preboot Execution Enviroment (PXE) Specification Version 2.1] </ref>
'''Preboot Execution Environment''' (PXE), ovvero '''ambiente di esecuzione pre-boot''', è un metodo per eseguire il [[boot]] di un [[computer]] utilizzando una connessione di rete [[ethernet]] ed il supporto di un [[server]], e senza bisogno di una unità [[disco fisso]].
Nel 2010 ne venne creata una implementazione ''[[open source]]'' denominata ''iPXE''.
 
== Caratteristiche ==
PXE fu introdotto come parte del framework Wired for Management di Intel, ed è descritto nella specifica (v2.1) pubblicata da Intel e Systemsoft il 20 settembre,1999. PXE utilizza molteplici protocolli di rete:
=== Funzionamento ===
Può essere considerato uno dei modi per caricare il sistema operativo su un calcolatore. Quando è presente la funzionalità PXE, il [[BIOS]] presenta all'utente la possibilità di scegliere, tra i possibili dispositivi da cui caricare il [[sistema operativo]], il boot da rete. Se viene selezionata questa opzione, il firmware PXE utilizza DHCP per configurare un [[indirizzo IP]] sulla [[scheda di rete]] ed individuare un server ("boot server") da cui scaricare via [[Trivial File Transfer Protocol|TFTP]] un file, immagazzinandolo nella memoria RAM. Questo file viene poi eseguito, provvedendo ad avviare un sistema operativo.
 
Nella modalità di funzionamento prevista dallo standard, il server DHCP non fornisce direttamente il boot server, ma agisce da "PXE redirection service", ovvero redirige il client ai '''server PXE''' disponibili. I server PXE sono server DHCP modificati, che utilizzano la porta UDP 4011, e forniscono al client l'indirizzo IP del boot server ed il nome del [[#Il Network Bootstrap Program|network bootstrap program]] (NBP) da scaricare.
* [[IP]]
* [[UDP]]
* [[DHCP]]
* [[TFTP]]
 
Nella pratica, normalmente il firmware PXE è in grado di ricevere direttamente dal server DHCP i parametri necessari per identificare il boot server e il file da scaricare, ed è quindi possibile configurare un normale server DHCP per fornire i parametri necessari al boot via PXE.
Inoltre, utilizza concetti come GUID/UUID e Universal Network Device Interface ed estende il firmware del client PXE (il computer che viene avviato via PXE con un ulteriori API.
 
=== FunzionamentoProtocolli di rete ===
Utilizza molteplici protocolli di rete:
Il firmware cerca un PXE redirection service, ovvero un server DHCP che fornisca i parametri necessari per conoscere i server PXE disponibili e il nome del [[#Network_Bootstrap_Program|network bootstrap program]] (NBP) da scaricare. Se ne trova uno, il firmware lo scaricherà via TFTP da uno dei boot server, memorizzandolo nella propria [[Random Access Memory|RAM]], ne verificherà la correttezza e lo eseguirà.
 
* [[Internet Protocol|IP]]
* [[User Datagram Protocol|UDP]]
* [[Dynamic Host Configuration Protocol|DHCP]]
* [[Trivial File Transfer Protocol|TFTP]]
 
Inoltre, utilizza concetti come [[GUID]]/[[UUID]] e [[Universal Network Device Interface]] ed estende il firmware del client PXE (il computer che viene avviato via PXE) con ulteriori [[Application programming interface]]. Questa voce descrive la modalità di funzionamento prevista nella specifica, ma anche alcune varianti comunemente implementate.
 
=== Piattaforme supportate ===
PXE è stato progettato per essere utilizzabile su molte architetture. La specifica v2.1 definisce identificatori di architettura per 6 tipi di sistemi, compresi IA64 Itanium architecture e Alpha. Tuttavia, la specifica copre competamentecompletamente solo Intel [[32 bit|32 Bit]] ([[IA-32]]). Intel ha incluso PXE nella [[Extensible Firmware Interface]] per [[IA-64]], creando uno standard [[de facto]] con la sua implementazione.
 
=== PXEUso Client/Serverdel ProtocolDHCP ===
Il client PXE si identifica come tale verso il server DHCP, inserendo nel pacchetto DHCPDISCOVER, il parametro <kbd>Class Id</kbd> con un valore della forma
 
“PXEClient:Arch:xxxxx:UNDI:yyyzzz”
The PXE protocol is approximately a combination of DHCP and TFTP, albeit with subtle modifications to both. DHCP is used to locate the appropriate boot server or servers, with TFTP used to download the initial bootstrap program and additional files.
 
Se è disponibile a ottenere i parametri di boot direttamente dal server DHCP, richiede i seguenti parametri:
To initiate a PXE bootstrap session the PXE firmware [[Broadcast address|broadcasts]] a DHCPDISCOVER packet extended with PXE-specific options (''extended DHCPDISCOVER'') to port 67/UDP (DHCP server port). The PXE options identify the firmware as capable of PXE, but they will be ignored by standard DHCP servers. If the firmware receives DHCPOFFERs from such servers, it '''may''' configure itself by requesting one of the offered configurations.
 
Data
=== Proxy DHCP ===
Tag Name Length Meaning Reference
If a PXE redirection service (Proxy DHCP) receives an ''extended DHCPDISCOVER'', it replies by broadcasting a DHCPOFFER packet extended with PXE-specific options (''extended DHCPOFFER'') to port 68/UDP (DHCP client port). This packet has to be broadcast, since most PXE clients will configure themselves by DHCP and cannot provide their [[IP address]] in the ''extended DHCPDISCOVER''. Therefore the client is identified by its GUID/UUID.
--- ---- ------ ------- ---------
66 Server-Name N TFTP Server Name [RFC2132]
67 Bootfile-Name N Boot File Name [RFC2132]
 
Il server DHCP decide se inviare i parametri necessari al boot da rete, e quali parametri inviare, sulla base dei dati presenti nella richiesta DHCP. Ad esempio, può essere necessario fornire a calcolatori differenti diversi boot file.
An ''extended DHCPOFFER'' contains mainly:
* a PXE Discovery Control field to decide whether [[Multicast|Multicasting]], Broadcasting or [[Unicast|Unicasting]] is to be used for contacting PXE boot servers
* a list of IP addresses of each available PXE Boot Server Type
* a PXE Boot Menu with each entry representing a PXE Boot Server Type
* a PXE Boot Prompt telling the user to press <F8> to see the boot menu
* a timeout to launch the first boot menu entry if it expires.
 
In particolare, il formato dell'opzione <kbd>Class Id</kbd> è costruito per codificare in modo standard i dati necessari ad identificare un client.
The Proxy DHCP service may also be run on the same [[server (computing)|host]] as the standard DHCP service. Since both services cannot share port 67/UDP, the Proxy DHCP runs on port 4011/UDP and expects the ''extended DHCPDISCOVER packets'' from PXE Clients to be DHCPREQUESTs. The standard DHCP service has to send a special combination of PXE options in its DHCPOFFER, so the PXE client knows to look for a Proxy DHCP on the same host, port 4011/UDP.
 
=== BootMenù ServerPXE ===
Il protocollo PXE permette inoltre al server DHCP di inviare al client gli elementi per offrire all'utente un menù con diverse opzioni di boot. Questo menù viene implementato dal firmware PXE, e permette di proseguire nel processo di boot con diversi server o file a seconda delle scelte dell'utente.
To contact any PXE Boot Server the firmware '''must''' have an IP address and has to consider all information from '''exactly one''' ''extended DHCPOFFER''. After choosing an appropriate PXE Boot Server Type the firmware multicasts or unicasts a DHCPREQUEST packet extended with PXE-specific options (''extended DHCPREQUEST'') to port 4011/UDP or broadcasts it to port 67/UDP. This packet mainly contains the PXE Boot Server Type and the PXE Boot Layer, allowing to run many boot server types with one boot server [[daemon (computer software)|daemon]] (or 'program'). The ''extended DHCPREQUEST'' may also be a DHCPINFORM.
 
== Scaricamento del Network Bootstrap Program ==
If a PXE Boot Server receives an ''extended DHCPREQUEST'' as described above and if the boot server is configured for the requested PXE Boot Server Type and client architecture, it '''must''' respond by sending back an ''extended DHCPACK'' - a DHCPACK-packet extended with PXE-specific options - to the ''extended DHCPREQUEST's'' source port.
Dopo aver identificato il boot server da usare ed il nome del file da scaricare, il firmware PXE scaricherà questo file via TFTP, memorizzandolo nella propria [[RAM]], ne verificherà la correttezza e lo eseguirà. A questo punto il compito del PXE in senso stretto è finito, ed è l'NBP a prendere il controllo del calcolatore.
 
=== Multicast ===
An ''extended DHCPACK'' contains mainly:
Il protocollo PXE prevede la possibilità di far scaricare l'NBP in modalità [[multicast]], in modo da ridurre il carico sulla rete e sul server nel caso molti client tentino di avviarsi contemporaneamente.
* the complete file path to download the NBP via TFTP.
* PXE Boot Server Type and PXE Boot Layer the boot server answered to
* the multicast TFTP configuration, if MTFTP as described in the PXE specification should be used.
 
== Il Network Bootstrap Program ==
A PXE Boot Server as described in version 2.1 of the PXE specification '''should''' support the Boot Integrity Services (BIS) as described in the [ftp://download.intel.com/design/archives/wfm/downloads/bisspec.pdf BIS specification] v1.0 published by Intel. The BIS allow a PXE Client to verify downloaded NBPs using a [[checksum]] file which is downloaded from the same boot server as the NBP was. To get the file path of this ''credentials'' file another exchange of ''extended DHCPREQUEST'' and ''extended DHCPACK'' is required.
In pratica, spesso l'NBP è in effetti un [[boot loader]], ovvero un programma che a sua volta scarica via TFTP il kernel del sistema operativo e possibilmente un "initial ramdisk", ovvero l'immagine di un [[File system|filesystem]] che viene copiata in memoria RAM (detta comunemente [[initrd]]).
 
L'immagine di disco contenuta nell'initrd potrà accedere ad ulteriori componenti attraverso la rete, ad esempio montare un filesystem di rete, come [[Network File System|NFS]] o [[Server message block#Storia|CIFS]], se lo scopo è realizzare una installazione diskless, oppure scaricare moduli di un programma di installazione e sistema operativo da installare via [[File Transfer Protocol|FTP]] o [[Hypertext Transfer Protocol|HTTP]], se lo scopo è installare un nuovo sistema operativo.
<!--
=== Network Bootstrap Program ===
After receiving the requested ''extended DHCPACK'', the ''Network Bootstrap Program'' is downloaded into the RAM and if it was verified or verification was not required, the NBP will be executed. It has access to the APIs of the PXE firmware extension (Pre-boot, UDP, TFTP, UNDI). Its functions or tasks are not described in the PXE specification.
 
=== IntegrationMenù del bootloader ===
Il ''[[booloader]]'' può offrire all'utente un menù con diverse opzioni di boot, e/o la possibilità di modificare i parametri passati al sistema operativo, ed implementare diversi modi di scaricare il resto del sistema operativo.
The ''PXE Client/Server Protocol'' was designed so:
* it can be used in the same network as an existing DHCP environment without interference
* it can be integrated completely into standard DHCP services
* it can be easily extended at the most important points without a call for papers
* every service (DHCP, Proxy DHCP, Boot Server) can be implemented standalone or in any combination of them.
 
== Applicazioni ed utilizzo ==
Additionally the PXE firmware extension was designed as an Option ROM for the IA-32 [[BIOS]] so you can get a [[Personal computer|PC]] PXE-capable by installing a NIC that provides a PXE Option ROM.
Il boot via PXE viene utilizzato nei seguenti scenari:
* [[installazione (informatica)|installazione]] via rete di un [[sistema operativo]], che viene installato in modo tradizionale, ovvero sulla memoria di massa, senza dover acquistare o [[masterizzazione|masterizzare]] un [[cd-rom]], e funziona anche in assenza delle [[periferica|periferiche]] spesso usate a questo scopo (lettore [[cd-rom]], memorie [[USB]], possibilmente anche [[monitor (computer)|monitor]] e [[tastiera (informatica)|tastiera]])
* possibilità di caricare su un calcolatore un sistema operativo diverso da quello normalmente usato, ad esempio per riparare una installazione malfunzionante o per utilizzarlo per funzioni particolari.
* [[restore]] completo di un calcolatore da un [[backup]].
* network computing, ovvero utilizzo primario di un sistema operativo caricato dalla rete.
 
== Sicurezza ==
The design goal of utilizing existing DHCP and TFTP servers cannot be achieved in a strictly conforming implementation. Some aspects of the PXE protocol require that the DHCP and TFTP servers be modified and communicate. One specific example is using multicast, where DHCP packets provide the multicast group information rather than an opening RFC-2090 multicast TFTP exchange. The impact of this is minimal as the most common PXE client implementation (written by Intel and provided at no cost as a linkable IA32 binary module) interoperates with a combination of isolated DHCP and unicast TFTP servers.
PXE eredita tutte le debolezze di DHCP, ma ne amplifica la portata, in quanto al protocollo viene demandata non solo l'assegnazione di un indirizzo IP, ma la selezione di un sistema operativo da eseguire, che avrà il controllo completo dell'hardware.
 
Se non è garantita la sicurezza fisica del calcolatore, e quindi è possibile che estranei lo colleghino a reti diverse da quella prevista, lasciare abilitata l'opzione di boot via PXE è equivalente a permettere l'avvio da dispositivi rimovibili: avendo accesso alla console e la possibilità di riavviare il calcolatore un estraneo potrà avviare un sistema operativo di propria scelta, con il quale tra l'altro avrà libero accesso a tutti i dati memorizzati sulla memoria di massa del calcolatore.
== Resources ==
Specifications, RFCs and other documents about PXE:
* [http://www.pix.net/software/pxeboot/archive/pxespec.pdf PXE specification] - The Preboot Execution Environment specification v2.1 published by Intel & Systemsoft.
* [ftp://download.intel.com/design/archives/wfm/downloads/bisspec.pdf BIS specification] - The Boot Integrity Services specification v1.0 published by Intel.
* [http://quimby.gnus.org/internet-drafts/draft-henry-remote-boot-protocol-00.txt Remote Boot Protocol Draft] - draft of the PXE Client/Server Protocol included in the PXE specification.
 
Inoltre, visto che è possibile che su una rete venga installato un server DHCP malevolo, tale server può anche offrire ad eventuali client PXE un sistema operativo malevolo. Per questo motivo, su un calcolatore che dovrebbe eseguire un sistema operativo dalla propria memoria di massa, l'opzione di boot via PXE dovrebbe essere disabilitata.
==External links==
* [irc://irc.freenode.net/pxe #pxe] - A PXE channel on [http://freenode.net/ freenode.net]
* [http://dev.brantleyonline.com/wiki/index.php/PXE_Booting_Index PXE wiki] - A PXE wiki to grow with your questions.
* [http://vamosproject.org/PXE Vamos project PXE page] - PXE resources.
* [http://h18013.www1.hp.com/products/servers/management/rdp/knowledgebase/00000138.html PXE error codes] - A catalogue of PXE error codes
* [http://syslinux.zytor.com/pxe.php pxelinux] - Useful for booting linux and other OS via PXE
* [http://www.gentilkiwi.com/documentations-s11-t-pxe.htm Mise en place d’un serveur de boot PXE sous Windows] {{fr}}
* [http://www.sweetnam.eu/index.php/PXE/Kickstart_Rough_Howto PXE Quickstart HowTo] - Quickstart HowTo
* [http://home.allegiance.tv/~joem298/ DOS via PXE HowTo] - Simple HowTo for booting DOS (or any other bootable floppy) via PXE using PXELINUX and TFTPD32
 
Un client PXE dovrebbe assicurarsi che l'immagine che avvia venga da una sorgente di fiducia. Il protocollo prevede funzionalità in questo senso.
[[Category:Networking standards]]
[[Category:BIOS]]
[[Category:Network booting]]
 
Se l'NBP contiene dati sensibili, come ad esempio password o chiavi crittografiche per accedere ad altri servizi, è possibile che un estraneo collegato abusivamente alla rete ne ottenga una copia, pertanto bisogna assicurarsi che tale file venga inviato solo a client di fiducia.
[[de:Preboot Execution Environment]]
[[fr:Preboot Execution Environment]]
[[ko:PXE]]
[[nl:Preboot Execution Environment]]
[[ja:Preboot Execution Environment]]
[[pl:Preboot Execution Environment]]
[[ru:PXE]]
[[sv:Preboot Execution Environment]]
 
== Note ==
The '''Preboot Execution Environment''' ('''PXE''', aka Pre-Execution Environment, or 'pixie') is an environment to [[booting|boot]] [[computer]]s using a [[network interface card]] independently of available [[data storage device]]s (like [[hard disk]]s) or installed [[operating system]]s.
<references/>
 
== Voci correlate ==
{{for|a high-level overview of network booting|Network booting}}
* [[Boot]]
* [[DHCP]]
* [[Intel]]
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
* RFC 4578 - Parametri DHCP usati con PXE
* [irc://irc.freenode.net/pxe #pxe] - Un canale dedicato a PXE su [https://freenode.net/ freenode.net]
* [https://web.archive.org/web/20070607191758/http://dev.brantleyonline.com/wiki/index.php/PXE_Booting_Index PXE wiki] - una wiki dedicata a PXE
* [https://web.archive.org/web/20070530024404/http://vamosproject.org/PXE Vamos project PXE page] - risorse PXE
* [https://web.archive.org/web/20140221222847/http://h18013.www1.hp.com/products/servers/management/rdp/knowledgebase/00000138.html PXE error codes] - un catalogo di codici d'errore PXE
* [http://syslinux.zytor.com/pxe.php pxelinux] - un [[boot loader]] usato per caricare altri sistemi operativi via PXE
* [http://www.sweetnam.eu/index.php/PXE/Kickstart_Rough_Howto PXE Quickstart HowTo] - Quickstart HowTo
* [https://web.archive.org/web/20070515042850/http://home.allegiance.tv/~joem298/ DOS via PXE HowTo] - Simple HowTo for booting DOS (or any other bootable floppy) via PXE using PXELINUX and TFTPD32
 
{{portale|informatica}}
PXE was introduced as part of the [[Wired for Management]] framework by [[Intel]] and is described in the [http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf specification (v2.1)] published by Intel and [http://www.systemsoft.com/ Systemsoft] on [[September 20]],[[1999]]. It makes use of several [[network protocol]]s like [[Internet Protocol|IP]], [[User Datagram Protocol|UDP]], [[Dynamic Host Configuration Protocol|DHCP]] and [[Trivial File Transfer Protocol|TFTP]] and of concepts like [[Globally Unique Identifier|GUID]]/[[Universally Unique Identifier|UUID]] and [[Universal Network Device Interface]] and extends the [[firmware]] of the PXE [[Client (Computing)|client]] (the computer to be bootstrapped via PXE) with a set of predefined [[Application Programming Interface|APIs]].
 
[[Categoria:Processi di avvio]]
-->
[[Categoria:BIOS]]