The majority of computer users are familiar with BIOS options as long as they don't go further than selecting the main bootable device or ordering that priority list such as HDDs first, then optical drives, and so forth. In the past few years, however, another option has appeared there. It’s called Network Boot or the infamous PXE Boot. In this article we will give a brief overview of the basics of network booting.
PXE is not the only possible way to network boot, but it is one of the most popular. In a nutshell, a PXE server is nothing but a DHCP and TFTP server. You must dedicate one server from your network to be a PXE server. It should have the aforementioned services configured, up and running. Then the PXE server will be able to reply to PXE boot requests and aid the client system during its bootstrap session.
Basically, when you are configuring a client system in BIOS to be allowed to do network booting, right after the POST (Power on Self Test) process, the system executes the PXE bootstrap session. At first, it is going to look for DHCP servers from the network. An appropriately configured Proxy DHCP will reply with the entire list of possible PXE boot servers and deliver their IP addresses, while distributing an IP address to the client as well.
The user is given the possible choices of PXE boot servers (in most cases, there's only one) during a boot menu. After selecting the required PXE boot server, the bootstrapping process begins and the PXE firmware asks for the exact path of the NBP (Network Bootstrap Program). After receiving this path, the download process begins. This is done via the TFTP; the initials stand for Trivial File Transfer Protocol (UDP, port 69).
As you can already guess from its name, this FTP is really "trivial," thus, simple. That is the main reason it is being used for remote booting, because it is easier to implement, to store and execute from the memory, and so forth. It doesn't offer advanced functionalities like the generic FTP (TCP, port 21). Each has its own uses.
There is a workaround to avoid the need for a proxy DHCP, if only one NBP is going to be using across the entire network by each PXE client system. In this case, the address of the server, along with the exact path of the NBP, can be specified via the protocol called BOOTP. Even though BOOTP is a simplified minimalist version of DHCP, client computers will still be able to receive their IP address assigned via BOOTP.
The TFTP server is always necessary, because without it the NBP couldn't be transferred. Once the client receives the chosen NBP, the package is verified, and should the process succeed, it is followed by execution. Up to this point, the entire NBP was stored in the system memory (RAM) of the client.
Intel PXE was created while taking in consideration the following key points: it should not interfere with existing DHCP servers that may be found on the network, it should be easily configurable and implemented on simple networks(even extended later, if need be), and the services should be capable of running from one server but also independently.
On the next page we will show you one of the simplest ways to create a PXE server under Microsoft Windows, say, XP. To do it you need at least two computers, since one is going to become the PXE server, while the other will become the PXE client system. The client system will be assigned its own IP address via Proxy DHCP, and then receive the contact details of the PXE server, download, verify, and execute the NBP. Let's do it!