|
|
|
|
|
Pxe About The PXE(Preboot Execution Environment) as described in the specification(v2.1) published by Intel & Systemsoft is an environment to bootstrap computers using a network interface card independently of avaiable data storage devices( like hard disks) or installed operating systems( like Linux). It makes use of IP, UDP, DHCP, TFTP, GUID/ UUID, UNDI(Universal Network Device Interface) and extends the PXE Client's(the computer to be bootstrapped via PXE) firmware with a set of predefined APIs. PXE has been introduced as part of the wired for management framework by Intel. Chain The firmware tries to locate a PXE redirection service(Proxy DHCP) in order to recieve informations about available PXE boot servers. After parsing the answer, the firmware will ask an appropriate boot server for the file path of a network bootstrap program(NBP), download it into the computer's RAM using TFTP, eventually verify and than 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 Though PXE was specified by Intel for it's IA-32, it should be portable to most computer architectures. For example, Intel included PXE in the EFI for it's IA-64 and therefore ported it to a completely different architecture. PXE Client/Server Protocol To initiate a PXE bootstrap session a DHCPDISCOVER packet extended with PXE-specific options(extended DHCPDISCOVER) is broadcasted to port 67/UDP using the PXE firmware extension. The PXE options identify the firmware as to be capable of PXE, but they will be ignored by standard DHCP services. So the firmware may configure itself by requesting one of the offered standard DHCP configurations. Proxy DHCP If a PXE redirection service(Proxy DHCP) recieves an extended DHCPDISCOVER, it answers by broadcasting a DHCPOFFER packet extended with PXE-specific options(extended DHCPOFFER) to port 68/UDP(DHCP client port). This paket has to be broadcasted, 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 it's GUID/UUID. An extended DHCPOFFER will contain mainly: - a PXE Discovery Control field to decide wheter Multicasting, Broadcasting or Unicasting is to be used for contacting PXE boot servers
- a list of IP adresses 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 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 host as the standard DHCP service. Since both services cannot share port 67/UDP, the Proxy DHCP runs on port 4011/udp and exspects the extended DHCPDISCOVER packets from PXE Clients to be DHCPREQUESTs. The standard DHCP service has to send a special combination of PXE options in it's 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 informations from one extended DHCPOFFER. Choosen an appropriate PXE Boot Server Type the firmware mutlicasts or unicasts a DHCPREQUEST-paket 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, so you can run many boot server types with one boot server daemon(or 'program'). The extended DHCPREQUEST may also be a DHCPINFORM. If a PXE Boot Server recieves 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 answer by sending back an extended DHCPACK - a DHCPACK-packet extended with PXE-specific options, right ;-) - to the extended DHCPREQUEST's source port. An extended DHCPACK contains mainly: - the completely 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 BIS specification v1.0 published by Intel. The BIS allow a PXE Client to verify downloaded NBPs using a file, which contains some kind of checksum and is downloaded from the same boot server as the NBP was. To get the file path of the credentials file(checksum file) another exchange of extended DHCPREQUEST and extended DHCPACK is required. Network Bootstrap Program After recieving the requested extended DHCPACK, the Network Bootstrap Program is downloaded into the RAM and if it was verified or it was not required to verifiy it, the NBP will be executed. It has access to the APIs of the PXE firmware extension(Pre-boot, UDP, TFTP, UNDI), it's 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 diturbtion
- it can be integrated completely in DHCP services
- it can be easily extended at the most importend 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 PC PXE-capable by installing a NIC that provides a PXE Option ROM. Resources Specifiations, RFCs and other documents about PXE: External Links Copyright Notice This article is based on a translation of the PXE article, version 2005-Apr-03 15:16, from the german Wikipedia.
|
 |
|
| Copyright 2005-2009 OnPedia.com. All Rights Reserved |
|
|