DHCP (Dynamic Host Configuration Protocol)
DHCP (Dynamic Host Configuration Protocol)
HTML
SUMMARY
DHCP (Dynamic Host Configuration Protocol) is a protocol used by DHCP servers in
wired/wireless IP networks to dynamically allocate a variety of network configuration
data, such as a user IP address, subnet mask, default gateway IP address, DNS server IP
address, lease time and so on, to client devices (DHCP clients). The DHCP protocol
enables DHCP clients to dynamically configure such network configuration data without
any manual setup process, which makes network management much easier. This
document provides fundamentals of basic DHCP operation in relation to IP address
allocation, IP address lease renewal and IP address release procedures based on the
DHCP protocol in detail.
Table of Contents
I. Introduction
II. IP Address Allocation/Lease Procedure
III. IP Address Renewal Procedure
IV. IP Address Release Procedure
V. Summary
VI. Closing
Appendix A - Format of DHCP Messages in IP Address Allocation/Lease
Procedure
Appendix B - Format of DHCP Messages in IP Address Renewal Procedure
Appendix C - Format of DHCP Messages in IP Address Release Procedure
I. Introduction
As we need a phone number to make a call to someone, we need an address to communicate with a
network host over the Internet. This address is called an "Internet Protocol (IP) address". Generally,
IP addresses are dynamically allocated to clients accessing the Internet, through Dynamic Host
Configuration Protocol (DHCP), a protocol designed for dynamic allocation of IP addresses, as
defined in [1].
DHCP adopts the concept of a lease in IP allocation. This means, a DHCP server does not allocate
an IP address to a client permanently. What it does instead is set a lease duration and allow the
client to use the allocated IP address only during the set lease duration. If the client wishes to use
the allocated IP address for longer than the lease duration, it should request the DHCP server for
renewal of the lease. If not, it performs an IP address release procedure instead.
This document is organized as follows: Chapter II will explain the procedure for allocating/leasing IP
addresses, and Chapter III and Chapter IV will describe the procedure for extending the lease time
of, and releasing allocated IP addresses, respectively. Chapter V will summarize all DHCP procedures
covered in the previous chapters. Finally, in Appendices, specific message parameters used in each
DHCP procedure will be discussed.
When a client (PC) is booted, it broadcasts a DHCP Discover message over the Ethernet network to
locate all available DHCP servers on the same subnet network (by setting the destination MAC
address in the Ethernet header as Broadcast MAC=FF:FF:FF:FF:FF:FF), reaching all the DHCP servers
on the same subnet network.
2. DHCP Offer
When a DHCP server receives the DHCP Discover message from the client, it also broadcasts a DHCP
Offer message over the Ethernet network (because the client IP address has not been allocated yet),
informing the client that it is available. This message contains the network information, such as
client IP address, subnet mask, default gateway IP address, DNS IP address, IP lease time and
DHCP server IP address. The DHCP Offer message broadcasted is delivered to all the clients on the
same subnet network, including the one that sent the DHCP Discover message.
3. DHCP Request
The client, having received the DHCP Offer message, recognizes there is a DHCP server available on
the same subnet. Then it broadcasts a DHCP Request message to the server over the Ethernet
network, requesting network configuration data including an IP address for itself. If more than one
DHCP server responds on the same subnet and hence the client receives multiple DHCP Offer
messages, it selects one of the DHCP servers, and enters the IP address of the selected DHCP server
in the DHCP Server Identifier (option 54) field of the DHCP Request message. Then it informs all the
DHCP servers on the subnet network about such selection by broadcasting the DHCP Request
message. Typically, all DHCP servers internally store the network configuration data (i.e. IP address
for the client and other information) when they send a DHCP Offer message. So, the client
broadcasts the DHCP Request message to all the DHCP servers, so that those not selected can also
receive the message and delete the stored network configuration data from their memory.
4. DHCP Ack
The DHCP server which received the DHCP Request message from the client checks if the IP address
shown in the DHCP Server Identifier (option 54) field matches its own. If it does, it broadcasts a
DHCP Ack message ensuring the client can receive the message (Note: the client has NOT been
allocated an IP address yet).
At this time, the DHCP server transfers all the network configuration data including the client IP
address the same data sent along with the DHCP Offer message - to the client. Then the client
configures a network interface using the transferred data, finally connecting to the Internet. The
typical network configuration data includes:
IP address
Subnet mask
Lease time (during which a client can use the IP address allocated/leased by a DHCP server)
The Figure 2 shows the network configuration of a PC client (Windows 7) of which IP allocation
procedure is completed.
configuration data (i.e. client IP address, subnet mask, default gateway IP address, DNS IP address,
etc.), consequently having no access to the Internet any more.
V. Summary
This chapter summarizes the basic DHCP procedures: 1) IP address allocation/lease, 2) IP address
renewal and 3) IP address release. Figure 5 shows a message flow diagram illustrating all these
DHCP procedures.
IP address allocation/lease: Once a DHCP client is booted up, it broadcasts a DHCP Discover
message, and in respond to the message, a DHCP server broadcasts a DHCP Offer message. In case
there is more than one DHCP server on the subnet, the client selects one of the servers, and
broadcasts a DHCP Request message with the information of the selected server entered in the
DHCP Server Identifier (option 54) field. Finally, the client receives network configuration data such
as client IP address, subnet mask, default gateway IP address, DNS IP address, IP lease time from
the server, and configures its network interfaces using the data.
IP address renewal: When half of the lease time set through IP address allocation/lease
procedure has passed, it unicasts a DHCP Request message to the DHCP server for renewal of its IP
address. The DHCP server, upon receiving the DHCP Request message, accepts the request by
responding with a unicast DHCP Ack message.
IP address release: Once the client is logged-off, it returns the allocated IP address to the DHCP
server by unicasting a DHCP Release message to the DHCP server.
VI. Closing
This document is the first in our technical documents series about DHCP and has so far explained
the basic operations of DHCP. It has covered only the fundamentals and will be used as a reference
for subsequent technical documents in the DHCP series.
The DHCP technical documents series will cover the following topics:
1.
2.
3.
Client IP address allocation procedure through DHCP in operator networks (Note: Many telecom
operators are facing issues with subscriber identification and authentication, DHCP security, DHCP
message broadcasting, etc.).
4.
References
[1] R, Droms, Dynamic Host Configuration Protocol, RFC 2131, Standard, March 1997.
[2] S. Alexander and R. Droms, DHCP Options and BOOTP Vendor Extension, RFC 2132, Standard,
March 1997.
Footnote
1 Our internal self-test result shows that a Windows 7 client PC does NOT send a DHCP Release
message even after a normal log-off (power off). Thus, the client PC releases the allocated IP
address to the DHCP server upon the expiration of the specified lease time.
Destination MAC Address: As the client is NOT aware of the MAC address of a DHCP server, it
floods a DHCP Discover message on the Ethernet network using a broadcast MAC address
(0xFFFFFFFFFFFF).
Source MAC Address: The source MAC address on the Ethernet is always the address of a packet
sender. Thus, this field is the MAC address of the client (m1).
EtherType: Indicates that the header is followed by an IP packet (IP=0x0800, ARP=0x0806, etc).
IP Header
Protocol ID: Indicates that the header is followed by a UDP packet (UDP=17, TCP=6, etc).
Destination IP Address: The client is NOT aware of the IP address of a DHCP server so it floods a
DHCP Discover message over the IP network using a broadcast IP address (255.255.255.255).
UDP Header
Source Port: Indicates that the DHCP message sender is the DHCP client (68=BOOTP Client), so
the client always sends the message with Source Port=68.
Destination Port: Indicates that the DHCP message receiver is the DHCP server (67=BOOTP
Server), so the server always sends the message with Destination Port=67.
DHCP Message Payload
Client MAC Address (chaddr): The MAC address of the client (m1).
DHCP Message Type (option 53): Indicates that the DHCP message type is DHCP Discover
(Value=1).
Client Identifier (option 51): Serves as an indicator to distinguish clients, and generally contains
the MAC address of the client (m1). The DHCP server distinguishes one client from another based on
the values in this field.
Parameter Request List (option 55): Contains the network information list (DHCP option List)
that the client needs to obtain from the DHCP Server. For example, it requests subnet mask, default
GW IP address, DNS IP address and so on.
Destination MAC Address: The DHCP server broadcasts a DHCP Offer message over the Ethernet
network.
Source MAC Address: The source MAC address on the Ethernet is always the address of a packet
sender. Thus, this field is the MAC address of the client (m2).
IP Header
Destination IP Address: As the client is NOT aware of the IP address of the DHCP server, it
floods a DHCP Discover message over the IP network using a broadcast IP address
(255.255.255.255).
UDP Header
Source Port: Indicates that the DHCP message sender is the DHCP server, so the server always
sends the message with Source Port=67.
Destination Port: Indicates that the DHCP message receiver is the DHCP client, so the client
always sends the message with Destination Port=68.
DHCP Message Payload
Client MAC Address (chaddr): The MAC address of the client (m1).
DHCP Message Type (option 53): Indicates that the DHCP message type is DHCP Offer
(Value=2).
Subnet Mask (option 1): The subnet mask to be used by the client (255.255.255.0 (/24)).
Router IP (option 3): The IP address (1.1.1.1) of the default gateway (the first router or L3
switch seen by the client to get to the Internet).
Domain Name Server IP (option 6): The IP address of the DNS server to be used by the client.
Normally, it provides two IP addresses, primary DNS IP address (10.1.1.1) and secondary DNS IP
address (10.1.1.2), together.
IP Address Lease Time (option 51): The lease time during which the client is allowed to use the
IP address allocated by DHCP server (3,600 sec. (1 hour)). At the mid-point of the lease time (30
minutes), the client begins its IP address renewal procedure.
DHCP Server Identifier (option 54): The IP address of the DHCP server that sent the DHCP
Offer message (1.1.1.254). In case multiple DHCP servers on the same subnet send DHCP Offer
messages to the client, the client distinguishes servers based on the values in this field.
Destination MAC Address: As the client is NOT aware of the MAC address of a DHCP server, it
floods a DHCP Request message over the Ethernet network using a broadcast MAC address
(0xFFFFFFFFFFFF) in order to inform all the DHCP servers of which DHCP server is selected by the
client.
Source MAC Address: The source MAC address on the Ethernet is always the address of a packet
sender. Thus, this field is the MAC address of the client (m1).
IP Header
Destination IP Address: It floods a DHCP Request message over the IP network using a
broadcast IP address (255.255.255.255) in order to deliver the DHCP Request message to all the
DHCP servers on the same subnet.
UDP Header
Source Port: Indicates that the DHCP message sender is the DHCP client (68=BOOTP Client).
Destination Port: Indicates that the DHCP message receiver is the DHCP server (67=BOOTP
Server).
DHCP Message Payload
Client MAC Address (chaddr): The MAC address of the client (m1).
DHCP Message Type (option 53): Indicates that the DHCP message type is DHCP Request
(Value=3).
Client Identifier (option 51): Serves as an indicator to distinguish clients, and generally contains
the MAC address of the client (m1). The DHCP server distinguishes one client from another based on
the values in this field.
Requested IP Address (option 50): The IP address (yiaddr=1.1.1.10) received through the
DHCP Offer message from the DHCP server. This is intended to re-send the IP address to the DHCP
server in order to verify if the IP address is valid (In normal operation, the DHCP server allocates the
IP address to the client through the DHCP Ack message).
Parameter Request List (option 55): Contains the network information list (DHCP option List)
that the client needs to obtain from the DHCP Server. For example, it requests subnet mask, default
GW IP address, DNS IP address and so on.
Destination MAC Address: The DHCP server broadcasts a DHCP Ack message over the Ethernet
network to reach the client.
Source MAC Address: The source MAC address on the Ethernet is always the address of a packet
sender. Thus, this field is the MAC address of the DHCP server (m2).
IP Header
Destination IP Address: As the client is NOT aware of the IP address of the DHCP server, it
floods a DHCP Discover message over the IP network using a broadcast IP address
(255.255.255.255).
UDP Header
Source Port: Indicates that the DHCP message sender is the DHCP server, so the server always
sends the message with Source Port=67.
Destination Port: Indicates that the DHCP message receiver is the DHCP client, so the client
always sends the message with Destination Port=68.
DHCP Message Payload
Client MAC Address (chaddr): The MAC address of the client (m1).
DHCP Message Type (option 53): Indicates that the DHCP message type is DHCP Ack
(Value=5).
Subnet Mask (option 1): The subnet mask to be used by the client (255.255.255.0 (/24)).
Router IP (option 3): The IP address (1.1.1.1) of the default gateway (the first router or L3
switch seen by the client to get to the Internet).
Domain Name Server IP (option 6): The IP address of DNS server to be used by the client.
Normally, it provides two IP addresses, primary DNS IP address (10.1.1.1) and secondary DNS IP
address (10.1.1.2), together.
IP Address Lease Time (option 51): The lease time during which the client is allowed to use the
IP address allocated by DHCP server (3,600 sec. (=1 hour)). At the mid-point of the lease time (30
minutes), the client begins its IP address renewal procedure.
DHCP Server Identifier (option 54): The IP address of the DHCP server that sent the DHCP
Offer message (1.1.1.254). In case that multiple DHCP servers on the same subnet send DHCP Offer
messages to the client, the client distinguishes servers based on the values in this field.
Destination MAC Address: The MAC address of the DHCP server (m2)- Unicast type message
over the Ethernet
Source MAC Address: The source MAC address on the Ethernet is always the address of a packet
sender. Thus, this field is the MAC address of the client (m1)
EtherType: Indicates that the header is followed by an IP packet (IP=0x0800, ARP=0x0806, etc).
IP Header
Protocol ID: Indicates that the header is followed by a UDP packet (UDP=17, TCP=6, etc).
Source Port: Indicates that the DHCP message sender is the DHCP client (68=BOOTP Client), so
the client always sends the message with Source Port=68.
Destination Port: Indicates that the DHCP message receiver is the DHCP server (67=BOOTP
Server), so the server always sends the message with Source Port=67.
DHCP Message Payload
Client IP Address (ciaddr): The IP address (1.1.1.10) of the client in use (intended to extend a
lease time)
Client MAC Address (chaddr): The MAC address of the client (m1)
DHCP Message Type (option 53): Indicates that the DHCP message type is DHCP Request
(Value=3).
Client Identifier (option 51): Serves as an indicator to distinguish clients, and generally contains
the MAC address of the client (m1). The DHCP server distinguishes one client from another based on
the values in this field.
Parameter Request List (option 55): Contains the network information list (DHCP option List)
that the client needs to obtain from DHCP Server. For example, it requests subnet mask, default GW
IP address, DNS IP address and so on.
Destination MAC Address: The MAC address of the DHCP client (m1) - Unicast type message
over the Ethernet.
Source MAC Address: The source MAC address on the Ethernet is always the address of a packet
sender. Thus, this field is the MAC address of the DHCP server (m2)
IP Header
Destination IP Address: The IP address of DHCP client (1.1.1.10) - Unicast type message over
the Ethernet.
UDP Header
Source Port: Indicates that the DHCP message sender is the DHCP server, so the server always
sends the message with Source Port=67.
Destination Port: Indicates that the DHCP message receiver is the DHCP client, so the client
always sends the message with Destination Port=68.
DHCP Message Payload
Client IP Address (ciaddr): The IP address (1.1.1.10) of the client in use (intended to extend a
lease time)
Your IP Address (yiaddr): The IP address (of which lease extension is permitted by the DHCP
server) to be used by the client (1.1.1.10).
Client MAC Address (chaddr): The MAC address of the client (m1).
DHCP Message Type (option 53): Indicates that the DHCP message type is DHCP Ack
(Value=5).
Subnet Mask (option 1): The subnet mask to be used by the client (255.255.255.0 (/24)).
Router IP (option 3): The IP address (1.1.1.1) of the default gateway (the first router or L3
switch seen by the client to get to the Internet).
Domain Name Server IP (option 6): The IP address of DNS server to be used by the client.
Normally, it provides two IP addresses, primary DNS IP address (10.1.1.1) and secondary DNS IP
address (10.1.1.2), together.
IP Address Lease Time (option 51): The lease time during which the client is allowed to use the
IP address allocated by the DHCP server (3,600 sec. (1 hour)). At the mid-point of the lease time
(30 minutes), the client begins its IP address renewal procedure.
DHCP Server Identifier (option 54): The IP address of the DHCP server that sent the DHCP
Offer message (1.1.1.254). The client stores information about from which DHCP server the client
leased its IP address, and then uses the IP address for IP renewal or IP release procedures.
Destination MAC Address: The MAC address of the DHCP server (m2) - Unicast type message
over the Ethernet
Source MAC Address: The source MAC address on the Ethernet is always the address of a packet
sender. Thus, this field is the MAC address of the client (m1).
EtherType: Indicates that the header is followed by an IP packet (IP=0x0800, ARP=0x0806, etc).
IP Header
Protocol ID: Indicates that the header is followed by a UDP packet (UDP=17, TCP=6, etc).
Destination IP Address: The DHCP server IP address (1.1.1.254 ) - Unicast type message over
the Ethernet
UDP Header
Source Port: Indicates that the DHCP message sender is the DHCP client (68=BOOTP Client), so
the client always sends the message with Source Port=68.
Destination Port: Indicates that the DHCP message receiver is the DHCP server (67=BOOTP
Server), so the server always sends the message with Source Port=67.
DHCP Message Payload
Client IP Address (ciaddr): The IP address (1.1.1.10) of the client in use (Intended to return to
DHCP server)
Client MAC Address (chaddr): The MAC address of the client (m1)
DHCP Message Type (option 53): Indicates that the DHCP message type is DHCP Release
(Value=7).
DHCP Server Identifier (option 54): The IP address of the DHCP server that sent the DHCP
Offer message (1.1.1.254).