08 · DHCP: IPs Automáticas y Dinámicas¶
Configurar IPs manualmente es tedioso y propenso a errores humanos. En este laboratorio aprenderás a automatizar el proceso con un servidor DHCP (Dynamic Host Configuration Protocol).
🏗️ Topología del Laboratorio¶
Copia y pega este YAML en Topología → Importar:
name: "lab-06-dhcp"
nodes:
- name: Server-DHCP
type: HOST
x: 300
y: 100
- name: Cliente-1
type: HOST
x: 100
y: 300
- name: Cliente-2
type: HOST
x: 500
y: 300
- name: SWITCH-1
type: SWITCH
x: 300
y: 200
links:
- source: Server-DHCP
target: SWITCH-1
- source: Cliente-1
target: SWITCH-1
- source: Cliente-2
target: SWITCH-1
🛠️ Paso 1: Preparando el Servidor¶
El servidor DHCP necesita tener una IP estática propia para poder responder.
En Server-DHCP (Terminal):
🚀 Paso 2: Lanzando el Servidor DHCP¶
Usaremos dnsmasq, un servidor ligero que ya viene pre-instalado en los nodos HOST de OpenVeth.
En Server-DHCP (Terminal):
# Rango de IPs + gateway automático (opción DHCP 3)
dnsmasq --no-daemon \
--dhcp-range=192.168.1.50,192.168.1.150,12h \
--dhcp-option=3,192.168.1.1 \
--interface=eth1
La opción
3es el código DHCP para "default gateway". DHCP no solo asigna una IP — también le dice al cliente quién es su puerta de enlace, exactamente lo que configurabas a mano en el lab anterior.
⚡ Paso 3: Los Clientes solicitan IP¶
En Cliente-1 y Cliente-2 (Terminal):
# Asegúrate de que la interfaz esté arriba
ip link set eth1 up
# Solicitar una IP al servidor
udhcpc -i eth1
Verificación:
Ejecuta ip addr show eth1 en los clientes. Deberías ver una IP dentro del rango .50 a .150.
❌ Paso 3b: El olvido del gateway¶
Pará el servidor anterior (Ctrl+C) y levantalo sin la opción 3:
En los clientes, liberá la IP y pedila de nuevo:
El cliente obtiene IP de nuevo. Pero fijate en su tabla de rutas:
Antes veías default via 192.168.1.1 dev eth1. Ahora no aparece. DHCP te dio una dirección, pero no te dijo quién es el gateway.
En este lab todos están en la misma red, así que el ping al servidor (192.168.1.1) sigue funcionando. Pero en una red real con router, no podrías salir de tu subred. El síntoma sería: "tengo IP, pero solo veo a mis vecinos".
Regla: DHCP no solo entrega una IP — también entrega parámetros esenciales como el gateway, el DNS y la máscara. Si falta alguno, la red está incompleta.
Restaurá el servidor con la opción 3 antes de seguir:
dnsmasq --no-daemon \
--dhcp-range=192.168.1.50,192.168.1.150,12h \
--dhcp-option=3,192.168.1.1 \
--interface=eth1
🔬 Paso 4: Viendo el diálogo DHCP¶
Para ver la secuencia completa, primero libera la IP del cliente (si ya tiene una del paso anterior):
Luego hacé clic derecho en el cable que une Cliente-1 con SWITCH-1, seleccioná Sniff Cliente-1, y volvé a pedir IP:
Verás la secuencia DORA:
| Paso | Quién envía | Mensaje | Destino |
|---|---|---|---|
| 1 | Cliente | Discover | Broadcast |
| 2 | Servidor | Offer | Broadcast |
| 3 | Cliente | Request | Broadcast |
| 4 | Servidor | Ack | Broadcast |
Todos los mensajes van en broadcast porque al inicio el cliente todavía no tiene IP.
💡 Concepto Clave: El servidor DHCP asigna IPs de forma dinámica, liberando al administrador de red de configurar cada dispositivo manualmente.