DHCP
DHCP (Dynamic Host Configuration Protocol) automatically assigns IP addresses and network parameters to devices when they join a network. It eliminates manual address configuration, manages address pools, and provides lease-based allocation so addresses return to the pool when no longer needed.
itNetworking | OpenSkills.info
Intro
DHCP
DHCP gives a device the network settings it needs to communicate. The name stands for Dynamic Host Configuration Protocol.
Without DHCP, you would enter an address and related settings on every device. That approach can work for a few stable systems. It becomes slow and error-prone when laptops, phones, virtual machines, and other clients appear and disappear.
DHCP centralizes that work. A client asks for configuration. A server selects settings for that client. The result is a binding between the client and a collection of parameters.
The core problem
An IP address alone is rarely enough. An IPv4 client commonly also needs a subnet mask, a default router, and one or more DNS server addresses. DHCP carries these values as options.
The server can allocate an address for a limited period called a lease. A lease lets the server reuse an address after the client stops using it. The client can request an extension before the lease expires.
DHCP also supports fixed allocation. An administrator can arrange for a known client to receive stable parameters. DHCP is therefore more than random address assignment. It is a protocol for controlled delivery of host configuration.
The four roles
The client requests configuration. It usually begins before it has a usable address.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.rfc-editor.org/info/rfc2131
Supports
- DHCPv4 purpose, client-server model, reusable address allocation, and host configuration
- Client, server, relay agent, binding, lease, and fixed-allocation concepts
- DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK, DHCPNAK, DHCPDECLINE, and DHCPRELEASE behavior
- DHCPv4 use of UDP ports 67 and 68 and initial broadcast behavior
- Renewal, rebinding, expiry, retransmission, and release behavior
- Relay behavior and support for servers outside the client subnet
- Parameter request and server response behavior
- Risks from unauthorized servers and false address, router, or name-server information
- https://www.rfc-editor.org/info/rfc2132
Supports
- DHCPv4 option code, length, and value format
- Foundational option meanings for subnet mask, router, DNS server, requested address, lease time, message type, server identifier, renewal time, and rebinding time
- Binding as configuration associated with a client
- https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml
Supports
- Current registered DHCP and BOOTP option codes, names, meanings, lengths, and defining references
- Current DHCP message type and related parameter registries
- https://www.rfc-editor.org/info/rfc5227
Supports
- IPv4 address probing, announcement, ongoing conflict detection, and defense
- DHCP client final address checks and DHCPDECLINE after detecting an in-use address
- Limits of conflict detection to hosts on the same link
- https://www.rfc-editor.org/info/rfc4861
Supports
- IPv6 Neighbor Discovery and Router Advertisement behavior
- Router discovery and construction of a host's default-router list
- Router Advertisements as part of the IPv6 control plane alongside information learned through DHCPv6
- https://www.rfc-editor.org/info/rfc9915
Supports
- Current DHCPv6 Internet Standard status and replacement of RFC 8415
- DHCPv6 stateful address assignment, stateless configuration, and prefix delegation
- Operation in place of or alongside SLAAC
- Solicit, Advertise, Request, Reply, Renew, Rebind, Release, and Information-request exchanges
- DHCPv6 UDP ports 546 and 547, multicast discovery, identifiers, relays, and lifetimes
- DHCPv6 security risks including resource exhaustion and incorrect server configuration
