The TCP/IP Guide - Version 3.0 (Contents) ` 1200 _ © 2001-2005 Charles M. Kozierok. All Rights Reserved.
However, while DHCP and BOOTP are similar, they are not the same, and so there are
some interoperability concerns that crop up when they are used together. The DHCP
message format is structurally the same as the BOOTP format, but the interpretation of
certain fields is slightly different. BOOTP clients don't understand DHCP, so when BOOTP
and DHCP are used together, the DHCP client or server must sometimes behave slightly
differently to compensate. Further complicating matters is the fact that not all implementa-
tions of DHCP and BOOTP are necessarily exactly the same, and the fact that certain
specifications in the DHCP standard are not mandatory.
For these reasons, we cannot just assume that DHCP and BOOTP will work together. To
address some of these issues, the IETF published RFC 1534, Interoperation Between
DHCP and BOOTP, at the same time that DHCP was originally created. This document
looks at how the protocols work together, focusing on the two distinct client/server interop-
erating combinations: a BOOTP client connecting to a DHCP server, and a DHCP client
connecting to a BOOTP server. Let's consider each case one at a time.
BOOTP Clients Connecting to a DHCP Server
As indicated by the quote above from RFC 2131, DHCP was specifically intended to allow a
DHCP server to handle requests from BOOTP clients. The protocol itself is set up to enable
this, but it does require that the DHCP server be given certain intelligence to know how to
deal with BOOTP clients. One of the most important issue is, of course, that BOOTP clients
will follow the BOOTP configuration process and not the DHCP leasing processes. The
DHCP server must use BOOTP messages with the BOOTP meanings for fields when
dealing with BOOTP clients. A server determines that a client is using BOOTP instead of
DHCP by looking for the presence of the DHCP Message Type option, which must be
present in all DHCP messages but of course is not used for BOOTP.
If a DHCP server detects that it is dealing with a BOOTP client, it can respond with configu-
ration information for the client. The server can use either manual or automatic allocation
for the client. Automatic allocation of course means the server chooses an address from its
pool of unused addresses, but assigns it permanently. BOOTP clients are not capable of
dynamic allocation since BOOTP is static in nature.
A DHCP server may include BOOTP vendor information fields in its response to a BOOTP
client, including ones defined since BOOTP was created. However, it obviously must not
send any DHCP-specific options.
DHCP Clients Connecting to a BOOTP Server
Now, for the other case. A DHCP client can obtain configuration information from a BOOTP
server, because the server will respond to the client's initial DHCPDISCOVER message as
if it were a BOOTP BOOTREQUEST message. The DHCP client can tell that a BOOTP
reply has been received because there will be no DHCP Message Type option. A response
from a BOOTP server should be treated as an infinite lease, since again, that's all that
BOOTP supports. Note that if a DHCP client receives a response from both a BOOTP
server and a DHCP server, it should use the DHCP response and not the BOOTP response
(even if this means it gets a shorter lease).