Preboot Execution Environment: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Hce (discussione | contributi) Nessun oggetto della modifica |
Hce (discussione | contributi) inserisco testo da tradurre commentato, si prega di respirare prima di ricancellare da capo. anzi, se gentilmente vuoi ripristinare la prima sezione che avevo già tradotto quando è stata cancellata... |
||
Riga 1:
{{T|inglese}}
'''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]].
Riga 9 ⟶ 11:
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.
<!--
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.
{{for|a high-level overview of network booting|Network booting}}
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]].
== Chain ==
The firmware tries to locate a PXE redirection service (Proxy DHCP) in order to receive information about available PXE boot servers. After parsing the answer, the firmware will ask an appropriate boot server for the [[Path (computing)|file path]] of a [[#Network_Bootstrap_Program|network bootstrap program]] (NBP), download it into the computer's [[Random Access Memory|RAM]] using TFTP, possibly verify, and finally execute it. If only one NBP is used among all PXE Clients, it could be downloaded using [[BOOTP]] without any need of a proxy DHCP or boot server.
== Availability ==
PXE was designed to be applicable to many system architectures. The v2.1 specification assigns architecture identifiers to six system types, including ones for the IA64 Itanium architecture and Alpha architecture. However the specification only completely covers
Intel's 32 Bit [[computer architecture]] ([[IA-32]]). Intel included PXE in the [[Extensible Firmware Interface]] for its [[IA-64]], creating a de facto standard with the implementation.
== PXE Client/Server Protocol ==
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.
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.
=== Proxy DHCP ===
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.
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.
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.
=== Boot Server ===
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.
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.
An ''extended DHCPACK'' contains mainly:
* 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.
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.
=== 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.
=== Integration ===
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.
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.
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.
== 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.
==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
[[Category:Networking standards]]
[[Category:BIOS]]
[[Category:Network booting]]
[[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]]
-->
|