UT01 · Configuración dinámica: DHCP
DHCPv4 con Kea: DORA, pools, leases, reservas, opciones, clientes, DHCP Relay para atender varias subredes y diagnóstico basado en evidencias.
☰ Contenido de la unidad
Introducción
Pregunta de partida: ¿qué ocurre cuando conectamos un equipo nuevo a una red y, sin escribir manualmente IP, máscara ni otros parámetros, termina pudiendo comunicarse?
En esta unidad pasaremos de la idea de «IP automática» a una visión profesional de DHCP:
necesidad
↓
protocolo
↓
política de direccionamiento
↓
servidor Kea
↓
cliente
↓
captura
↓
concesión
↓
diagnóstico
El objetivo no es memorizar DORA. El objetivo es ser capaz de instalar, configurar, comprobar y diagnosticar un servicio DHCP real.
Importante para las prácticas: en los ejemplos de esta página se utilizan direcciones y nombres de laboratorio para aprender el procedimiento. En las tareas evaluables tendrás que aplicar estos conocimientos a tu propia variante. No debes copiar literalmente las direcciones de los ejemplos.
1. Resultado de aprendizaje y criterios de evaluación
RA1
Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.
En UT01 se trabaja el RA1 completo.
| CE | Criterio de evaluación |
|---|---|
| a) | Se ha reconocido el funcionamiento de los mecanismos automatizados de configuración de los parámetros de red. |
| b) | Se han identificado las ventajas que proporcionan. |
| c) | Se han ilustrado los procedimientos y pautas que intervienen en una solicitud de configuración de los parámetros de red. |
| d) | Se ha instalado un servicio de configuración dinámica de los parámetros de red. |
| e) | Se ha preparado el servicio para asignar la configuración básica a los sistemas de una red local. |
| f) | Se han realizado asignaciones dinámicas y estáticas. |
| g) | Se han integrado en el servicio opciones adicionales de configuración. |
| h) | Se ha verificado la correcta asignación de los parámetros. |
Qué evidencia realmente el RA1
No basta con:
systemctl status → active
Una evidencia completa combina:
configuración válida
↓
servicio activo
↓
logs sin errores de arranque
↓
cliente solicita
↓
servidor responde
↓
cliente aplica
↓
lease registrada
↓
captura coherente
Referencia curricular de Extremadura:
Decreto 272/2009, de 28 de diciembre · currículo de SMR
2. La misión profesional
Imagina una empresa con:
- 35 PC;
- portátiles que entran y salen;
- impresoras;
- teléfonos;
- máquinas virtuales;
- dispositivos nuevos cada semana.
Configurar cada equipo a mano implica:
IP manual
máscara manual
gateway manual
DNS manual
cambios repetidos
errores humanos
direcciones duplicadas
DHCP centraliza esa política.
Figura 1. DHCP automatiza la entrega de parámetros, pero no sustituye a routing, DNS ni otros servicios.
Ejercicio resuelto 1
Una oficina cambia su servidor DNS.
Con configuración manual habría que modificar cada cliente.
Con DHCP podemos actualizar la opción correspondiente en el servidor y hacer que los clientes reciban la nueva política al renovar.
Ventaja: administración centralizada.
3. Por qué usamos Kea
El protocolo DHCP es estándar; Kea es nuestra implementación de servidor.
En Debian 13 estable utilizaremos:
kea-dhcp4-server
Kea permite trabajar con:
- interfaces;
- subredes;
- pools;
- reservas;
- opciones;
- tiempos de concesión;
- almacenamiento de leases.
Durante el curso compararemos estos conceptos con otras implementaciones, pero el objetivo es aprender DHCP, no memorizar un producto concreto.
4. Qué hace DHCP y qué no hace
DHCP puede entregar:
- dirección IPv4;
- máscara/prefijo;
- tiempo de concesión;
- servidores DNS;
- dominio de búsqueda;
- gateway;
- otras opciones.
Pero DHCP no garantiza que esos recursos funcionen.
Ejemplo:
DHCP entrega gateway 192.168.50.1
Eso no demuestra que:
192.168.50.1 exista
192.168.50.1 enrute
192.168.50.1 tenga Internet
Modelo mental
DHCP → configura parámetros
routing → mueve paquetes
DNS → resuelve nombres
servicio → escucha en un puerto
aplicación → responde
No culpes a DHCP de todo lo que ocurra después de obtener una IP.
5. Asignación manual, dinámica y reserva
IP estática configurada en el cliente
El administrador escribe directamente:
IP
máscara
gateway
DNS
No es una asignación DHCP.
Asignación dinámica
El servidor elige una IP desde un pool durante un tiempo limitado.
Uso típico:
portátiles
aulas
móviles
equipos temporales
Reserva
El cliente sigue utilizando DHCP, pero el servidor relaciona una identidad conocida con una dirección concreta.
En nuestras prácticas utilizaremos principalmente la dirección MAC de la interfaz de red del cliente.
Uso típico:
impresora
AP
cámara
servidor auxiliar
equipo que necesita dirección estable
Ejercicio resuelto 2
Una impresora debe conservar siempre la misma dirección, pero queremos seguir administrando su configuración mediante DHCP.
Mejor opción: reserva DHCP.
PARTE I · LABORATORIO SEGURO
6. Reutilizamos SER-LAB
UT01 parte del laboratorio creado en UT00.
Figura 2. El servidor y los clientes comparten una Red interna aislada.
| Equipo | SO | Interfaz de servicio | Función |
|---|---|---|---|
ser-ser01 |
Debian 13 | IPv4 estática | servidor Kea |
ser-cli01 |
Debian 13 | sin IPv4 manual | cliente DHCP |
ser-win01 |
Windows 11 | obtener automáticamente | cliente DHCP |
La NIC NAT de ser-ser01 se mantiene para mantenimiento e instalación de paquetes.
La NIC de servicio se conecta a una Red interna de VirtualBox.
Nunca conectes el servidor DHCP de prácticas en modo Puente a la red física del centro.
Un DHCP mal conectado puede responder a clientes que no forman parte del laboratorio.
7. Antes de instalar Kea
En ser-ser01:
ip -br link
ip -br address
ip route
Debes identificar qué NIC está conectada a la red interna.
Ejemplo típico:
enp0s3 UP 10.0.2.15/24
enp0s8 UP 10.10.10.10/24
No memorices enp0s8.
Comprueba cuál es la interfaz real de tu VM.
Prueba de ruta
ip route get 10.10.10.20
La salida debe utilizar la NIC interna.
Ejercicio resuelto 3
Si un destino de la LAN interna intenta salir por la NIC NAT, revisa la topología y las rutas antes de instalar DHCP.
Kea no arregla una red virtual mal construida.
8. IPv4 estática y persistente en el servidor
Un servidor DHCP necesita una dirección estable en la red a la que presta servicio.
No basta con ejecutar temporalmente:
sudo ip address add ...
Ese cambio desaparece al reiniciar.
Antes de editar ningún fichero, averigua qué componente gestiona realmente la interfaz:
systemctl is-active NetworkManager
systemctl is-active systemd-networkd
systemctl is-active networking
También puedes consultar:
nmcli device status
networkctl status
No mezcles varios gestores sobre la misma interfaz.
Opción A · NetworkManager
Primero identifica el nombre de la conexión:
nmcli connection show
Ejemplo genérico:
sudo nmcli connection modify "CONEXION_INTERNA" \
ipv4.method manual \
ipv4.addresses 10.10.10.10/24 \
ipv4.gateway "" \
ipv4.dns ""
sudo nmcli connection up "CONEXION_INTERNA"
Comprueba:
ip -br address
ip route
Opción B · ifupdown
Si Debian utiliza /etc/network/interfaces, una configuración genérica puede ser:
auto INTERFAZ
iface INTERFAZ inet static
address 10.10.10.10/24
En la NIC interna de nuestro laboratorio no añadimos gateway si no existe un router en esa red.
Aplica los cambios desde la consola local:
sudo ifdown INTERFAZ
sudo ifup INTERFAZ
Comprueba después:
ip -br address
ip route
Opción C · systemd-networkd
Ejemplo genérico:
[Match]
Name=INTERFAZ
[Network]
Address=10.10.10.10/24
Guárdalo como un fichero .network dentro de:
/etc/systemd/network/
Después:
sudo systemctl restart systemd-networkd
networkctl status INTERFAZ
ip -br address
ip route
Comprobación obligatoria
Una configuración persistente debe superar esta prueba:
configuro
↓
compruebo
↓
reinicio
↓
vuelvo a comprobar
Si después del reinicio la dirección desaparece, no era persistente.
Los valores
10.10.10.10/24anteriores son ejemplos de aprendizaje. En una tarea evaluable utiliza la red y el direccionamiento que correspondan a tu escenario.
9. El cliente no debe tener IP fija en la LAN DHCP
Antes de probar DHCP, la interfaz interna del cliente debe obtener configuración automáticamente.
En Windows:
IPv4 → Obtener una dirección IP automáticamente
DNS → Obtener la dirección del servidor DNS automáticamente
En Debian, identifica primero el gestor real de la interfaz.
No mezcles sin motivo:
NetworkManager
ifupdown
systemd-networkd
PARTE II · CÓMO HABLA DHCP
10. Puertos y difusión
DHCPv4 utiliza UDP.
Servidor → UDP 67
Cliente → UDP 68
El cliente inicial todavía no conoce una dirección IPv4 válida ni qué servidor DHCP existe.
Por eso la negociación inicial utiliza difusión.
11. DORA
Figura 3. Discover, Offer, Request y ACK describen la negociación inicial más habitual.
DHCPDISCOVER
El cliente busca servidores.
DHCPOFFER
Un servidor propone una dirección y determinadas opciones.
DHCPREQUEST
El cliente solicita la oferta elegida.
DHCPACK
El servidor confirma la concesión.
Ejercicio resuelto 4
En una captura aparecen dos DHCPOFFER.
No es imposible.
Puede haber dos servidores respondiendo.
En nuestro laboratorio eso debería hacernos revisar:
- otro Kea;
- DHCP de VirtualBox;
- una Red NAT;
- una red Solo-anfitrión;
- una VM conectada al segmento equivocado.
12. DORA no es todo DHCP
También existen:
DHCPNAK;DHCPRELEASE;DHCPDECLINE;DHCPINFORM;- renovaciones;
- retransmisiones.
DORA es el punto de partida, no todo el protocolo.
13. Campos que merece la pena reconocer
| Campo | Para qué nos sirve |
|---|---|
xid |
relacionar mensajes de la misma negociación |
chaddr |
dirección hardware del cliente |
yiaddr |
dirección ofrecida/asignada |
ciaddr |
IP actual en determinadas renovaciones |
giaddr |
información de relay |
| Option 50 | IP solicitada |
| Option 53 | tipo de mensaje DHCP |
| Option 54 | identificador del servidor |
| Option 51 | tiempo de concesión |
| Option 58 | T1 |
| Option 59 | T2 |
Ejercicio resuelto 5
Si dos servidores envían ofertas al mismo cliente, Option 54 · Server Identifier ayuda a identificar quién respondió.
PARTE III · POLÍTICA DE DIRECCIONAMIENTO
14. Subred, pool, infraestructura y reservas
Antes de abrir el editor debemos diseñar.
Figura 4. Separar infraestructura, reservas y pool evita conflictos y facilita crecer.
Ejemplo solo didáctico:
Red 10.44.0.0/24
Servidor 10.44.0.10
Infraestructura 10.44.0.1–49
Reservas 10.44.0.50–79
Pool dinámico 10.44.0.100–139
Crecimiento resto del espacio planificado
No entregues dinámicamente:
- dirección de red;
- broadcast;
- IP del servidor;
- IP del gateway si existe;
- direcciones reservadas;
- otras direcciones estáticas conocidas.
La decisión importante
Un buen plan no consiste en copiar siempre:
servidor .10
pool .100–149
reserva .80
Consiste en justificar que:
todas las direcciones pertenecen a la subred
no se solapan
hay espacio suficiente
la infraestructura queda protegida
las reservas no entran en conflicto
el diseño puede crecer
15. Dimensionar un pool
Un /24 no significa:
«Tengo 254 direcciones para DHCP».
Parte del espacio puede reservarse para:
servidores
routers
AP
impresoras
reservas
crecimiento
Ejercicio resuelto 6
Tenemos:
24 clientes dinámicos simultáneos
6 dispositivos con dirección estable
varios equipos de infraestructura
Un pool de 10 direcciones no sería suficiente.
El pool debe cubrir el pico de clientes dinámicos con un margen razonable.
Si una tarea te indica una capacidad
Si el enunciado exige, por ejemplo:
20 clientes dinámicos
tu pool debe disponer como mínimo de ese número de direcciones válidas y no puede solaparse con:
servidor
infraestructura
reservas
red
broadcast
16. Tiempo de concesión
Figura 5. El cliente intenta renovar antes de que la concesión expire.
Ejemplo docente:
T1 900 s
T2 1800 s
Lease 3600 s
Debe cumplirse:
T1 < T2 < Lease
No copies estos valores sin analizar el escenario.
¿Qué ocurre si el cliente se apaga?
Una concesión no desaparece automáticamente en el mismo instante en que el cliente se apaga o se desconecta.
La dirección puede continuar figurando como concedida hasta que:
- el cliente la libere expresamente;
- la concesión expire;
- o el servidor actualice su estado según corresponda.
Por eso:
cliente apagado ≠ dirección inmediatamente libre
Esta diferencia es importante cuando interpretamos el fichero de leases.
17. Opciones DHCP
| Opción | Contenido |
|---|---|
| 1 | máscara |
| 3 | router |
| 6 | DNS |
| 15 | dominio |
| 51 | lease time |
| 53 | tipo de mensaje |
| 54 | servidor |
| 58 | T1 |
| 59 | T2 |
En la ruta base de UT01
No anunciaremos gateway si la red interna no tiene una pasarela real.
Tampoco inventaremos un DNS que todavía no existe.
Sí podemos observar:
- dirección;
- máscara;
- lease;
- T1/T2;
- dominio de laboratorio.
PARTE IV · KEA EN DEBIAN 13
18. Instalar Kea y herramientas
sudo apt update
sudo apt install -y kea-dhcp4-server tcpdump nano
Comprobar:
apt policy kea-dhcp4-server
kea-dhcp4 -V
dpkg -l | grep kea-dhcp4-server
19. Copia de seguridad
sudo cp -a /etc/kea/kea-dhcp4.conf /etc/kea/kea-dhcp4.conf.bak
Editar:
sudo nano /etc/kea/kea-dhcp4.conf
20. Configuración base de ejemplo
Este bloque sirve para entender la estructura de Kea. No es la solución de ninguna tarea evaluable.
Sustituye INTERFAZ_LAN y los datos de ejemplo cuando construyas tu propio escenario.
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "INTERFAZ_LAN" ]
},
"renew-timer": 900,
"rebind-timer": 1800,
"valid-lifetime": 3600,
"lease-database": {
"type": "memfile",
"persist": true
},
"subnet4": [
{
"id": 1,
"subnet": "10.44.0.0/24",
"pools": [
{
"pool": "10.44.0.100 - 10.44.0.139"
}
],
"option-data": [
{
"name": "domain-name",
"data": "ejemplo.ser.test"
}
]
}
]
}
}
Qué significa cada bloque
| Bloque | Función |
|---|---|
interfaces-config |
NIC donde Kea recibe DHCP |
renew-timer |
T1 |
rebind-timer |
T2 |
valid-lifetime |
duración de la concesión |
lease-database |
almacenamiento de concesiones |
subnet4 |
red administrada |
id |
identificador explícito de la subred |
pools |
direcciones dinámicas |
option-data |
opciones adicionales |
21. Validar antes de aplicar
sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
Después:
sudo systemctl restart kea-dhcp4-server
systemctl status kea-dhcp4-server --no-pager
Logs:
sudo journalctl -u kea-dhcp4-server -b -n 50 --no-pager
Comprobación auxiliar:
sudo ss -lunp | grep ':67'
La ausencia de una línea UDP 67 en
ssno demuestra por sí sola un fallo de DHCP. La comprobación completa combina configuración, servicio, logs, tráfico DHCP y concesión real.
22. Orden de trabajo recomendado
1. entender el requisito
2. diseñar el direccionamiento
3. guardar una copia / plan de vuelta atrás
4. modificar
5. validar
6. aplicar
7. comprobar servicio y logs
8. probar desde cliente
9. revisar concesión
10. comprobar que no rompimos otra cosa
Este orden es un método de trabajo, no la solución de una práctica concreta.
PARTE V · CLIENTES Y CONCESIONES
23. Cliente Windows
Configura la NIC de laboratorio para obtener IPv4 automáticamente.
ipconfig /all
Forzar negociación:
ipconfig /release
ipconfig /renew
ipconfig /all
Comprueba:
- dirección dentro del pool esperado;
- máscara;
- servidor DHCP;
- duración de concesión.
No esperes gateway en una LAN que no tenga uno.
24. Cliente Debian
Primero identifica el gestor:
systemctl is-active NetworkManager systemd-networkd networking
NetworkManager
nmcli device status
nmcli connection show
nmcli -f GENERAL,IP4,DHCP4 device show INTERFAZ
Para renovar:
sudo nmcli connection down "NOMBRE_CONEXION"
sudo nmcli connection up "NOMBRE_CONEXION"
ifupdown
Perfil:
auto INTERFAZ
iface INTERFAZ inet dhcp
Aplicar desde consola local:
sudo ifdown INTERFAZ
sudo ifup INTERFAZ
ip -br address
ip route
No copies un nombre de interfaz sin comprobar el real.
25. Primera concesión
Servidor:
sudo journalctl -u kea-dhcp4-server -f
En otra terminal:
sudo head -n 5 /var/lib/kea/kea-leases4.csv
La IP del cliente y la registrada por Kea deben ser coherentes.
Qué es una lease
Una lease es una concesión temporal.
No significa:
«esta IP pertenece para siempre a este cliente».
Significa:
«esta dirección ha sido cedida bajo unas condiciones y durante un tiempo determinado».
26. Capturar DHCP con tcpdump
sudo tcpdump -ni INTERFAZ -vv 'udp port 67 or udp port 68'
Guardar PCAP:
sudo tcpdump -ni INTERFAZ -w ut01-dhcp.pcap 'udp port 67 or udp port 68'
Busca:
Discover
Offer
Request
ACK
27. Wireshark
Filtro:
dhcp
Identifica al menos:
| Dato | Qué buscamos |
|---|---|
| tipo DHCP | Discover / Offer / Request / ACK |
xid |
mensajes de la misma negociación |
yiaddr |
IP ofrecida/asignada |
| Option 54 | servidor |
| Option 51 | lease |
| Option 58/59 | T1/T2 |
| Option 15 | dominio si se envía |
Figura 6. Captura, lease y estado del cliente deben contar la misma historia.
Pregunta clave
¿Cómo puede enviar un cliente DHCPDISCOVER si todavía no tiene una IPv4 válida?
Porque la fase inicial utiliza difusión y los puertos UDP definidos por DHCP. El cliente todavía no necesita conocer una dirección unicast del servidor.
PARTE VI · RESERVAS Y OPCIONES
28. Reserva por dirección MAC
Obtén la MAC real de la interfaz que participa en el laboratorio.
Linux:
ip link
Windows:
ipconfig /all
Ejemplo genérico de estructura:
"reservations": [
{
"hw-address": "08:00:27:aa:bb:cc",
"ip-address": "10.44.0.70",
"hostname": "equipo-reservado"
}
]
Lo importante no es copiar esos valores, sino entender la relación:
MAC concreta
↓
reserva DHCP
↓
dirección concreta
La IP reservada debe:
- pertenecer a la subred;
- no ser dirección de red ni broadcast;
- no entrar en conflicto con el servidor;
- no entrar en conflicto con otra dirección estática;
- respetar la política de direccionamiento diseñada.
29. Reserva DHCP no es IP manual
Con reserva:
cliente usa DHCP
↓
servidor reconoce identidad
↓
entrega dirección estable
↓
puede entregar opciones
↓
queda registrada la concesión
Con IP manual, la dirección se configura directamente en el cliente.
30. Añadir gateway solo si existe
Si incorporamos una pasarela real:
router de laboratorio → 10.44.0.1
podremos añadir:
{
"name": "routers",
"data": "10.44.0.1"
}
Si no existe pasarela, no la anunciamos.
31. Añadir DNS cuando exista
Cuando implantemos un DNS real:
{
"name": "domain-name-servers",
"data": "DIRECCION_DEL_DNS"
}
DHCP puede entregar la dirección del DNS.
Eso no demuestra que DNS funcione correctamente.
PARTE VII · DIAGNÓSTICO
32. Escalera DHCP
Figura 7. Comprobar una capa cada vez evita cambios aleatorios.
Orden recomendado:
1. ¿cliente y servidor están realmente en el segmento esperado?
2. ¿las NIC están conectadas?
3. ¿el servidor tiene direccionamiento válido y persistente?
4. ¿la configuración de Kea es válida?
5. ¿el servicio está activo?
6. ¿los logs muestran un error?
7. ¿el Discover llega?
8. ¿sale Offer/ACK?
9. ¿el cliente aplica la configuración?
10. ¿la lease coincide?
33. Cliente Windows obtiene 169.254.x.x
Una dirección APIPA suele indicar que Windows no ha conseguido una concesión útil.
Primera pregunta:
¿llega un Discover al servidor?
Captura:
sudo tcpdump -ni INTERFAZ 'udp port 67 or udp port 68'
Si no llega Discover, investiga primero:
- red virtual;
- NIC;
- cable virtual;
- interfaz del cliente.
Si llega Discover pero no Offer, investiga:
- Kea;
- interfaz;
- subred;
- pool;
- logs.
34. Kea valida pero no arranca
sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
systemctl status kea-dhcp4-server --no-pager
sudo journalctl -u kea-dhcp4-server -b -n 50 --no-pager
ip -br link
Hipótesis posibles:
- interfaz inexistente;
- dirección/subred incoherente;
- conflicto;
- problema de ejecución.
La configuración puede ser sintácticamente válida y fallar al aplicarse al sistema real.
35. Dos ofertas
Síntoma:
el cliente recibe IP de otro rango
Busca:
- Option 54;
- MAC origen;
- dos
DHCPOFFER.
Posibles causas:
- segundo Kea;
- DHCP integrado de VirtualBox;
- Red NAT;
- Solo-anfitrión;
- VM en segmento incorrecto.
36. IP correcta pero no navega
No concluyas:
«DHCP está mal».
En una red interna sin gateway, el objetivo inicial es demostrar:
cliente ↔ servidor dentro de la LAN
37. Reserva ignorada
Compara:
- MAC real de la interfaz usada;
chaddr;client-idsi procede;- reserva de Kea;
- concesión anterior.
No cambies cosas al azar hasta saber qué identidad presenta el cliente.
PARTE VIII · INDIVIDUALIZACIÓN
38. Tu variante no es una solución precalculada
Las tareas del módulo utilizan datos individualizados para que cada alumno construya y pueda defender su propio escenario.
En las prácticas podremos utilizar:
P → número de puesto asignado al alumno
L → inicial del primer apellido convertida a número
M → número máximo de equipos que deben poder obtener concesión dinámica simultáneamente
La unidad no fija cuántos puestos existen en el aula.
Pes únicamente el identificador de puesto que indique el profesor para esa actividad.
El enunciado concretará cómo afectan P, L y, cuando proceda, M al escenario.
Qué puede cambiar entre alumnos
Pueden variar:
- red de trabajo;
- número máximo de equipos que debe poder atender el pool;
- duración de concesión;
- segunda red;
- nombre de red virtual;
- determinados requisitos de la incidencia.
Número máximo de equipos y tamaño del pool
Si una práctica indica:
M = 18
significa que el pool debe poder entregar como mínimo 18 concesiones simultáneas válidas.
No significa que la última dirección del pool tenga que terminar en .18.
Por ejemplo, si elegimos como inicio:
10.44.0.100
un pool de 18 direcciones consecutivas terminaría en:
10.44.0.117
porque se cuentan ambas direcciones.
La idea que debes recordar es:
número máximo de equipos
↓
número mínimo de direcciones útiles en el pool
Qué debes decidir tú
Aunque la tarea te proporcione una red y unas restricciones, tendrás que decidir de forma razonada:
dirección del servidor
zona de infraestructura
inicio y final del pool dinámico
dirección reservada
organización de las redes
No hay una única respuesta basada en:
servidor siempre .10
pool siempre .100–149
reserva siempre .80
Una solución será válida si:
- cumple el enunciado;
- utiliza direcciones válidas;
- evita solapamientos;
- satisface el número máximo de equipos exigido;
- funciona;
- y puedes justificarla.
Ejemplo didáctico que NO pertenece a la práctica final
Supongamos:
Red 10.44.0.0/24
Número máximo de equipos 18
1 servidor
1 equipo reservado
Una posible planificación podría ser:
infraestructura → zona baja
reserva → fuera del pool
pool → al menos 18 direcciones válidas
La web te enseña los criterios. En la tarea tendrás que construir tu propio plan.
PARTE IX · DHCP RELAY
39. Un único servidor DHCP para dos redes
Hasta ahora Kea ha atendido clientes situados en su misma LAN.
El siguiente paso consiste en mantener un único servidor Kea y conseguir que entregue configuración a clientes de dos redes diferentes.
RED A · 10.44.0.0/24
CLIENTE A ─────────────────────┐
│
KEA 10.44.0.10 ────────────────┼── 10.44.0.254
│ [ RELAY ]
│ 10.55.0.254
│
└────────────── CLIENTE B
RED B · 10.55.0.0/24
Los valores anteriores son didácticos. La práctica evaluable utilizará los datos indicados en su enunciado.
El objetivo es:
CLIENTE A → dirección del pool de RED A
CLIENTE B → dirección del pool de RED B
pero solo existe un servidor Kea
40. Por qué necesitamos un relay
La negociación DHCP inicial utiliza difusión.
Si Kea está en Red A y el cliente está en Red B:
CLIENTE B
↓
DHCPDISCOVER broadcast
↓
RED B
X
no llega directamente a Kea en RED A
El DHCP Relay resuelve ese problema:
CLIENTE B
↓ broadcast
RELAY
↓ reenvío hacia Kea
SERVIDOR DHCP
El relay:
- no sustituye al servidor DHCP;
- no crea el pool;
- no decide qué IP entregar;
- transporta la negociación entre redes distintas;
- aporta información para que Kea pueda seleccionar la subred correcta.
41. Topología y máquinas necesarias
Para esta ampliación necesitamos tres roles:
| Equipo | Interfaces de laboratorio | Función |
|---|---|---|
| Servidor Kea | Red A | servidor DHCP central |
| Relay | Red A + Red B | comunica DHCP entre las dos redes |
| Cliente B | Red B | solicita configuración desde una red remota |
Podemos reutilizar un cliente de Red A para comprobar que lo ya existente continúa funcionando.
Servidor Kea
El servidor permanece conectado a Red A.
No añadimos una NIC del servidor a Red B.
Si Kea estuviera directamente conectado también a Red B, ya no estaríamos comprobando relay.
Relay
El relay necesita dos NIC de laboratorio:
NIC A → Red A
NIC B → Red B
Ejemplo didáctico:
NIC A → 10.44.0.254/24
NIC B → 10.55.0.254/24
Cliente B
Su NIC de laboratorio se conecta a Red B y debe obtener IPv4 automáticamente.
42. Preparar el equipo relay
Antes de modificar nada:
ip -br link
ip -br address
ip route
Identifica qué interfaz corresponde a cada red.
Configura direcciones estáticas y persistentes en ambas NIC utilizando el gestor de red real de ese Debian:
NetworkManager
ifupdown
systemd-networkd
No copies nombres como enp0s8 o enp0s9 sin comprobarlos.
Después:
ip -br address
ip route
El relay debe tener presencia directa en ambas redes.
Instalar el servicio
sudo apt update
sudo apt install -y isc-dhcp-relay
Revisa:
sudo nano /etc/default/isc-dhcp-relay
La configuración debe expresar al menos:
SERVERS="IP_DEL_SERVIDOR_KEA"
INTERFACES="INTERFAZ_RED_A INTERFAZ_RED_B"
OPTIONS=""
Ejemplo didáctico:
SERVERS="10.44.0.10"
INTERFACES="INTERFAZ_A INTERFAZ_B"
OPTIONS=""
Sustituye los marcadores por los nombres reales.
Después:
sudo systemctl restart isc-dhcp-relay
systemctl status isc-dhcp-relay --no-pager
sudo journalctl -u isc-dhcp-relay -b -n 50 --no-pager
El objetivo de esta práctica es transportar correctamente la negociación DHCP entre Red B y el servidor de Red A. No es necesario convertirla en un ejercicio completo de routing de usuarios.
43. Kea debe conocer las dos subredes
Kea continúa escuchando en la interfaz del servidor conectada a Red A.
Dentro de subnet4 debe existir una política para cada red administrada.
Ejemplo didáctico:
"subnet4": [
{
"id": 1,
"subnet": "10.44.0.0/24",
"pools": [
{
"pool": "10.44.0.100 - 10.44.0.119"
}
]
},
{
"id": 2,
"subnet": "10.55.0.0/24",
"pools": [
{
"pool": "10.55.0.100 - 10.55.0.119"
}
]
}
]
Este bloque enseña la estructura, no la solución de la práctica final.
Cada subred:
- tiene un
iddistinto; - utiliza una red distinta;
- utiliza su propio pool;
- debe respetar el número máximo de equipos exigido;
- debe evitar infraestructura, reservas y solapamientos.
Valida:
sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
Después:
sudo systemctl restart kea-dhcp4-server
systemctl status kea-dhcp4-server --no-pager
44. giaddr: cómo sabe Kea de qué red viene el cliente
Cuando el cliente de Red B envía su DHCPDISCOVER, el relay lo recibe.
Al reenviarlo hacia Kea utiliza el campo:
giaddr
Podemos razonarlo así:
CLIENTE B
↓ Discover
RELAY en RED B
↓ añade información de relay
giaddr = dirección del relay en RED B
↓
KEA
↓
subnet4 de RED B
↓
pool de RED B
Por eso giaddr es especialmente útil al analizar una negociación que ha atravesado un relay.
45. Verificar las dos redes
Cliente A · Red A
Debe recibir una dirección perteneciente al pool A.
Cliente B · Red B
Debe recibir una dirección perteneciente al pool B, no al pool A.
Servidor Kea
sudo tail -n 20 /var/lib/kea/kea-leases4.csv
Deben aparecer concesiones coherentes con ambas redes.
Relay
systemctl status isc-dhcp-relay --no-pager
sudo journalctl -u isc-dhcp-relay -b -n 50 --no-pager
Captura
sudo tcpdump -ni INTERFAZ -vv 'udp port 67 or udp port 68'
En Wireshark:
dhcp
En el tráfico procedente de Red B localiza especialmente:
giaddr
Option 53
Option 54
yiaddr
46. Prueba de regresión
Antes:
Red A funciona
Después:
Red A debe seguir funcionando
Red B debe funcionar mediante relay
Comprueba:
Kea sigue operativo
cliente A obtiene pool A
relay está operativo
cliente B obtiene pool B
leases contienen ambas redes
la negociación remota muestra información coherente de relay
Una ampliación que consigue atender Red B pero rompe Red A no está terminada.
PARTE X · CASOS RESUELTOS
47. Caso A · cliente con dirección automática de emergencia
Síntoma:
el cliente no obtiene una concesión útil
Primera decisión:
¿el Discover llega realmente al servidor?
Si no llega, investiga la conectividad y el segmento virtual.
Si llega y no existe respuesta útil, investiga servidor, interfaz, subred, pool y logs.
48. Caso B · configuración válida, servicio no operativo
Una validación sintáctica correcta no garantiza que el servicio pueda arrancar con el sistema real.
Comprueba:
sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
systemctl status kea-dhcp4-server --no-pager
sudo journalctl -u kea-dhcp4-server -b -n 50 --no-pager
ip -br link
ip -br address
Ejemplo de razonamiento:
JSON correcto
↓
pero interfaz configurada no existe
↓
Kea no puede aplicar la configuración
49. Caso C · aparecen respuestas inesperadas
Si un cliente recibe una oferta de otro rango:
no cambies inmediatamente tu pool
Antes identifica quién está respondiendo.
Busca:
- Option 54;
- MAC origen;
- número de ofertas;
- topología VirtualBox.
50. Caso D · reserva que no se aplica
No concluyas directamente que la sintaxis es incorrecta.
Compara:
identidad real del cliente
reserva configurada
lease anterior
interfaz que realmente está usando el cliente
La pregunta importante es:
¿Está presentando el cliente la identidad que yo creo?
51. Caso E · Red A funciona y Red B no obtiene DHCP mediante relay
Si Red A sigue funcionando y Red B no:
NO empieces modificando Red A
Acota el problema:
1. ¿el cliente B está realmente en Red B?
2. ¿las dos NIC del relay están UP y tienen direcciones correctas?
3. ¿el relay conoce la IP del servidor Kea?
4. ¿isc-dhcp-relay está activo?
5. ¿los logs del relay muestran errores?
6. ¿Kea tiene declarada subnet4 para Red B?
7. ¿el pool de Red B pertenece realmente a Red B?
8. ¿el Discover llega al relay?
9. ¿Kea recibe una petición reenviada con giaddr coherente?
10. ¿la respuesta vuelve al cliente B?
Herramientas:
ip -br address
ip route
systemctl status isc-dhcp-relay --no-pager
sudo journalctl -u isc-dhcp-relay -b -n 50 --no-pager
sudo journalctl -u kea-dhcp4-server -b -n 50 --no-pager
sudo tcpdump -ni INTERFAZ -vv 'udp port 67 or udp port 68'
PARTE XI · CHULETA OPERATIVA
Servidor
ip -br link
ip -br address
ip route
ip route get DIRECCION
sudo apt update
sudo apt install -y kea-dhcp4-server tcpdump nano
apt policy kea-dhcp4-server
kea-dhcp4 -V
dpkg -l | grep kea-dhcp4-server
sudo cp -a /etc/kea/kea-dhcp4.conf /etc/kea/kea-dhcp4.conf.bak
sudo nano /etc/kea/kea-dhcp4.conf
sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
sudo systemctl restart kea-dhcp4-server
systemctl status kea-dhcp4-server --no-pager
sudo journalctl -u kea-dhcp4-server -b -n 50 --no-pager
sudo tail -n 20 /var/lib/kea/kea-leases4.csv
Captura
sudo tcpdump -ni INTERFAZ -vv 'udp port 67 or udp port 68'
Guardar:
sudo tcpdump -ni INTERFAZ -w ut01-dhcp.pcap 'udp port 67 or udp port 68'
Wireshark:
dhcp
Windows
ipconfig /all
ipconfig /release
ipconfig /renew
ipconfig /all
Debian con NetworkManager
nmcli device status
nmcli connection show
nmcli -f GENERAL,IP4,DHCP4 device show INTERFAZ
ip -br address
ip route
Relay Debian
ip -br link
ip -br address
ip route
sudo apt update
sudo apt install -y isc-dhcp-relay
sudo nano /etc/default/isc-dhcp-relay
sudo systemctl restart isc-dhcp-relay
systemctl status isc-dhcp-relay --no-pager
sudo journalctl -u isc-dhcp-relay -b -n 50 --no-pager
sudo tcpdump -ni INTERFAZ -vv 'udp port 67 or udp port 68'
Configuración conceptual:
SERVERS="IP_DEL_SERVIDOR_KEA"
INTERFACES="INTERFAZ_RED_A INTERFAZ_RED_B"
OPTIONS=""
PARTE XII · AMPLIACIÓN
52. Escalar el diseño a más redes
El laboratorio de esta UT utiliza dos redes para comprender el patrón.
En una infraestructura mayor podríamos encontrar:
┌─ LAN A
KEA central ──────┼─ relay/router ─ LAN B
├─ relay/router ─ LAN C
└─ relay/router ─ LAN D
La idea no cambia:
cada red
↓
su propia subnet4
↓
su propio pool y opciones
↓
relay cuando el servidor no está directamente en esa LAN
Cuantas más redes añadimos, más importante resulta documentar direccionamiento, relays, pools, reservas, rutas y evidencias.
En SER nos quedamos con el escenario de dos redes.
53. DHCP y DNS
DHCP
entrega Option 6
↓
CLIENTE
aprende qué DNS usar
↓
DNS
resuelve nombres
Pero:
DHCP correcto ≠ DNS correcto
DNS correcto ≠ DHCP correcto
Cada servicio debe comprobarse por separado.
54. Segunda implementación: Windows Server 2025
El protocolo DHCP no cambia porque cambie la plataforma.
Después de implantar y diagnosticar DHCP con Kea repetiremos los mismos conceptos del RA1 en Windows Server 2025:
| Kea | Windows Server 2025 |
|---|---|
subnet4 |
ámbito |
pools |
grupo de direcciones |
reservations |
reservas |
option-data |
opciones de ámbito |
kea-leases4.csv |
concesiones de direcciones |
| JSON / CLI | consola DHCP / PowerShell |
No volvemos a aprender DORA desde cero. Cambia principalmente la herramienta de administración.
Trabajaremos:
- instalación del rol DHCP;
- ámbito IPv4;
- exclusiones;
- reservas por MAC;
- concesiones;
- opciones;
- PowerShell;
- diagnóstico;
- comparación Kea ↔ Windows Server.
➡️ Continuar: DHCP en Windows Server 2025
PARTE XIII · REFERENCIAS OFICIALES
Currículo
- Decreto 272/2009, de 28 de diciembre · currículo de SMR en Extremadura
- Real Decreto 1691/2007 · título de Técnico en Sistemas Microinformáticos y Redes
DHCP y Kea
- ISC Kea · DHCPv4 Server
- ISC Kea · Configuration Examples
- Debian 13 ·
kea-dhcp4-server - Debian 13 ·
isc-dhcp-relay - RFC 2131 · Dynamic Host Configuration Protocol
- RFC 2132 · DHCP Options
Herramientas
55. Puente hacia UT02
Al terminar UT01 deberías poder responder:
¿quién me ha dado esta IP?
¿durante cuánto tiempo?
¿qué opciones me ha entregado?
¿qué servidor respondió?
¿dónde está registrada la concesión?
¿qué ocurre si el cliente no recibe respuesta?
¿cómo puede un único Kea entregar direcciones a dos redes distintas?
¿qué función cumple un DHCP Relay?
¿qué información aporta giaddr?
¿qué diferencia hay entre una concesión dinámica y una reserva por MAC?
¿por qué una lease no desaparece necesariamente al apagar un cliente?
La siguiente pregunta será:
Ya tengo red…
¿cómo hago para usar nombres en lugar de direcciones IP?
Eso nos lleva a:
UT02 · DNS