Bootstrap Protocol (BOOTP) is a network protocol that is (was) used to automatically assign an IP address to a computer in a network. It uses a client-server model where a server gives out IP addresses from a list.
BOOTP came after RARP (Reverse Address Resolution Protocol) and before DHCP (Dynamic Host Configuration Protocol). It not only assigns an IP Address to the computer but also provides the subnet mask, gateway, and DNS settings.
In this article
In this article, we are going to take a look at how the Bootstrap Protocol works, and where you can use it for.
Fundamentals of BOOTP
BOOTP, short for Bootstrap Protocol, facilitates the assignment of IP addresses to network devices without user intervention. Historically, the protocol played an important role in client-server network configurations, setting the stage for its successor, DHCP.
It replaced the RARP protocol, which was limited to assigning IP Addresses to a single subnet only. The old protocol was also not able to provide other vital network information, like gateway and DNS Servers.
The advantage of BOOTP was that used the UDP protocol, allowing it to be routed to all subnets. Even though DHCP has taken over the IP Address assignment, BOOTP remains relevant for some network operations.
How BOOTP Works
When your device starts up on a network, BOOTP comes into action immediately. It operates on the principle that a client device sends a broadcast request to the network. A BOOTP server responds to this request, providing the client with the necessary network configuration details, including an IP address.
This exchange occurs via UDP, using ports 67 and 68, making the information routable across different networks.
BOOTP Message Structure
The BOOTP message structure is a crucial component of the Bootstrap Protocol, dictating how data is formatted and transmitted between the client and server. Understanding this structure is essential for effective network configuration.
BOOTP messages are encapsulated within the User Datagram Protocol (UDP) and sent across networks. The messages consist of a fixed-length header and an optional vendor-specific area.
The fixed part of the BOOTP message begins with an operation code to specify the request or reply, followed by hardware and protocol specifics such as your hardware address type and length (typically MAC address), and the hop count.
IP addresses for the client, your server, and the gateway are also included, alongside the client’s MAC address. Here is what you typically see in a BOOTP message:
- Operation Code (1 byte)
- Hardware Type (1 byte)
- Hardware Address Length (1 byte)
- Hops (1 byte)
- Transaction ID (4 bytes)
- Seconds Elapsed (2 bytes)
- Boot Flags (2 bytes)
- Client IP Address (4 bytes)
- Your IP Address (4 bytes)
- Server IP Address (4 bytes)
- Gateway IP Address (4 bytes)
- Client Hardware Address (16 bytes)
- Server Host Name (64 bytes)
- Boot File Name (128 bytes)
- Options (64 bytes)
The Transaction ID is a unique identifier generated by the client in a BOOTP message. This 4-byte number is crucial as it is used to match responses with requests, ensuring that the response from a server corresponds correctly with the initial query sent on the network.
BOOTP Messages Types
There are two primary types of BOOTP messages that you should be aware of:
BOOTREQUEST is a broadcast message sent by a client seeking IP configuration, while the
BOOTREPLY is the server’s response to this request.
This response can provide the client with an IP address, subnet information, and the address of a gateway if needed, facilitating the booting process of a network device without manual configuration.
BOOTP vs DHCP
In networking, both BOOTP, which is an older protocol, and DHCP, the newer standard, play key roles in managing network configurations. Understanding their differences is crucial when managing or designing network infrastructures.
BOOTP – Developed in the 1980s to allow networked computers to obtain an IP address and boot files (for example images) from a server. This protocol was designed to be used without manual intervention, effectively allowing the use of diskless computers.
DHCP – Evolved from BOOTP in the 1990s, adding the ability to dynamically and automatically lease IP address assignments, providing a more flexible network management. It extends BOOTP capabilities with features like automatic reuse of IP addresses.
BOOTP and DHCP can coexist on the same network. Many DHCP servers retain BOOTP functionality for backward compatibility. This allows older devices that support only BOOTP to still receive an IP address and other network configurations from a DHCP server.
IP Address Assignment:
- BOOTP: Assigns IP addresses with a manual mapping to a device’s MAC address; typically, the assignments are static (unchanging).
- DHCP: Dynamically assigns IP addresses from a pool for a limited lease time, after which the IP may be reassigned.
- BOOTP: Provides the basics — an IP address, subnet mask, and the address for a gateway or router.
- DHCP: Offers a broad range of configuration options including IP address, subnet mask, default gateway, DNS server addresses, and more.
Flexibility and Management:
- BOOTP: More static and requires more manual configuration, suitable for smaller networks or environments with fixed devices.
- DHCP: Highly flexible, and suitable for networks where devices frequently join or leave, reducing the administrative burden.
BOOTP in Modern Networking
In today’s networks, you won’t come across the bootstrap protocol a lot anymore. Until maybe 10 to years ago you would see the protocol being used for TFTP servers to boot devices with an image. But nowadays it’s completely replaced by the DHCP protocol.
There are some edge cases where the bootstrap protocol is still used. One of those cases is in industrial automation. I have little to no knowledge about industrial automation, but from what I heard they sometimes still only support the old protocol.
The bootstrap protocol laid the groundwork for the modern DHCP protocol. You won’t see it being used anymore in normal networks. Only when you are dealing with industrial automation you may still find use cases for it.
This means that you can safely disable the protocol on your DHCP server in a modern network environment.
I hope you found this article helpful, if you have any questions, just drop a comment below.