BOOTP

What is BOOTP

BOOTP (Bootstrap Protocol) is a protocol for configuring hosts that was developed before DHCP.

BOOTP is defined in RFC 951 of 1985.

 DHCP is an improvement over BOOTP, addressing the limitations of BOOTP as a service of configuring hosts. Over 30 configuration parameters are supported.

 Communication between client and server uses UDP ports. Use UDP port number 67 from the client to the BOOTP and DHCP servers, and use UDP port number 68 from the BOOTP and DHCP servers to the client. These UDP ports 67 and 68 are still called BOOTP ports.

There are three major differences between BOOTP and DHCP. A summary is given in the table below.

●Major items of DHCP messages

BOOTPDHCP
static mappingdynamic mapping
permanent assignmentlease
Supports only 4 configuration parametersSupports over 30 configuration parameters

 DHCP can dynamically assign IP addresses to clients, while BOOTP is static.

 In BOOTP, when a client requests an IP address, it looks up the IP address associated with the client's MAC address from a table defined in advance on the BOOTP server and assigns it to the client.

 Also, while DHCP allows you to assign an IP address to a client for a period of time and then assign it to another client after the period expires, in BOOTP, an IP address is tied to its MAC address so that it can be assigned an IP address to another client. Address cannot be assigned.

 DHCP supports over 30 configuration parameters, including WINS and domain name, while BOOTP supports only 4 configuration parameters.

BOOTP message format

 BOOTP and DHCP messages use almost the same format structure. Only the final field is different. BOOTP calls this optional field the "vendor specific area" and limits it to 64 bytes.

 BOOTP and DHCP messages use almost the same format structure. Only the final field is different. BOOTP calls this optional field the "vendor specific area" and limits it to 64 bytes.

For DHCP, this field is of variable length and is called "options" and allows DHCP option information to be conveyed.

The figure below shows the BOOTP message format.

The main items of the BOOTP message are shown in the table below.

● BOOTP message format

information nameexplanation
CIADDRClient IP address, used when client is in BOUND, RENEW or REBINDING state.
YIADDRThe IP address of the client assigned by the DHCP server (your IP address)
SIADDRDHCP server IP address
GIADDRIP address of the DHCP relay agent. The DHCP server identifies the subnet to which the client belongs by looking at GIADDR.
CHADDRClient's MAC address

How BOOTP network boot works

 When computers were still very expensive, inexpensive diskless computers without hard disks were often used by businesses. Even now, it is expected to prevent information leakage by physically separating the hard disk from the user, so it is attracting attention again.

 In particular, thin client systems, which manage resources such as application software and files on the server side, are attracting attention.

There are several ways to boot and use a diskless client over the network.

  • How to boot on the NIC and boot over the network
  • How to boot into DOS and boot over the network
  • How to boot from a floppy using a BOOTP-enabled kernel

 Here, although the NICs that support it are limited now, I will introduce the mechanism to boot with the NIC and boot via the network. It's always a question of whether the network card you're going to use supports it.

 A diskless computer does not have a hard disk and therefore cannot have boot information locally. Since there is no OS, it cannot boot on its own.

 Therefore, diskless computers need to boot over the network. BOOTP is used at that time.

 BOOTP is used in the difficult situation of requesting boot information from the server at boot time and transferring the boot information.

①When the power is turned on to the client, the UDP procedure is loaded from the local ROM.
(2) Requests boot information from the server via UDP.
(3) The server side transfers the boot information using TFTP.

 The TFTP used here is a protocol that corresponds to a simplified version of FTP, and since it does not have functions such as authentication, it operates lightly. UDP port number 69 is used.