---
title: "DHCP"
canonical: "https://docs.infoblox.com/space/BloxOneDDI/186810534/DHCP"
format: markdown
---
<span style="color: #000000">The DHCP (Dynamic Host Configuration Protocol) is a network application protocol that automates the assignment of IP addresses and network parameters to network devices configured to work with DHCP: that is, DHCP clients. When a DHCP client connects to a network, it requests that the DHCP server assign it an IP address and provide the configuration information. The DHCP server manages a pool of IP addresses and configuration information, such as the default gateway, domain name, and DNS server. Depending on the configuration requested, the DHCP server either assigns an IP address or denies the request. It also sends network configuration parameters to the client. </span>

> ℹ️ <span style="color: #000000">Universal DDI supports DHCP service for both IPv4 and IPv6 networks. </span>

> 📝 NIOS-X allows DHCP configuration updates to be applied sequentially on NIOS-X servers, even when you schedule software updates. Configuration updates are performed one NIOS-X server at a time, progressing to the next server only after the configuration on the current server has been updated successfully. For information, see *[Scheduling Configuration Updates for Servers](https://infoblox-docs.atlassian.net/wiki/spaces/BloxOneInfrastructure/pages/184583817)*.

# <span style="color: #000000">DHCPv4</span>

<span style="color: #000000">DHCP follows the DORA (Discover, Offer, Request, Acknowledge) process for DHCPv4 as follows:</span>

- <span style="color: #000000">**DHCP DISCOVER**</span><span style="color: #000000">: </span><span style="color: #2d2d2d">The DHCP client sends out a DHCP Discover message to find a DHCP server on the network that can allocate a unique IP address. This message contains an identifier, also known as a media control address (MAC), that uniquely identifies the client. It also includes other parameters, such as subnet mask, domain name and DNS. This is a broadcast message that reaches all the nodes in a network.</span>
- <span style="color: #000000">**DHCP OFFER**</span><span style="color: #000000">: </span><span style="color: #2d2d2d">The DHCP server receives the message sent by the DHCP client. After receiving this message, the DHCP server replies to the DHCP client with a DHCP Offer message. The intent of this message is to lease an IP address to the client. The message contains an IP address the client can use, along with its lease time and network configuration parameters.</span>
- <span style="color: #000000">**DHCP REQUEST**</span><span style="color: #000000">: </span><span style="color: #2d2d2d">The DHCP client sends a DHCP Request message after receiving the DHCP Offer message from the server. Since there are multiple DHCP servers sending offer messages to the client, the DHCP client selects the one that reaches it first. After this, the client sends out a broadcast message to confirm that it accepts the IP address assigned by the DHCP server. This eliminates the need for other DHCP servers in the network.</span>
- **DHCP ACKNOWLEDGE**: <span style="color: #2d2d2d">The DHCP server sends a DHCP Acknowledge message to the client after receiving the DHCP Request message. In the message, it sends the IP address and other network configurations essential for the client. Below are some scenarios:</span>
  - DHCP negative acknowledgement: The DHCP server sends a negative acknowledgement message if the request from a client is invalid or if the IP address pool is empty.
  - DHCP decline: The DHCP client sends this message if the offered configuration parameters are invalid or different from what the client requires.
  - DHCP release: A DHCP client sends this message to the DHCP server to release the IP address.
  - DHCP inform: If the client already has a manual IP address assigned, then it can request the DHCP server to allocate other network parameters.

# <span style="color: #000000">DHCPv6</span>

DHCPv6 uses UDP Port 546 for the client and UDP Port 547 for the server. DHCPv6 uses the following steps:

- **Solicit**: The client sends a multicast *Solicit* message to find a DHCPv6 server and ask for a lease. The DHCP Unique Identifier (DUID) is sent by the client to the server.
- **Advertise**: <span style="color: #000000">Any server that can fulfill the client's request responds to it with an </span>*Advertise*<span style="color: #000000"> message. </span>The DHCPv6 server checks the DUID with the DHCPv6 database for reservation or pool. The IPv6 address is announced by DHCP server to the client
- **Request**: <span style="color: #000000">The client chooses one of the servers and sends a </span>*Request*<span style="color: #000000"> message to it asking to confirm the offered address and other parameters.</span>
- **Reply**: The server responds with a *Reply* message to finalize the process.

<span style="color: #333300">BloxOne DDI supports two types of modes, specifically for IPv6: Stateful and Stateless. Both these modes are explained in the following diagram:</span>

- <span style="color: #333300">Stateful mode: The DHCP server assigns the IP address to the clients. </span>
- <span style="color: #333300">Stateless mode: </span><span style="color: #273239">Clients auto-assign IP address using the network information in the router advertisement message provided by IPV6 routers. An Information-request message is sent by the DHCP client to the DHCP server to obtain other information such as DNS server address and domain information if the 0 flag is set to 1 in the router advertisement message</span><span style="color: #333300">.</span>

![nt_Untitled Diagram-1682118951337.drawio.png](media://436f43af-2139-4791-b809-c4f4850fcb1b)

> Macro (excerpt)
> 
> > Macro (drawio)

<span style="color: #000000">You can perform the following major DHCP-configuration tasks through the Infoblox Portal:</span>

- <span style="color: #000000">Decide whether you want to configure </span><u><span style="color: #0000ff">*[Global DHCP Properties](https://infoblox-docs.atlassian.net/wiki/spaces/BloxOneDDI/pages/186400924)*</span></u>
- <span style="color: #000000">Decide whether you want to configure </span><u><span style="color: #0000ff">*[DHCP Config Profiles](https://infoblox-docs.atlassian.net/wiki/spaces/BloxOneDDI/pages/186810950)*</span></u>
- <span style="color: #000000">Configure </span><u><span style="color: #0000ff">*[Option Spaces](https://infoblox-docs.atlassian.net/wiki/spaces/BloxOneDDI/pages/186908769)*</span></u>
- <span style="color: #000000">Configure </span><u><span style="color: #0000ff">*[Option Groups](https://infoblox-docs.atlassian.net/wiki/spaces/BloxOneDDI/pages/186369411)*</span></u>
- <span style="color: #000000">Configure </span><u><span style="color: #0000ff">*[IPv4 Filters](https://infoblox-docs.atlassian.net/wiki/spaces/BloxOneDDI/pages/186843822)*</span></u>
- <span style="color: #000000">Configure </span><u><span style="color: #0000ff">*[HA Groups](https://infoblox-docs.atlassian.net/wiki/spaces/BloxOneDDI/pages/186466781)*</span></u>
- <span style="color: #000000">Configure </span><u><span style="color: #0000ff">*[NIOS-X Server](https://docs.infoblox.com/space/BloxOneDDI/186617486/Configuring+NIOS-X+Servers)*</span></u>