DHCPv4 - Dynamic Host Configuration Protocol (version 4)

Overview

Dynamic Host Configuration Protocol version 4 (DHCPv4) allows for the automatic configuration of client systems on an Internet Protocol version 4 (IPv4) network. DHCPv4 eliminates the need to individually configure devices, allowing them to set network properties by connecting to the DHCPv4 server instead.

Function

Prerequisites

  • DHCPv4 server system
  • DHCPv4 client system
  • Navigable network connection between DHCPv4 server and DHCPv4 client

When a new system is brought online (generally at boot) and needs to configure itself for communicating on the network it makes a broadcast looking for a DHCPv4 server. When the DHCPv4 server observes this broadcast it responds to the request with an offer that contains the information necessary to join the network. At its most basic level, this includes an IP address, netmask, the DHCP server's IP address, the default route/gateway, DNS server address(es), and the lease time (how long the offer will be good for). The DHCPv4 client then responds requesting the configuration offered. Finally, the DHCPv4 server responds acknowledging and granting the request. In shorter form, this transaction is as follows:

  1. Client requests information (the DHCPDISCOVER)
  2. One or more servers respond (the DHCPOFFER)
  3. Client selects one response and requests that configuration from the offering server (the DHCPREQUEST)
  4. The server which made the offer responds acknowledging the configuration (the DHCPACKNOWLEDGEMENT)

Full Breakout

Ports

  • UDP Port 67 is used for transmissions to the DHCPv4 server.
  • UDP Port 68 is used for replies from the DHCPv4 server to the DHCPv4 client.

Example Container

DHCPDISCOVER

Bit Range Bit Use Nominal Value
0 - 15 Source Port Number 01000011
16 - 31 Destination Port Number 01000100
32 - 47 Packet Length 0000000101001000
48 - 63 Checksum varies
64 - 71 Operation Code (OP) 00000001
72 - 79 Hardware Address Type (HTYPE) 00000001
80 - 87 Hardware Address Length (HLEN) 00000110
88 - 95 Hops (HOPS) 00000000
96 - 127 Transaction ID (XID) varies
128 - 143 Seconds Since Client Started Request (SECS) 0000000000000000
144 - 159 Flags (FLAGS) 0000000000000000
160 - 181 Client IP Address (CIADDR) 00000000000000000000000000000000
182 - 213 Your IP Address (YIADDR) 00000000000000000000000000000000
214 - 245 Server IP Address (SIADDR) 00000000000000000000000000000000
246 - 277 Relay IP Address (GIADDR) 00000000000000000000000000000000

… still working …

DHCPOFFER

Bit Range Bit Use
a - b Use

DHCPREQUEST

Bit Range Bit Use
a - b Use

DHCPACKNOWLEDGEMENT

Bit Range Bit Use
a - b Use

RFCs

See Also

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License