> For the complete documentation index, see [llms.txt](https://juan-martin-franco.gitbook.io/network-+/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://juan-martin-franco.gitbook.io/network-+/8.-servicios-de-red/8.2-dhcp.md).

# 8.2 - DHCP

## DHCP (Dynamic Host Configuration Protocol)

El <mark style="color:blue;">**protocolo de configuración dinámica de host**</mark>, conocido como <mark style="color:blue;">**DHCP**</mark>, es un **protocolo de red de tipo cliente/servidor, mediante el cual un servidor DHCP asigna dinámicamente una dirección IP y otros parámetros de configuración de red a cada dispositivo en una red** para que puedan comunicarse con otras redes IP.

Este servidor **posee una lista de direcciones IP dinámicas y las va asignando a los clientes conforme estas van quedando libres**, sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha asignado después. Así los clientes de una red IP pueden conseguir sus parámetros de configuración automáticamente.

### Métodos de asignación de direcciones IP

Cada dirección IP debe configurarse manualmente en cada dispositivo y, si el dispositivo se mueve a otra subred, se debe configurar otra dirección IP diferente. El DHCP le permite al administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y, automáticamente, asignar y enviar una nueva IP si fuera el caso en que el dispositivo es conectado en un lugar diferente de la red.

El protocolo DHCP incluye tres métodos de asignación de direcciones IP:

* <mark style="color:blue;">**Asignación manual o estática**</mark>: Asigna una dirección IP a una máquina determinada. Se suele utilizar cuando se quiere controlar la asignación de dirección IP a cada cliente, y evitar, también, que se conecten clientes no identificados.<br>
* <mark style="color:blue;">**Asignación automática**</mark>: Asigna una dirección IP a una máquina cliente la primera vez que hace la solicitud al servidor DHCP y hasta que el cliente la libera. Se suele utilizar cuando el número de clientes no varía demasiado.<br>
* <mark style="color:blue;">**Asignación dinámica**</mark>: Este es el único método que permite la reutilización dinámica de las direcciones IP. El administrador de la red determina un rango de direcciones IP y cada dispositivo conectado a la red está configurado para solicitar su dirección IP al servidor cuando la tarjeta de interfaz de red se inicializa. El procedimiento usa un concepto muy simple en un intervalo de tiempo controlable. Esto facilita la instalación de nuevas máquinas clientes.

### Parámetros configurables por DHCP

Un servidor **DHCP** puede proveer de una configuración opcional al dispositivo cliente.&#x20;

Algunas de las **opciones configurables** son:

* Dirección del servidor DNS,
* Nombre DNS,
* Puerta de enlace (Default Gateway) de la dirección IP,
* Dirección de broadcast (Broadcast Address),
* Máscara de subred (Subnet Mask),
* Tiempo máximo de espera del ARP (Address Resolution Protocol),
* Tamaño del MTU (Maximum Transfer Unit),
* Servidores NTP (Network Time Protocol),

entre otros parámetros.

### Funcionamiento de DHCP

El proceso de DHCP está dado por 4 fases, las cuales pueden resumirse como DORA por las iniciales de cada fase:

* <mark style="color:blue;">**Discover (Descubrimiento)**</mark>
* <mark style="color:blue;">**Offer (Oferta)**</mark>
* <mark style="color:blue;">**Request (Solicitud)**</mark>
* <mark style="color:blue;">**Acknowledge (Acuse de recibo)**</mark>

<mark style="background-color:green;">**Proceso DORA en pasos**</mark>

<figure><img src="https://1668154188-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKyoEXmY0jfChHS8PdGMX%2Fuploads%2FJBuFHVMlJ2cCOwT4jOGD%2Fimage.png?alt=media&amp;token=5eef18a5-18ef-40cb-ba96-9b0b917b76bd" alt=""><figcaption></figcaption></figure>

1. **Discover -> El cliente DHCP descubre el servidor DHCP**\
   \
   Para que un dispositivo se comunique dentro de una red, necesita una dirección IP. Un dispositivo de cliente DHCP adquiere la dirección IP y los parámetros de red mediante la difusión de un **paquete UDP** llamado <mark style="color:purple;">**DHCPDISCOVER**</mark> dentro de la red.\
   \
   El mensaje DHCP DISCOVER contiene los siguientes detalles:<br>

   <figure><img src="https://1668154188-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKyoEXmY0jfChHS8PdGMX%2Fuploads%2Fk9Y6jZzojMLuSS5aGWtg%2Fimage.png?alt=media&amp;token=123d5ad6-5366-41c8-8673-8b10efc75ac8" alt=""><figcaption></figcaption></figure>

   En este mensaje, la IP de origen del paquete de difusión es 0.0.0.0, ya que al dispositivo cliente no tiene asignada (todavía) una dirección IP. Con la IP de destino 255.255.255.255, el paquete de difusión se envía a todos los dispositivos de la red, a través de un proceso llamado **difusión limitada**. Se debe establecer la IP de destino con un ID de subred particular para permitir una **difusión dirigida**.<br>
2. **Offer -> El servidor DHCP ofrece la IP y los parámetros de configuración de la red al cliente**\
   \
   Cuando un servidor DHCP válido recibe el mensaje de difusión DHCPDISCOVER, reserva una IP en su pool de IP, y ofrece esa IP en arrendamiento al cliente que lo solicite. Transmite su oferta de alquiler de IP, la máscara de subred y los gateways predeterminados al cliente que lo solicita a través de un mensaje <mark style="color:purple;">**DHCPOFFER**</mark>.\
   \
   El mensaje DHCP OFFER contiene los siguientes detalles:<br>

   <figure><img src="https://1668154188-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKyoEXmY0jfChHS8PdGMX%2Fuploads%2F3cr25DhO0mK95ta9Ss5E%2Fimage.png?alt=media&amp;token=f29402ca-fb7a-47dd-a841-80f19a0003a9" alt=""><figcaption></figcaption></figure>

   En este contexto, 192.168.31.9 es el servidor DHCP que ofrece una dirección IP de su pool. Tradicionalmente, este mensaje de oferta se envía al cliente especificando el hardware o la dirección MAC del cliente.<br>
3. **Request -> El cliente acepta la oferta del DHCP requerida y solicita el arrendamiento de la IP**\
   \
   Al recibir un mensaje DHCPOFFER, el cliente solicita la asignación de la dirección IP ofrecida a través del mensaje DHCPOFFER enviando un mensaje DHCPREQUEST al servidor. Este mensaje indica al servidor DHCP que ya puede asignar al cliente la dirección IP ofrecida bajo arrendamiento.<br>

   Al recibir más de un mensaje DHCPOFFER de los servidores de la red, el cliente envía un mensaje <mark style="color:purple;">**DHCPREQ**</mark> (solicitud de DHCP) sólo al servidor DHCP cuyo mensaje fue recibido primero por el cliente. Las demás ofertas se descartan o se ignoran.\
   \
   El mensaje DHCP REQUEST contiene los siguientes detalles:<br>

   <figure><img src="https://1668154188-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKyoEXmY0jfChHS8PdGMX%2Fuploads%2FPr3c0tGC5ynoSMXd3hc5%2Fimage.png?alt=media&amp;token=89900538-fd85-4083-8ff5-2381e38b00e4" alt=""><figcaption></figcaption></figure>
4. **Acknowledge -> El servidor DHCP acepta la solicitud de arrendamiento de IP del cliente**\
   \
   Al recibir el mensaje DHCPREQUEST, el servidor DHCP asigna la dirección IP al cliente y la registra en su almacén de datos. El servidor confirma la dirección IP asignada, la máscara de subred y los detalles del gateway predeterminado enviando un mensaje <mark style="color:purple;">**DHCPACK**</mark> (aceptación de DHCP).<br>

   El cliente ahora puede empezar a utilizar la IP asignada y los parámetros de red.<br>

   <figure><img src="https://1668154188-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKyoEXmY0jfChHS8PdGMX%2Fuploads%2FhymPi6Ezrfyw5ipqvnzk%2Fimage.png?alt=media&amp;token=2518d505-1414-4eed-8abd-e1d2481fd896" alt=""><figcaption></figcaption></figure>

   El cliente DHCP se configura con los parámetros de red recibidos.
