Installing and Administering Internet Services

Chapter 5 167
Configuring TFTP and BOOTP Servers
How BOOTP Works
2. The client broadcasts the bootrequest packet on its first LAN
interface (lan0). The bootrequest also contains the client’s hardware
address, and, if known, its IP address.
3. The BOOTP server checks to see if boot information for the client is in
its database. If boot information for the client is available in the
server’s database, the server answers the bootrequest with a
bootreply packet.
4. If the BOOTP server does not find boot information for the client in
its database, it checks to see if there is relay information for the
client. If there is no relay information for the client in the database,
the bootrequest is dropped. If there is relay information available and
the relay function is enabled for the client, the server checks the
following:
Does the hops value in the bootrequest packet exceed the
maximum configured for the client? If it does, the request is
dropped. If not, the hops field in the bootrequest packet is
incremented.
Is the secs value in the bootrequest packet less than the
threshold configured on the server for the client? If it is, the
request is dropped.
If the request has not been dropped during the above checks, the
server then relays the bootrequest to the BOOTP server(s) that have
been configured for the client. If the giaddr field of the bootrequest
packet is 0, the server puts its IP address in the field.
Steps 3 and 4 are repeated until either the bootrequest is received by a
BOOTP server that finds boot information about the client in its
database, or the request is dropped.
When a server finds client information about a particular client in its
database, the server answers the bootrequest with a bootreply packet.
The client’s IP address is placed into a field in the bootreply. The
bootreply may also contain a file name of a boot file, which the client
should load with TFTP. Other information that can be included in the
bootreply are the client’s subnet mask, the addresses of nameservers,
and the addresses of gateways.
If the bootrequest has been relayed to one or more BOOTP servers, the
bootreply is sent to the IP address in the giaddr field. This should be the
IP address of the BOOTP server that initially relayed the bootrequest.
That BOOTP server then sends the bootreply to the client.