Dynamic Host Configuration Protocol (DHCP) is the standard way network administrators assign IP addresses in IPv4 networks, but eventually organizations will have to pick between two protocols created specifically for IPv6 as the use of this newer IP protocol grows.
DHCP, which dates back to 1993, is an automated way to assign IPv4 addresses, but when IPv6 was designed, it was provided with an auto-configuration feature dubbed SLAAC that could eventually make DHCP irrelevant. To complicate matters, a new DHCP – DHCPv6 – that performs the same function as SLAAC was independently created for IPv6.
Deciding between SLAAC and DHCPv6 isn’t something admins will have to do anytime soon, since the uptake of IPv6 has been slow, but it is on the horizon.
What is DHCP?
DHCP is widely used within enterprise networks today to quickly, automatically and efficiently provide leased or temporary IP addresses to end users, rather than fixed or static ones. When leases expire, the IP addresses go back into a pool of assignable addresses to be leased again.
It also automatically configures other network information, like DNS, the domain name system that matches the website names that people type into a search box with the actual IP address of the site. It can also provide related configuration information like subnet mask and default gateway.
Essentially, DHCP configures a network host so that it can communicate fully on the IP network.
DHCP eliminates problems that might occur if IP addresses are assigned manually, such as configuration errors or two devices getting the same address. Without DHCP, network admins would have to manually track down unused addresses and un-assign them in order to get them back into the pool of available addresses. With DHCP, that happens automatically when the lease expires.
Now that everyone has multiple mobile devices, DHCP has become even more necessary. Manually assigning IP addresses in an environment in which employees were constantly moving from one network to another would be impractical.
DHCP’s ability to dynamically assign IP addresses for fixed lengths of time also provides for an efficient allocation of available IP addresses. This has become particularly important as companies try to stretch their existing inventory of IPv4 addresses.
From a management perspective, DHCP allows network managers to control which devices and which people can get an IP address and which can’t. And it provides visibility into IP address usage in the event that an audit or report is requested.
Of course, not all devices should be configured through DHCP. For example, you don’t want network printers to be getting new IP addresses all the time, forcing end users to update their printer settings, so in that case a static address is preferable.
The only downside is that the requisite DHCP server constitutes a single point of failure, since if the server goes down, nobody can access the Internet.
How does DHCP work?
DHCP works with the same type of handshake model familiar to network administrators.
- A DHCP client device that wants to access the Internet sends a broadcast packet called DHCP DISCOVER to the DHCP server on the LAN segment.
- The DHCP server receives the DISCOVER packet and responds with a DHCP OFFER packet, offering IP addressing information.
- If the client receives the DHCP OFFER packets from multiple DHCP servers, the first OFFER packet is accepted. The client then responds by broadcasting a DHCP REQUEST packet, asking for network parameters from the DHCP server.
- The DHCP server then approves the lease with a DHCP ACK packet, which includes the lease duration and other configuration information.
IPv6 was intentionally designed to allow stateless IP address autoconfiguration (SLAAC). When stateless autoconfiguration is deployed, the host essentially grabs its own IP address with no need for an additional protocol like DHCP.
With SLAAC, the IPv6 network listens for a Router Advertisement (RA) from the host and then assigns a 64-bit prefix. The last 64 bits of the address are derived in a process in which the host device essentially self-determines its address.
At the same time that IPv6 was being developed by the Internet Engineering Task Force (IETF), DHCP was updated for IPv6 networks with a new protocol named DHCPv6. DHCP for IPV4 and DHCPv6 are two completely separate protocols, but they do share some characteristics. Here are the similarities and differences:
Both use a client/server model and both use the concept of leasing IP addresses. Both use the same four-message exchange between client and server. With DHCP for IPv4 networks, the messages are DISCOVER/OFFER/REQUEST/ACKNOWLEDGE and with DHCPv6 it’s SOLICIT/ADVERTISE/REQUEST/REPLY. Both protocols provide DHCP options to the end node to provide additional information.
The differences are that DHCPv6 uses Unique Identifiers, while DHCP uses MAC addresses to identify the client. DHCP messages are transmitted over IPv4 packets and DHCPv6 is transmitted over IPv6 packets. DHCPv6 uses Router Advertisement (RA) and IPv6 multicast messages and DHCP uses broadcast IPv4 messages on the LAN. DHCP for IPv4 can provide the default gateway IP address to the client, whereas DHCPv6 does not have this option.
DHCPv6 vs. SLAAC
When the IETF came up with IPv6 in anticipation of the world running out of IPv4 addresses, it may have envisioned a smooth transition. But, as we know, adoption of IPv6 has been extremely slow.
World IPv6 Day occurred back in 2011 and today only 25% of all Internet-connected networks advertise IPv6 connectivity. According to Google, 49 countries deliver more than 5% of their traffic over IPv6 and another 24 countries have IPv6 traffic exceeding 15%. According to Alexa, of the top 1,000 Websites only 28% are working with IPv6. That’s up from 23% in 2017, but it means that the vast majority of organizations are still on IPv4.
To further complicate matters, the original SLAAC protocol didn’t include automatic DNS, which meant network managers would have needed SLAAC for IP addresses on top of DHCPv6 for DNS services. Requiring both protocols made no sense and the IETF eventually rectified that situation.
Then there are the all-too-familiar turf battles and religious wars. For example, Android refuses to support DHCPv6, and until the Windows 10 Creator Update, Microsoft didn’t support SLAAC.
So, what’s an enterprise network manager to do?
Well, if you’re running IPv4, then there is no issue; stick with DHCP. But be aware that you’re going to have to move to IPv6 eventually.
If you’re running a dual-stack environment, with both IPv4 and IPv6, then it probably makes sense to use DHCP and DHCPv6. This gives you the most consistency and control over your environment.
If you have moved to an all-IPv6 network and you have no restrictions on who can join the network, then SLAAC is the best option.
Another way of looking at it is that SLAAC is a more lightweight protocol. It allows hosts to join the network on their own, but it doesn’t provide the management layer and auditing capabilities that DHCPv6 offers.