I can honestly say that anyone who is reading this article online has used the Dynamic Host Configuration Protocol (DHCP). Even if you've never heard of it, DHCP is very likely a vital part of your daily process:
- When you turn on your cell phone and connect to a mobile network, you're using DHCP.
- When you connect to a hotspot at a diner or café, you're using DHCP.
- When you connect to your home or office network, you're (probably) using DHCP.
This article covers a few of the top concepts that will help you to understand what DHCP is and how it works. We'll start with the "dynamic" part of the protocol.
What Is Dynamic IP Addressing?
To understand dynamic addressing, we need to contrast it with its alternative, static addressing. With static addressing, Internet Protocol (IP) addresses are assigned to specific devices; this address doesn't change over time as the device is used. This type of addressing is typically used on servers, where the source address of a device must not change because people use that address to access the server remotely via the Domain Name System (DNS).
With client devices, having a static address typically isn't very important. This is where dynamic addressing comes in. Since the specific IP address assigned to a client device can change day to day without affecting the device's connections, it's possible to configure a range of addresses that can be assigned as needed when a client requests an address. This process is handled by DHCP.
Basic DHCP Terminology
This section explains some important terms that you need to know to understand the DHCP process:
The range of addresses referenced previously is called a DHCP scope. On small networks, the server may be configured with a single scope that covers all the addresses to be assigned on a single local access network (LAN). On larger networks, a DHCP server is typically configured with multiple DHCP scopes to accommodate all of the different subnets that exist throughout the network. Figure 1 shows an example.
Figure 1 DHCP network layout.
In this example, the DHCP server is responsible for maintaining the scope of addresses for four different network LANs (four subnets).
Once the scopes have been set up, the next logical step is assigning addresses to requesting clients; this process is referred to as leasing an address. The duration of this lease is variable and depends on the settings of the local DHCP server. A typical duration is from 24 hours to 7 days. Under Internet Protocol version 4 (IPv4), the DHCP server is responsible for maintaining a list of these leases, including which address was assigned, its duration, and which device leased the address.
A DHCP reservation can be used as an alternative to static addressing. With static addressing, each statically addressed device must be manually configured with the address. If the network changes in some way, the addresses must be reconfigured manually. With a reservation, on the other hand, the device can be configured to use DHCP, but on the DHCP server that device will always be given the same address; this is referred to as a reservation.
A DHCP server is not only tasked with giving out addresses; typically it also provides additional useful information with the address. These details are called DHCP options. By itself, an IP address assignment only allows the device to access the IP network on the local subnet; the device can't access any other devices external to that subnet. With options, a DHCP server shares additional information that extends the device's ability to access other parts of the network or other devices configured on that network. Some common examples include the subnet gateway address (the default gateway); DNS servers; and time servers, which use the Network Time Protocol (NTP).
With this understanding of DHCP terminology, let's review how DHCP operates. Typically, the process of retrieving an address involves the following communications:
- When a client device is turned on, it sends out a request for a local DHCP server, in order to lease an IP address.
- If configured, a DHCP server responds to the request by offering an IP address.
- The client tells the DHCP server that it accepts the IP address.
- The DHCP server acknowledges the client's acceptance.
In DHCP, this process is formalized with the common designation "Discover, Offer, Request, Acknowledge (DORA). The following steps describe this process:
- When a client starts up, it sends out a broadcast message containing a DHCP discovery message. This message is not addressed to a specific DHCP server, but rather to any that are listening on the local link.
- If a DHCP server is listening on the local link, it receives the client's message, determines that it's a DHCP discover message type, and attempts to allocate an address to assign to the requesting client. If an address is available for the requested subnet (sometimes DHCP addresses are limited), it replies to the requesting device directly (unicast) with a DHCP message offering an IP address, along with any added DHCP options.
- If the client receives the message and accepts the offered address, it sends back a DHCP direct (unicast) request message to the DHCP server, telling the server that it accepts the assignment.
- When the DHCP server receives this request, it records the address as leased, starts the lease timer, and sends back a DHCP acknowledgment message.
Figure 2 shows an example of this process.
Figure 2 Local DHCP process.
It's possible for multiple DHCP servers to be configured on a single link. In this case, the client will get its address from the first server that responds.
Sometimes a DHCP server is not directly connected to all the segments for which it can issue address leases. When this happens, a DHCP relay(also commonly referred to as an IP helper) must be configured. This arrangement is required because the initial DHCP discovery message is broadcast from the client but not routed past the local subnet.
The DHCP relay feature is configured on each router that's connected to the local LAN segments where DHCP clients exist. Each router listens for clients broadcasting DHCP discovery messages. When it receives a message, the router relays the message to a configured DHCP server via unicast; all related packets (also unicast) are then exchanged between the client and the DHCP relay, and between the DHCP relay and the DHCP server. Figure 3 shows an example of this configuration.
Figure 3 Non-local DHCP process with DHCP relay.
The DHCP protocol is widespread and is used every day by almost everyone who connects their devices to a network. All network engineers must have at least a basic idea of how this process works and how it can be configured.