Last Updated: May 1, 2025
The DORA Process
1. DISCOVERClient broadcasts 'Is there a DHCP server?' (0.0.0.0:68 → 255.255.255.255:67)
2. OFFERServer reserves an IP and sends offer (unicast or broadcast)
3. REQUESTClient broadcasts 'I want this IP' (accepts one offer, rejects others)
4. ACKNOWLEDGE (ACK)Server confirms lease with IP, mask, gateway, DNS, lease time
NAKServer rejects request (wrong network, IP conflict) — client restarts DORA
RENEWAL (T1)Client unicasts RENEW at 50% of lease time (directly to server)
REBIND (T2)At 87.5% of lease, client broadcasts for any server if renewal failed
Common DHCP Options
| Item | Description |
|---|---|
Option 1 | Subnet Mask (e.g., 255.255.255.0) |
Option 3 | Default Gateway (router IP) |
Option 6 | DNS Server(s) — primary and secondary |
Option 15 | Domain Name (e.g., company.local) |
Option 42 | NTP Server for time synchronization |
Option 51 | IP Address Lease Time (seconds) |
Option 66 | TFTP Server Name (for VoIP phone provisioning) |
Option 150 | TFTP Server IP Address (Cisco VoIP alternative) |
DHCP Relay
| Item | Description |
|---|---|
Purpose | Forward DHCP broadcasts across subnets (routers don't forward broadcasts) |
ip helper-address | Cisco command: forward DHCP to server IP |
Relay agent | Inserts GIADDR (Gateway IP Address) so server knows originating subnet |
Agent Remote ID | Identifies the relay agent itself (Option 82) |
Without relay | Need a DHCP server on every subnet (impractical at scale) |
Static vs Dynamic
| Item | Description |
|---|---|
Static | Manually configured — servers, printers, network gear (consistent access) |
Dynamic (DHCP) | Auto-assigned from pool — workstations, IoT, guest devices |
DHCP reservation | MAC-based permanent lease — DHCP-managed 'static' IP |
Fallback | APIPA (169.254.x.x) when DHCP is unreachable — link-local only |
Lease file | /var/lib/dhcp/dhcpd.leases — ISC DHCP server lease database |
Pro Tip: DHCP DORA mnemonic: Discover → Offer → Request → Acknowledge. The client broadcasts Discover; the server offers; client requests; server acknowledges with a lease.