DHCP
Dynamic Host Configuration Protocol
CIS 856: TCP/IP and Upper Layer Protocols
Presented by Kyle Getz
October 20, 2005
Motivation for DHCP
Configuration parameters for network hosts
IP address
Router
Subnet Mask
Many more…
Before DHCP
Manual assignment
RARP
BOOTP
DHCP Features
Protocol for providing configuration
parameters to hosts over network
Dynamic allocation of IP addresses
Minimal human intervention
Sample Network
DHCP Server
DHCP Clients
UDP Port 68 UDP Port 68 UDP Port 68 UDP Port 67
Router
Internet
Preliminaries
(DHCP) Message = DHCP-PDU (A-PDU)
Client = DHCP Client
Server = DHCP Server
Well-known port numbers
DHCP Server: UDP port 67
DHCP Client: UDP port 68
No ephemeral ports
Broadcast and unicast used for PDU’s in both
directions
“Broadcast”: link and IP addresses are broadcast
“Unicast”: link and IP addresses are unicast
Initial Message Flow
Server A Client Server B
Client attempts to discover
DHCPDISCOVER DHCPDISCOVER available DHCP servers
Servers reply with offers
DHCPOFFER DHCPOFFER
Client collects offers and
decides which offer to accept
Client broadcasts request for
DHCPREQUEST DHCPREQUEST one of the received offers
Server acknowledges client’s
Configuration complete DHCPACK use of IP address
Graceful shutdown Client explicitly releases
DHCPRELEASE use of IP address
DHCP Message Types
DHCP Message Use
DHCPDISCOVER Client broadcast to locate available servers
DHCPOFFER Server to client response offering configuration parameters
DHCPREQUEST Client broadcast requesting offered parameters
DHCPDECLINE Client to server notification that IP address is in use
DHCPACK Server to client response confirming a request
DHCPNAK Server to client response denying a request
DHCPRELEASE Client to server request to relinquish IP address
DHCPINFORM Client to server request for configuration parameters
Lease Renewal Times (Client)
T1 < T2 < Lease time
T1 default value = 1/2 of lease time
T2 default value = 7/8 of lease time
Communicated via DHCPOFFER, DHCPACK
Client actions when times elapse
T1: client must renew address with the DHCP server
T2: client must renew address with any DHCP server
Lease time: client must stop using IP address
Renewal Message Flow
Server A Client Server B
T1 elapses
Client unicasts request to
DHCPREQUEST continue using IP address
Server acknowledges
Configuration complete request and updates lease
DHCPACK
T1 elapses
Client unicasts request to
DHCPREQUEST continue using IP address
T2 elapses
Client broadcasts request to
DHCPREQUEST DHCPREQUEST continue using IP address
Server acknowledges request
Configuration complete and updates lease
DHCPACK
Client FSM (Simplified)
DHCPNAK/
INIT Stop using IP address RENEWING
DHCPNAK,
Lease expires/
T2/Broadcast DHCPREQUEST
Stop using IP
address
REBINDING
DHCPACK/Set T1,T2
DHCPNAK/
Discard offer
DHCPACK (in use)/
DHCPDECLINE
DHCPACK/Set T1,T2 T1/
Unicast
DHCPREQUEST
-/DHCPDISCOVER REQUESTING
Select offer/DHCPREQUEST DHCPACK/Set T1,T2
SELECTING DHCPOFFER/ BOUND
Process offer
Retransmissions
Client responsible for all retransmissions
Retransmission strategy
Exponential backoff
Randomized
Recommendations
Base delay doubled for each retransmission
Random number picked from [-1,+1]
Maximum base delay: 64 seconds
Server Storage
Permanent storage
Pool of available IP addresses
Local configuration parameters
Mapping between clients and leases
Flexibility concerning storage update
When DHCPOFFER sent
When DHCPACK sent
Server Logic (Simplified)
Event Action Taken
DHCPDISCOVER If current lease for client exists, send DHCPOFFER
Else, if IP address available, send DHCPOFFER
Else, do nothing
DHCPREQUEST If IP address available, send DHCPACK
Else, send DHCPNAK
DHCPDECLINE Mark IP address unavailable, notify network administrator
DHCPRELEASE Mark IP address available, delete lease
DHCPINFORM Send DHCPACK with configuration parameters
Lease expiration Mark IP address available, delete lease
DHCP PDU Format
32 Bits
Operation Code Hardware Type Hardware Length Hop Count
Transaction ID
Seconds Elapsed B Must Be Zero (MBZ)
Client IP address
Your IP address
Server IP address
Relay agent IP address
Client hardware address
(16 bytes)
Server host name
(64 bytes)
Boot file name
(128 bytes)
Magic Cookie Options
(up to 312 bytes)
DHCP Options
Magic Cookie: 99 130 83 99
4 bytes
Option format:
Code Length Data
1 byte 1 byte Length bytes
Subnet Mask:
1 4 255 255 255 0
One-byte options:
0 Padding
255 End of options
Another Sample Network
DHCP Clients
Relay Agent within Router Internet
DHCP Server
Relay Agents
Remove restriction of having DHCP server on
every network
Listen for DHCP messages and transmit them
to appropriate machine
Client to server relay
Broadcast from client Unicast to server(s)
Server to client relay
Broadcast from server Broadcast to client
Unicast from server Unicast to client
Demonstration
Advanced Topics
Lease times
Dynamic DNS
Reliability
Security
Lease Times
Anywhere from 15 minutes – 1 year
Common lease times & rationales
15 minutes: Maximum number of addresses free
3 days: Microsoft default
4 months: Students can keep lease over summer
Tradeoff
Dynamic DNS
If IP address changes due to DHCP, DNS
entry is wrong
Client or server can update DNS
Option 81: Client FQDN
81 Length Flags rcode1 rcode2 Name…
1 byte 1 byte “Length” bytes
Reliability
Two synchronized DHCP servers on the same
network: Primary, Secondary
Permanent storage constantly communicated
Failure: Secondary server takes over
Primary Secondary
Server Server
DHCP Clients
Security
Potentially unauthorized clients
Malicious client could exhaust address pool
Malicious server (Rogue server)
Supply incorrect configuration parameters
Supply malicious configuration parameters