El Dynamic Host Configuration Protocol (DHCP) automatiza la entrega de direcciones IP y parámetros esenciales de red. Gracias a él, los administradores pueden desplegar cientos de dispositivos sin configurar manualmente cada uno.
En este tema exploraremos su función, el famoso intercambio DORA, los parámetros incluidos en cada concesión y las diferencias entre DHCPv4 y DHCPv6, junto con herramientas prácticas para diagnosticarlo.
DHCP reemplazó a BOOTP ofreciendo asignaciones automáticas, temporales y con mayor variedad de opciones. Su misión es garantizar que cada host reciba una dirección única, compatible con la topología vigente, y los datos necesarios para comunicarse fuera de su subred.
Al centralizar la configuración se reducen errores humanos, se detectan conflictos rápidamente y se puede registrar qué dispositivo utilizó cada IP.
El flujo típico de DHCPv4 se resume en cuatro mensajes:
Si el cliente ya tenía una concesión válida, inicia con Request y el servidor responde con ACK o NAK según corresponda.
Además de la dirección IP y la máscara, DHCP provee opciones como:
La flexibilidad de las opciones evita configuraciones manuales repetitivas en impresoras, teléfonos IP o máquinas virtuales.
Cada concesión incluye un tiempo de arrendamiento. De forma predeterminada:
Los usuarios pueden forzar la liberación con ipconfig /release y solicitar una nueva IP con ipconfig /renew en Windows.
DHCPv6 se diseñó para complementar a SLAAC y ofrece dos modos principales:
| Característica | DHCPv4 | DHCPv6 |
|---|---|---|
| Identificador del cliente | MAC y transacción. | DUID (unique identifier) y IAID por interfaz. |
| Mensajes especiales | Discover/Offer/Request/ACK. | Solicit, Advertise, Request, Reply, Renew, Rebind, Confirm, Decline. |
| Integración | Sustituye redes manuales. | Puede coexistir con SLAAC para DNS (modo stateless) o entregar direcciones completas (stateful). |
| Relay | Agentes de relay en switches/routers. | Relay específicos para IPv6 con opción 18 (Interface-ID). |
Mientras IPv4 depende casi siempre de DHCP, en IPv6 es común combinarlo con SLAAC para reducir la administración manual.
Para revisar el estado actual de las concesiones:
Get-NetIPConfiguration |
Select-Object InterfaceAlias, IPv4Address, IPv4DefaultGateway, DNSServer, DhcpServer
Si hay problemas para renovar:
ipconfig /release
ipconfig /renew
Y para inspeccionar registros históricos en un servidor DHCP de Windows:
Get-DhcpServerv4Lease -ComputerName SRV-DHCP |
Select-Object IPAddress, ClientId, HostName, LeaseExpiryTime
Estos comandos permiten comprobar quién tiene cada dirección y cuándo caduca su concesión.
En entornos mixtos, los logs suelen almacenarse en texto plano. El siguiente script busca mensajes DORA dentro de un registro exportado:
from pathlib import Path
def contar_eventos(ruta_log):
eventos = {"DISCOVER": 0, "OFFER": 0, "REQUEST": 0, "ACK": 0}
for linea in Path(ruta_log).read_text(encoding="utf-8").splitlines():
for evento in eventos:
if evento in linea.upper():
eventos[evento] += 1
return eventos
if __name__ == "__main__":
estadisticas = contar_eventos("dhcp.log")
for evento, cantidad in estadisticas.items():
print(f"{evento}: {cantidad}")
Con este resumen puedes detectar rápidamente si el servidor está respondiendo o si los clientes se quedan esperando algún mensaje específico.
DHCP es la columna vertebral de la configuración automática de redes IPv4 e IPv6. Dominar su proceso, opciones y herramientas de diagnóstico evita interrupciones masivas y facilita los cambios de direccionamiento.
En el próximo tema profundizaremos en el subneteo, técnica que se apoya en DHCP para distribuir direcciones optimizadas según las necesidades de cada segmento.