Chapter 7.  Network Boot Protocols

Table of Contents

Remote IP configuration
BOOTP
DHCP - Dynamic Host Configuration Protocol
RARP - Reverse ARP
Directed Ping
Delivering the Boot Image to a Client Computer
TFTP
RBoot
MOP - Maintainence and Operator's Protocol
Configuring a General-Purpose Boot Server
Configuring dhcpd for BOOTP and DHCP
Configuring rarpd
Configuring rbootd
Configuring mopd

Booting over the network has several advantages. First, you can have a centralized archive of boot images, second you can test things in a simple manner without risking locally saved data, third it will allow you to use NFS-Root, which is especially interesting if you work on machines whose Linux port is in an early state...

If your computer's firmware uses a proprietary boot protocol, there's not all that much to setup in the first run. However, if it uses the long-standing bootp/dhcp + tftp variant, you need to boot in two steps: first get some IP configuration, second start downloading the OS image.

Remote IP configuration

Quite a lot of non-ia32 machines do have firmware support for using the IP protocol stack. Therefor, they requite to have an useable IP configuration. Often, this can be done manually, but most machines also accept to get their IP configuration from a remote server.

BOOTP

BOOTP is a simple protocol defined by RFCs XXX and XXX and allows a server to give a specific IP address to a client (those are normally identified by their MAC address).

DHCP - Dynamic Host Configuration Protocol

DHCP is basically the same as BOOTP (they're even binary compatible), but with a lot of extensions.

RARP - Reverse ARP

A client machine may also issue a reverse ARP query to the network. Normal ARP queries try to figure out a MAC address for a given IP address. RARP does the opposite: it asks for an IP address for a given (own) MAC address.

Directed Ping

A directed ping is mostly used to configure small, embedded devices. The trick is to enter a target's MAC address (statically) into some computer's ARP cache. Then, you use this computer to ping the machine (to be configured) once. The source machine can send the ping packet because it already knows the client's MAC address. Once the client receives a non-broadcast ping, it can read it's own IP address off the ping packet.