---
obj: concept
wiki: https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
rfc: https://datatracker.ietf.org/doc/html/rfc2131
---

# Dynamic Host Configuration Protocol
The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used to automate the assignment of IP addresses and other network configuration parameters to devices on a network. DHCP simplifies the process of configuring devices on a network by providing a centralized mechanism for dynamic IP address allocation.

## Key Components
### 1. DHCP Server
A DHCP server is a network device responsible for assigning IP addresses and other configuration parameters to DHCP clients. It maintains a pool of available IP addresses and leases them to clients on a temporary basis.

### 2. DHCP Client
A DHCP client is a device (computer, printer, etc.) that requests network configuration information from a DHCP server. The client typically sends a DHCP discover message to locate available DHCP servers on the network.


## DHCP Process
1. **DHCP Discover**: When a device is connected to a network, it broadcasts a DHCP discover message to identify available DHCP servers.
2. **DHCP Offer**: DHCP servers respond with a DHCP offer message, providing the client with an IP address and other configuration parameters.
3. **DHCP Request**: The client selects one of the offered IP addresses and sends a DHCP request message to the chosen server.
4. **DHCP Acknowledge**: The selected DHCP server responds with a DHCP acknowledge message, confirming the allocation of the requested IP address and providing additional configuration details.
5. **IP Lease Period**: The DHCP server assigns an IP address to the client for a specific lease period. The client must renew its lease before expiration to retain the IP address.

## DHCP Configuration Parameters
DHCP servers can provide various configuration parameters, including:
- **IP Address**: The primary network identifier assigned to the device.
- **Subnet Mask**: Defines the network's subnetwork structure.
- **Default Gateway**: Specifies the router that connects the local network to other networks.
- **Domain Name System ([DNS](DNS.md)) Servers**: Identifies the servers responsible for translating [domain](Domain.md) names into IP addresses.
- **Domain Name**: Provides the domain name associated with the assigned IP address.
- **Lease Duration**: The period for which the IP address is allocated to the client.

## DHCP Security Considerations
- **Rogue DHCP Servers**: Unauthorized DHCP servers can cause network disruptions. Implementing DHCP snooping can help mitigate this risk.
- **IP Address Exhaustion**: Regularly monitoring and managing the IP address pool prevents exhaustion and ensures efficient resource utilization.
- **Man-in-the-Middle Attacks**: Using DHCP secure protocols, such as DHCPv6 Secure Neighbour Discovery (SEND), helps protect against man-in-the-middle attacks.