¿Qué direcciones pertenecen a la categoría de direcciones IP públicas? (Elija tres opciones).

SERVICIOS DE RED E Internet  ·  ASIR

Servicio DHCP

Guía de preparación del examen práctico

Ubuntu (isc-

Dhcp

server)
·  Windows Server  ·  Failover  ·  Clases y pools

Cómo estudiarla (orden recomendado)

1. Aprende de memoria la sección 2 (hoja resumen): rutas, comandos, tiempos y el esquema de dhcpd.Conf

2. Repite cada práctica en tus máquinas virtuales siguiendo las secciones 3 a 6, sin copiar y pegar

3. Haz el banco de ejercicios (sección 7) a mano, cronometrado, y solo después mira las soluciones (sección 8)

4. La víspera: sección 9 (preguntas cortas) y checklist final (sección 10)

Contenido

1. Cómo usar la guía y qué te pueden pedir

2. Hoja resumen: lo que debes saber de memoria

3. Ubuntu · Práctica 1:

Servidor

DHCP paso a paso (casos a y b)

4. Ubuntu · Práctica 2: group, dos tarjetas, shared-network, class y pool

5. Windows Server · Práctica 3: ámbito, modificaciones y reserva

6. Windows Server · Práctica 4: failover (+ class ID opcional)

7. Banco de ejercicios tipo examen (enunciados)

8. Soluciones del banco de ejercicios

9. Preguntas cortas de investigación con respuesta modelo

10. Checklist final y anexos (opciones DHCP, dhclient.Conf, glosario català-español)

Sustituye X por tu número de alumno. Comprueba el nombre de tu tarjeta de red con ip a (en las VM suele ser enp0s3).

1. Cómo usar esta guía y qué te pueden pedir

Esta guía está pensada para la parte práctica del examen de DHCP: tienes que ser capaz de montar el servicio tú solo, sin copiar y pegar, escribir los ficheros de configuración a mano y demostrar que funciona. Está basada en tus 4 prácticas (Ubuntu, Ubuntu avanzado, Windows Server y failover), en la práctica opcional de clases y en el resto del temario.

NOTA  ·  Antes de empezar

  • Donde pone X pon tu número de alumno (red 10.12.X.0/24, 192.168.X.0/24…). En el banco de ejercicios uso otros números a propósito, para que practiques a adaptar la configuración.

  • En Ubuntu 22.04 con VirtualBox las tarjetas se llaman enp0s3, enp0s8… (no eth0). Compruébalo siempre con ip a.

  • Tu temario mezcla rutas antiguas y modernas (dhcp3-server, /etc/dhcp3…). En Ubuntu 22.04 es isc-dhcp-server y /etc/dhcp/. La tabla de la sección 2 tiene las dos versiones.

1.1 Mapa del examen

La probabilidad es una estimación mía según el peso que tiene cada bloque en tus prácticas; no es información del profesor.

Bloque

Qué te pueden pedir

Prob.

Dónde

Ubuntu: ámbito básico

Escribir dhcpd.Conf (subnet, range, router, DNS), pasar tiempos a segundos, arrancar y comprobar

Muy alta

Sec. 3 · Ej. 1-2

Ubuntu: reserva por MAC

Sacar la MAC, host con fixed-address, router/DNS propios, dhclient y leases

Muy alta

Sec. 3 · Ej. 3

Interpretar salidas

dhclient -v, dhcpd.Leases, syslog, ps

Alta

Sec. 3.9, 3.12 · Ej. 10-11

Ubuntu: 2 tarjetas / 2 subnets

Adaptador 2 en VirtualBox, IP estática en la 2ª, 2ª subnet, INTERFACESv4

Alta

Sec. 4.2 · Ej. 4

shared-network y group

Sintaxis, para qué sirven, ejemplo funcionando

Media-alta

Sec. 4.1, 4.3 · Ej. 5-6

class + pool

Clases con user-class o etiqueta propia, pools con allow/deny, probar info1/info2/info3

Alta (lo más difícil)

Sec. 4.4-4.6 · Ej. 7-8

Windows: ámbito, cambios, reserva

Asistente, propiedades, opciones, concesiones, reserva

Muy alta

Sec. 5 · Ej. 12-13

Windows: failover

Hot standby, 50-50, comprobar y eliminar

Media-alta

Sec. 6 · Ej. 14

Windows: class ID / policies

Opcional en tu hoja

Baja-media

Sec. 6.7 · Ej. 15

Detectar errores / diagnosticar

Config con fallos, «no funciona, ¿por qué?»

Alta

Sec. 3.14 · Ej. 9, 16

1.2 Plan de ataque durante el examen

  1. Lee todo el enunciado y subraya los datos: X, redes, rangos, tiempos, MAC, nombres de clase, qué hay que comprobar.

  2. Convierte los tiempos a segundos antes de escribir (tabla en la sección 2.3).

  3. Servidor: IP estática, ip a para verificar, instalar el paquete si hace falta Internet y después pasar a red interna.

  4. Escribe la configuración por bloques y pasa sudo dhcpd -t cada vez que termines uno.

  5. Reinicia el servicio y comprueba estado y proceso.

  6. Cliente: release + pedir IP, y comprueba IP, router y DNS (no solo la IP).

  7. Servidor: mira las concesiones (dhcpd.Leases / Address Leases).

  8. Haz la captura o demostración de cada hito en cuanto lo tengas.

  9. Reserva 5 minutos al final: ¿faltan ;? ¿has sustituido la X? ¿has hecho todo lo que pedía el enunciado?

EN EL EXAMEN  ·  Orden de trabajo que evita el 80 % de los fallos

Datos del enunciado, red, instalar, interfaz, dhcpd.Conf, dhcpd -t, restart, cliente, leases. Si algo falla, mira siempre primero el log (journalctl -u isc-dhcp-server -e): casi siempre te dice la línea o el motivo.

2. Hoja resumen: lo que debes saber de memoria

2.1 Ubuntu: rutas y comandos (versión moderna frente a la del temario)

Qué

Ubuntu 22.04 (úsalo)

En tu temario (antiguo)

Paquete del servidor

isc-dhcp-server

dhcp3-server

Instalar

sudo apt update y sudo apt install isc-dhcp-server

apt-get install dhcp3-server

Configuración principal

/etc/dhcp/dhcpd.Conf

/etc/dhcp3/dhcpd.Conf

Tarjeta por la que atiende

/etc/default/isc-dhcp-server con INTERFACESv4=»enp0s3″

/etc/default/dhcp3-server

Probar sintaxis

sudo dhcpd -t

no aparece

Arrancar / parar / reiniciar

sudo systemctl start|stop|restart isc-dhcp-server (o sudo service isc-dhcp-server restart)

sudo service dhcp3-server restart

Estado

sudo systemctl status isc-dhcp-server

ps -A

Nombre del dimoni (proceso)

dhcpd: ps -A | grep dhcpd

«dhcp»

Fichero de concesiones

/var/lib/dhcp/dhcpd.Leases

/var/lib/dhcp3/dhcpd.Leases

Logs

sudo journalctl -u isc-dhcp-server -e y /var/log/syslog

/var/log/syslog

Configuración del cliente

/etc/dhcp/dhclient.Conf

/etc/dhcp3/dhclient.Conf

IP estática

Ajustes > Red, o netplan: /etc/netplan/*.Yaml y sudo netplan apply

/etc/network/interfaces

Ver IP y MAC

ip a (la MAC es link/ether)

ifconfig

Ver puerta de enlace

ip route

route -n

Ver DNS recibido

resolvectl status (resolv.Conf muestra 127.0.0.53)

/etc/resolv.Conf

Pedir IP al servidor

sudo dhclient -r enp0s3 y sudo dhclient -v enp0s3

dhclient eth0

Puertos

servidor UDP 67, cliente UDP 68

igual

2.2 Windows Server: dónde está cada cosa

Qué

Cómo / dónde

Instalar el rol

Administrador del servidor > Administrar > Agregar roles y carácterísticas > Servidor DHCP. PowerShell: Install-WindowsFeature DHCP -IncludeManagementTools

Abrir la consola

Administrador del servidor > Herramientas > DHCP (o dhcpmgmt.Msc)

Crear ámbito

DHCP > servidor > IPv4 > clic derecho > Ámbito nuevo… (asistente)

Cambiar rango y duración

Ámbito > clic derecho > Propiedades > pestaña General

Cambiar router / DNS del ámbito

Ámbito > Opciones de ámbito > clic derecho > Configurar opciones: 003 Enrutador, 006 Servidores DNS

Opciones de todo el servidor

IPv4 > Opciones de servidor

Reserva

Ámbito > Reservas > clic derecho > Reserva nueva…

Ver concesiones

Ámbito > Concesiones de direcciones (Address Leases)

Servicio

services.Msc > Servidor DHCP (nombre DHCPServer); net stop dhcpserver y net start dhcpserver; Restart-Service dhcpserver; o clic derecho en el servidor > Todas las tareas

Dónde guarda las concesiones

C:\Windows\System32\dhcp\dhcp.Mdb (copia en \backup); logs de actividad DhcpSrvLog-<día>.Log

Cliente Windows

ipconfig /release, ipconfig /renew, ipconfig /all

Class ID en cliente Windows

ipconfig /setclassid «Ethernet» info1

2.3 Tiempos a segundos

Segundos = horas × 3600 = días × 86400. Es lo que más se falla por prisa.

10 min

1 h

2 h

8 h

12 h

1 día

3 días

600

3600

7200

28800

43200

86400

259200

Otros: 30 min = 1800 · 4 h = 14400 · 2 días = 172800 · 7 días = 604800 · 8 días (defecto de Windows) = 691200.

2.4 El proceso DORA y los mensajes

Proceso de asignación de IP: Discover, Offer, Request, Acknowledge.

Figura 1. Proceso de asignación de IP: Discover, Offer, Request, Acknowledge.

Mensaje

Sentido

Qué significa

DHCPDISCOVER

cliente > servidor

Broadcast (0.0.0.0:68 > 255.255.255.255:67): «¿qué servidores DHCP hay?»

DHCPOFFER

servidor > cliente

Oferta con IP, máscara, lease y opciones. Llega una por cada servidor

DHCPREQUEST

cliente > servidor

Acepta una oferta (broadcast, así los demás retiran la suya); también sirve para renovar

DHCPACK

servidor > cliente

Confirma y entrega la configuración definitiva

DHCPNAK

servidor > cliente

Rechaza: la IP no vale (cambió de subred, lease caducado)

DHCPDECLINE

cliente > servidor

«Esa IP ya está en uso» (lo detecta con ARP)

DHCPRELEASE

cliente > servidor

Devuelve la IP y termina el contrato

DHCPINFORM

cliente > servidor

Ya tiene IP; solo pide parámetros (p. Ej. Proxy/WPAD)

DHCPRENEW

cliente > servidor

Así aparece en tu libro; en el RFC la renovación es un DHCPREQUEST

NOTA  ·  Unicast o broadcast en OFFER y ACK

En las figuras de tu temario el OFFER/ACK sale como unicast en una y como broadcast (255.255.255.255:68) en otra. Depende de si el cliente, sin IP todavía, pide respuesta por broadcast. En el examen explica: «si el cliente aún no tiene IP, la respuesta va a su MAC o por broadcast».

Tiempos de la concesión

T1 (renovación) = 50 % del lease; T2 (rebinding) = 87,5 %.

Figura 2. T1 (renovación) = 50 % del lease; T2 (rebinding) = 87,5 %.

  • Lease time (tiempo de concesión): lo que dura la IP.

  • Renewal time (T1) = 50 %: el cliente pide renovar al mismo servidor (unicast).

  • Rebinding time (T2) = 87,5 %: si no contestó, pide a cualquier servidor (broadcast).

  • Si llega al 100 % sin renovar, pierde la IP y vuelve a DISCOVER.

  • Ejemplo del temario: lease 600 s, renewal in 300 seconds.

2.5 Esqueleto de dhcpd.Conf

# 1) PARÁMETROS GLOBALES (afectan a todo lo de abajo)

authoritative;

default-lease-time 86400;           # segundos (1 día)

max-lease-time 259200;              # segundos (3 días)

option domain-name «aula.Local»;

option domain-name-servers 8.8.8.8;

log-facility local7;

# 2) DECLARACIONES (cada una con sus parámetros locales)

subnet 10.12.X.0 netmask 255.255.255.0 {     # ÁMBITO

    range 10.12.X.100 10.12.X.220;           # rango dinámico

    option routers 10.10.0.1;                # puerta de enlace

}

host cliente1 {                              # RESERVA por MAC

    hardware ethernet 08:00:27:AA:BB:CC;

    fixed-address 10.12.X.195;

}

TRAMPA  ·  Reglas de sintaxis que se olvidan con los nervios

  • Toda sentencia acaba en ;. Los bloques { } no llevan ; tras la llave de cierre.

  • option va delante de las opciones DHCP (routers, domain-name-servers, subnet-mask, broadcast-address, domain-name, host-name). No va delante de default-lease-time, max-lease-time, range, hardware, fixed-address, authoritative, log-facility.

  • Es routers y domain-name-servers (con s). Las listas van separadas por comas.

  • Los textos entre comillas («aula.Local»); IP y números sin comillas. La MAC lleva dos puntos: 08:00:27:AA:BB:CC.

  • Lo más específico gana: host > pool > subnet > global.

3. Ubuntu · Práctica 1: servidor DHCP paso a paso

3.1 Datos del enunciado

Dato

Caso a)

Caso b) (reserva)

Subred / máscara

10.12.X.0 / 255.255.255.0

la misma

Rango

10.12.X.100 a 10.12.X.220

el mismo

Puerta de enlace

10.10.0.1

10.12.0.1 (solo para la reserva)

DNS

8.8.8.8

4.4.4.4 (solo para la reserva)

Lease por defecto

1 día = 86400 s

igual

Lease máximo

3 días = 259200 s

igual

Reserva

no hay

MAC del cliente siempre a 10.12.X.195

Regla de oro del enunciado: servidor con IP estática, cliente con IP dinámica. Un servidor DHCP/DNS/Apache nunca debe usar IP dinámica: tiene que estar localizable.

3.2 Paso 0 · Máquinas virtuales

  • Dos VM de Ubuntu 22.04 Desktop: una es el servidor y la otra el cliente (clon). Al clonar, elige generar nuevas direcciones MAC; si no, tendrás MAC duplicadas en la misma red.

  • Servidor, mientras instala: Adaptador 1 en Adaptador puente (necesita Internet para descargar el paquete).

  • Cuando termine de instalar: pasa servidor y cliente a Red interna con exactamente el mismo nombre (intnet). Así no interfieres con compañeros ni con la red del instituto.

3.3 Paso 1 · IP estática del servidor (temporal, modo puente)

Datos del enunciado: IP 10.12.X.10 (la Y la eliges tú, fuera del rango repartido), máscara 255.0.0.0, puerta 10.10.0.1, DNS 8.8.8.8.

Opción gráfica: Configuración > Red > engranaje de la conexión cableada > pestaña IPv4 > Método Manual > dirección, máscara, puerta de enlace y DNS > Aplicar > apaga y enciende la conexión.

Opción por fichero (netplan):

# /etc/netplan/01-network-mánager-all.Yaml   (el nombre puede variar: ls /etc/netplan)

network:

  versión: 2

  renderer: NetworkManager

  ethernets:

    enp0s3:

      dhcp4: false

      addresses: [10.12.X.10/8]

      routes:

        – to: default

          vía: 10.10.0.1

      nameservers:

        addresses: [8.8.8.8]

sudo netplan apply

ip a                       # ¿tiene 10.12.X.10/8?

ip route                   # ¿default vía 10.10.0.1?

ping -c 2 8.8.8.8          # ¿hay Internet?

ping -c 2 Google.Es        # ¿resuelve nombres?

TRAMPA  ·  YAML

Solo espacios (nunca tabulador) y la indentación exacta. Si netplan apply da error, revisa primero los espacios.

3.4 Paso 2 · Instalar el servicio

sudo apt update

sudo apt install isc-dhcp-server

NOTA  ·  Es normal que al instalar «falle» el arranque

Al terminar puede aparecer un aviso de que isc-dhcp-server no ha podido arrancar. Es normal: todavía no hay ningún subnet configurado. Haz la captura de la instalación y ahora sí pasa la VM a Red interna.

3.5 Paso 3 · Decir por qué tarjeta atiende

sudo nano /etc/default/isc-dhcp-server

INTERFACESv4=»enp0s3″

INTERFACESv6=»»

Con dos tarjetas se escriben separadas por espacio: INTERFACESv4=»enp0s3 enp0s8″.

3.6 Paso 4 · Escribir dhcpd.Conf (caso a)

sudo cp /etc/dhcp/dhcpd.Conf /etc/dhcp/dhcpd.Conf.Original    # copia de seguridad

sudo nano /etc/dhcp/dhcpd.Conf        # (o: sudo gedit /etc/dhcp/dhcpd.Conf)

# ———- CASO a) ———-

authoritative;

default-lease-time 86400;             # 1 día

max-lease-time 259200;                # 3 días

log-facility local7;

subnet 10.12.X.0 netmask 255.255.255.0 {

    range 10.12.X.100 10.12.X.220;

    option routers 10.10.0.1;

    option domain-name-servers 8.8.8.8;

}

Línea

Qué hace

authoritative;

Este es el servidor oficial de la red: contesta DHCPNAK a clientes con IP que no es válida aquí

default-lease-time 86400;

Duración de la concesión si el cliente no pide otra

max-lease-time 259200;

Tope: aunque el cliente pida más, no se le da más

log-facility local7;

Canal de syslog donde escribe el servicio

subnet … Netmask … { }

Ámbito: la red que atiende. Obligatorio

range A B;

Direcciones que reparte dinámicamente

option routers X;

Opción 3: puerta de enlace

option domain-name-servers X;

Opción 6: servidores DNS

TRAMPA  ·  Trampa nº 1: el servidor debe tener IP dentro de la subnet

dhcpd solo atiende por una tarjeta si esa tarjeta tiene una IP que cae en alguna subnet declarada. Si no, en el log verás «No subnet declaration for enp0s3» y no atenderá. Por eso el servidor es 10.12.X.10 y la subnet 10.12.X.0/24. La máscara /8 de la tarjeta no importa: dhcpd solo mira la netmask de la subnet.

Si no pones option subnet-mask ni option broadcast-address, dhcpd usa la netmask de la subnet y calcula el broadcast. El libro los escribe explícitamente (option subnet-mask 255.255.255.0; y option broadcast-address 10.12.X.255;): también es válido.

3.7 Paso 5 · Validar, arrancar y comprobar

sudo dhcpd -t                               # prueba la sintaxis (no arranca nada)

sudo systemctl restart isc-dhcp-server      # arranca/reinicia

sudo systemctl status isc-dhcp-server       # debe decir: active (running)

ps -A | grep dhcpd                          # el dimoni se llama dhcpd

sudo ss -ulnp | grep :67                    # escucha en UDP 67

Acción

Comando

Arrancar

sudo systemctl start isc-dhcp-server

Parar

sudo systemctl stop isc-dhcp-server

Reiniciar (tras cada cambio en dhcpd.Conf)

sudo systemctl restart isc-dhcp-server

Ver estado

sudo systemctl status isc-dhcp-server

Arrancar al encender la máquina

sudo systemctl enable isc-dhcp-server

Con dhcpd -t, si todo va bien solo verás las rutas de configuración, leases y PID. Si hay un fallo te da el número de línea, por ejemplo /etc/dhcp/dhcpd.Conf line 9: semicolon expected.

COMPRUEBA  ·  Si no arranca

sudo journalctl -u isc-dhcp-server -e –no-pager | tail -20 o sudo tail -20 /var/log/syslog. Al explicarlo a un compañero: «systemctl controla el servicio; ps comprueba el proceso; el log dice por qué falló».

3.8 Paso 6 · Cliente: pedir IP y comprobar

Gráficamente: Configuración > Red > engranaje > IPv4 > Automático (DHCP) > apaga y enciende la conexión. Por terminal:

ip a                                 # nombre de la tarjeta (enp0s3) y su MAC

sudo dhclient -r enp0s3              # RELEASE: devuelve la IP actual

sudo dhclient -v enp0s3              # pide una nueva (se ve todo el DORA)

ip a show enp0s3                     # IP recibida (10.12.X.100…)

ip route                             # default vía 10.10.0.1  = puerta de enlace

resolvectl status enp0s3             # DNS Servers: 8.8.8.8

Qué debes ver: IP dentro del rango, default vía 10.10.0.1 y DNS 8.8.8.8.

TRAMPA  ·  Dos confusiones típicas

cat /etc/resolv.Conf en Ubuntu 22.04 muestra 127.0.0.53 (resolvedor local), no el DNS que dio el servidor; usa resolvectl status. Y ifconfig puede no estar instalado: usa ip a.

Alternativa fiable si dhclient no cambia nada: desconectar y conectar la red desde el icono de Ubuntu, o nmcli device disconnect enp0s3 y luego nmcli device connect enp0s3.

3.9 Paso 7 · Mirar las concesiones (leases)

sudo cat /var/lib/dhcp/dhcpd.Leases

sudo dhcp-lease-list                  # resumen en tabla (si está disponible)

lease 10.12.X.100 {

  starts 3 2026/10/28 09:15:02;              # día de la semana (0 = domingo), fecha, hora UTC

  ends 4 2026/10/29 09:15:02;                # caduca = starts + lease (aquí 1 día)

  cltt 3 2026/10/28 09:15:02;                # última transacción con el cliente

  binding state active;                      # estado actual: active / free / expired…

  next binding state free;                   # estado cuando caduque

  hardware ethernet 08:00:27:5e:a1:7c;       # MAC del cliente

  uid «\001\010\000’^\241|»;                 # client-identifier (01 + MAC)

  client-hostname «ubuntu-cliente»;          # nombre que envió el cliente

}

  • Las horas están en UTC, no en la hora local.

  • Como el fichero crece, el servidor genera una copia dhcpd.Leases~ y deja el original libre para nuevas concesiones.

  • Qué demostrar: que aparece la IP entregada a tu cliente con su MAC.

3.10 Caso b) · Reserva por MAC

  1. MAC del cliente: ip a > link/ether 08:00:27:ab:cd:ef. En VirtualBox (Red > Avanzadas) sale sin dos puntos: 080027ABCDEF; en dhcpd.Conf hay que escribirla con :.

  2. Añade el bloque host (puede ir fuera de la subnet).

  3. sudo dhcpd -t y sudo systemctl restart isc-dhcp-server.

  4. Cliente: sudo dhclient -r enp0s3 y sudo dhclient -v enp0s3.

  5. Comprueba IP .195, router 10.12.0.1 y DNS 4.4.4.4, y mira el lease.

# ———- CASO b) = caso a) + esto ———-

host cliente1 {

    hardware ethernet 08:00:27:AB:CD:EF;      # la MAC REAL de tu cliente

    fixed-address 10.12.X.195;

    option routers 10.12.0.1;                 # pisa el router de la subnet

    option domain-name-servers 4.4.4.4;       # pisa el DNS global

}

CONSEJO  ·  Reserva dentro del rango

En la práctica la .195 está dentro del rango 100-220 y funciona. Lo recomendable en una red real es reservar fuera del rango dinámico para evitar conflictos.

3.11 b.2 · Parámetros arriba o dentro de subnet { }

Dónde está

Alcance

Ejemplo

Global (fuera de bloques)

Todas las subnets, hosts, etc.

default-lease-time, option domain-name-servers 8.8.8.8;

Dentro de subnet

Solo esa subred (y lo anidado: pool, host dentro)

option routers 10.10.0.1;

Dentro de host

Solo esa máquina

option routers 10.12.0.1;

Lo más específico gana. Con DNS global 8.8.8.8 y el host con 4.4.4.4, ese host recibe 4.4.4.4 y el resto 8.8.8.8. Libro: «los parámetros globales afectan a todas las declaraciones; los locales solo a la declaración donde se definen y a las subordinadas».

3.12 b.3 · Explicar los mensajes de sudo dhclient -v

Listening on LPF/enp0s3/08:00:27:ab:cd:ef

Sending on   LPF/enp0s3/08:00:27:ab:cd:ef

Sending on   Socket/fallback

DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 3 (xid=0x5d7a1c2e)

DHCPOFFER of 10.12.X.195 from 10.12.X.10

DHCPREQUEST for 10.12.X.195 on enp0s3 to 255.255.255.255 port 67 (xid=0x2e1c7a5d)

DHCPACK of 10.12.X.195 from 10.12.X.10 (xid=0x5d7a1c2e)

bound to 10.12.X.195 — renewal in 43200 seconds.

Línea

Significado

Listening / Sending on LPF/enp0s3/MAC

El cliente abre un socket LPF (Linux Packet Filter, a nivel de enlace) en la tarjeta, porque aún no tiene IP para usar sockets normales

Sending on Socket/fallback

Socket normal de reserva (versiones antiguas: Socket/fallback/fallback-net)

DHCPDISCOVER … 255.255.255.255 port 67 interval 3

Broadcast al puerto 67 de los servidores; si nadie contesta, reintenta en 3 s (el intervalo va creciendo)

DHCPOFFER of IP from servidor

Un servidor ofrece esa IP

DHCPREQUEST for IP …

El cliente acepta la oferta (sigue siendo broadcast)

DHCPACK of IP from servidor

El servidor confirma

bound to IP — renewal in N seconds

Configura la IP y renovará en N s (T1, ≈ 50 % del lease)

3.13 Capturas / evidencias que conviene tener

☐  Instalación del paquete terminando bien.

☐  ip a del servidor con IP estática.

☐  /etc/default/isc-dhcp-server con la interfaz.

☐  dhcpd.Conf completo (nano o gedit).

☐  dhcpd -t sin errores y systemctl status en active (running).

☐  ps -A | grep dhcpd (nombre del proceso).

☐  Cliente con IP, router y DNS (gráfico o comandos).

☐  dhcpd.Leases con la IP y la MAC del cliente.

☐  Caso b: MAC del cliente, bloque host, cliente con .195, 4.4.4.4 y 10.12.0.1, y el lease.

3.14 Problemas típicos

Síntoma

Causa probable

Solución

restart falla (failed)

Error de sintaxis (;, { }) o tarjeta sin subnet

sudo dhcpd -t; journalctl -u isc-dhcp-server -e

Log: «No subnet declaration for enp0s3» o «Not configured to listen on any interfaces»

La IP del servidor no cae en ninguna subnet

Corrige la IP estática o la subnet

Cliente con 169.254.X.X

No alcanza al servidor: redes internas con nombre distinto, servicio parado, cable desconectado

Mismo nombre de red interna, status del servicio, «Cable conectado» marcado

IP de otra red (10.0.2.15, 192.168.1.X…)

Adaptador en NAT o puente: contesta otro DHCP

Red interna en ambas VM

El cliente conserva la IP vieja

No hizo release; sigue vigente su concesión

dhclient -r y dhclient -v, o desconectar/conectar red

La reserva no se aplica

MAC mal escrita, fixed-address fuera de la subred, no reiniciaste

Compara con ip a, revisa la IP, restart

El DNS «no cambia»

Mirabas /etc/resolv.Conf (127.0.0.53)

resolvectl status

Permission denied al editar

Falta sudo

sudo nano …

Dos servidores en la misma red

Pueden dar la misma IP: no se comunican entre sí

Rangos distintos o un solo servidor activo

4. Ubuntu · Práctica 2: group, dos tarjetas, shared-network, class y pool

4.1 group: agrupar y compartir parámetros

group { … } agrupa declaraciones (host, subnet, shared-network) para aplicarles los mismos parámetros sin repetirlos. Sirve para equipos con carácterísticas parecidas: impresoras, servidores, cámaras IP, teléfonos VoIP, PC de un aula… Si cambias el DNS, lo cambias una sola vez.

group impresoras {

    option routers 10.12.X.1;                 # compartido por todos los de dentro

    option domain-name-servers 8.8.8.8;

    default-lease-time 3600;

    host hp-secretaria {

        hardware ethernet 08:00:27:11:11:11;

        fixed-address 10.12.X.201;

    }

    host epson-aula {

        hardware ethernet 08:00:27:22:22:22;

        fixed-address 10.12.X.202;

    }

}

Parámetros definidos dentro del group afectan solo a lo que contiene; un parámetro propio de un host interior lo sobrescribe.

4.2 Servidor con 2 tarjetas: dos redes independientes (sin shared-network)

Servidor con dos tarjetas: cada una en una red interna distinta.

Figura 3. Servidor con dos tarjetas: cada una en una red interna distinta.

  1. Apaga el servidor. VirtualBox > Configuración > Red: Adaptador 1 en Red interna intnet; Adaptador 2 > Habilitar > Red interna intnet2.

  2. Arranca y da IP estática a la 2ª tarjeta: 192.168.X.10 / 255.255.255.0 (Configuración > Red > la segunda conexión cableada > IPv4 Manual, o netplan con enp0s8).

  3. Indica las dos tarjetas: INTERFACESv4=»enp0s3 enp0s8″.

  4. Añade la segunda subnet y comenta la reserva de la .195.

  5. sudo dhcpd -t y sudo systemctl restart isc-dhcp-server.

  6. En VirtualBox cambia la red del cliente a intnet2, renueva y comprueba. Al terminar, devuélvelo a intnet.

authoritative;

default-lease-time 86400;

max-lease-time 259200;

# —– Red 1: intnet (enp0s3) —–

subnet 10.12.X.0 netmask 255.255.255.0 {

    range 10.12.X.100 10.12.X.220;

    option routers 10.10.0.1;

    option domain-name-servers 8.8.8.8;

}

# —– Red 2: intnet2 (enp0s8) —–

subnet 192.168.X.0 netmask 255.255.255.0 {

    range 192.168.X.100 192.168.X.200;

    option routers 192.168.1.1;

    option domain-name-servers 4.4.4.4;

}

# reserva anulada para ver el reparto normal

#host cliente1 {

#    hardware ethernet 08:00:27:AB:CD:EF;

#    fixed-address 10.12.X.195;

#}

Por qué dos tarjetas: el servidor solo puede atender redes a las que está conectado. Responde por la tarjeta por la que le llega el DISCOVER y da una IP de la subred de esa tarjeta. El cliente en intnet2 recibe 192.168.X.100-200, DNS 4.4.4.4 y router 192.168.1.1.

4.3 shared-network: varias subredes en el mismo segmento

Una shared-network avisa al servidor de que varias subredes comparten el mismo segmento físico (misma tarjeta, mismo cable). Se usa cuando se agotan las direcciones de un sitio y se añade otra subred por el mismo cable y el mismo router. El servidor puede dar al cliente una IP de cualquiera de las subredes incluidas.

  • Los parámetros definidos dentro de la shared-network afectan a todas sus subnets, salvo que una subnet ponga otro valor.

  • El nombre aparece en los logs: que sea significativo (no distingue mayúsculas).

  • Diferencia con el apartado 4.2: allí cada tarjeta es una red independiente; aquí todas son la misma red repartida en varias subredes.

authoritative;

shared-network aula {

    default-lease-time 86400;              # compartidos por las dos subnets

    max-lease-time 259200;

    option domain-name-servers 8.8.8.8;

    subnet 10.12.X.0 netmask 255.255.255.0 {

        range 10.12.X.100 10.12.X.220;

        option routers 10.10.0.1;

    }

    subnet 192.168.X.0 netmask 255.255.255.0 {

        range 192.168.X.100 192.168.X.200;

        option routers 192.168.1.1;

    }

}

host cliente1 {                            # la reserva de antes, descomentada

    hardware ethernet 08:00:27:AB:CD:EF;

    fixed-address 10.12.X.195;

}

COMPRUEBA  ·  Qué comprobar y explicar

Reinicia, renueva el cliente y mira qué IP, router y DNS recibe. Con shared-network puede recibir una IP de cualquiera de las dos subredes (normalmente empieza por el primer rango declarado): las dos son válidas para ese segmento. Explícalo con tus palabras.

4.4 class y pool: repartir según quién eres

  • class «nombre» { match if condición; }: define una clase. Un cliente pertenece a ella si cumple la condición (se evalúa con datos del paquete: user-class, vendor-class, host-name, MAC…).

  • pool { range …; allow/deny members of «clase»; }: trozo de direcciones con reglas de acceso. Va dentro de subnet.

  • allow members of «x»: solo los de la clase x pueden usar ese pool. Deny members of «x»: todos menos la clase x.

  • Resumen: la class es «quién eres» (etiqueta); el pool es «qué direcciones» y a qué clases se les permite. Se necesitan las dos piezas.

  • Dentro de un pool puedes poner también option routers, option domain-name-servers, tiempos de lease…

TRAMPA  ·  No mezcles allow y deny en el mismo pool

Su comportamiento confunde incluso a administradores. Usa solo allow o solo deny en cada pool (se pueden poner varios deny).

Enunciado de la práctica: clases info1 e info2 con user-class; pool 100-130 solo info1 (router 10.12.X.1, DNS 8.8.8.8); pool 131-160 para todos menos info2 (router 10.12.X.4, DNS 4.4.4.4).

class «info1» {

    match if option user-class = «info1»;

}

class «info2» {

    match if option user-class = «info2»;

}

subnet 10.12.X.0 netmask 255.255.255.0 {

    # POOL 1: solo info1

    pool {

        allow members of «info1»;

        range 10.12.X.100 10.12.X.130;

        option routers 10.12.X.1;

        option domain-name-servers 8.8.8.8;

    }

    # POOL 2: todos menos info2

    pool {

        deny members of «info2»;

        deny members of «info1»;        # opcional: obliga a info1 a quedarse en el pool 1

        range 10.12.X.131 10.12.X.160;

        option routers 10.12.X.4;

        option domain-name-servers 4.4.4.4;

    }

}

En el cliente (/etc/dhcp/dhclient.Conf), añade la línea y luego sudo dhclient -r enp0s3 y sudo dhclient -v enp0s3:

send user-class «info1»;

Cliente se identifica como

Pool 1 (100-130, solo info1)

Pool 2 (131-160, todos menos info2)

Resultado

info1

Sí

No (si añadiste deny info1)

IP 100-130, router .1, DNS 8.8.8.8

info2

No

No (denegado)

No recibe IP: el servidor no ofrece nada y el cliente repite DISCOVER

info3 (o sin clase)

No

Sí

IP 131-160, router .4, DNS 4.4.4.4

TRAMPA  ·  Si info1 no está denegado en el pool 2

Puede acabar con una IP del pool 2 (p. Ej. La .140). Si quieres obligarlo al pool 1, añade deny members of «info1»; en el pool 2. Y recuerda comentar la reserva .195 del cliente, o siempre recibirá esa IP y no verás los pools.

Otras formas de definir una clase (match)

Identifica por

Condición

user-class

match if option user-class = «info1»;

vendor-class-identifier (prefijo)

match if substring(option vendor-class-identifier, 0, 4) = «info»;

Nombre del equipo

match if option host-name = «pc-profe»;

MAC exacta

match if substring(hardware, 1, 6) = 08:00:27:ab:cd:ef;

Fabricante de la tarjeta (OUI)

match if substring(hardware, 1, 3) = 08:00:27;

4.5 Etiquetar al cliente: user-class y tus propias etiquetas

El cliente puede enviar campos al servidor con send …; en dhclient.Conf. Tú asignas un valor y el servidor lo usa en match.

Opción

Cód.

Función

En dhclient.Conf

user-class

77

Etiqueta de grupo que pone el usuario/administrador

send user-class «info1»;

vendor-class-identifier

60

Identifica fabricante, SO o tipo de dispositivo

send vendor-class-identifier «info1»;

dhcp-client-identifier

61

Identificador único del cliente (por defecto tipo + MAC)

send dhcp-client-identifier «pc01»;

host-name

12

Nombre del equipo

send host-name «pc01»;

dhcp-parameter-request-list

55

Lista de opciones que el cliente pide

la línea request …;

dhcp-lease-time

51

Lease que el cliente solicita

send dhcp-lease-time 3600;

dhcp-requested-address

50

IP concreta que quiere recuperar

send dhcp-requested-address 10.12.X.150;

Tu propia etiqueta aula (práctica 2, apartado 8)

Hay que definirla en el servidor y en cada cliente, con el mismo código y antes de usarla. Los códigos 224-254 son de uso privado.

Servidor (arriba del todo en dhcpd.Conf):

option aula code 224 = text;

class «info1» { match if option aula = «info1»; }

class «info2» { match if option aula = «info2»; }

# …Y los mismos subnet/pool del apartado 4.4

Cliente (/etc/dhcp/dhclient.Conf):

option aula code 224 = text;

send aula «info1»;

Reinicia el servidor, haz release/renew en el cliente y prueba al menos dos valores (info1 e info3).

TRAMPA  ·  Fallos típicos con la etiqueta propia

Definirla solo en un lado; usar códigos distintos; olvidar el ;; usarla en match antes de definirla; no reiniciar el servidor tras editar.

4.6 unknown-clients y known-clients

  • Cliente conocido: su MAC o identificador aparece en una declaración host del servidor (aunque no tenga fixed-address). Desconocido: no aparece en ninguna.

  • deny unknown-clients; (en el subnet o global): solo reciben IP los equipos con host. Sirve para redes controladas. Allow unknown-clients; es el comportamiento por defecto.

  • En un pool se usa como permiso:

subnet 10.12.X.0 netmask 255.255.255.0 {

    pool {                                  # solo equipos con host declarado

        allow known-clients;

        range 10.12.X.50 10.12.X.99;

    }

    pool {                                  # el resto

        allow unknown-clients;

        range 10.12.X.100 10.12.X.220;

    }

}

En Windows no existe esa palabra; el equivalente son las directivas con condición de MAC o el filtrado de direcciones.

5. Windows Server · Práctica 3: ámbito, modificaciones y reserva

5.1 Datos del enunciado

Qué

Valores

Servidor

IP estática 10.12.X.10, máscara 255.0.0.0, puerta 10.10.0.1, DNS 8.8.8.8

Ámbito inicial

10.12.X.0 / 255.255.255.0 · rango 10.12.X.120 a 10.12.X.220 · router 10.12.0.1 · DNS 8.8.8.8 · dominio acabado en .Local · lease 1 día

Cambios posteriores

rango 120 a 225 · lease 2 días · DNS 10.12.X.1 · router 10.12.X.4

Reserva

MAC del cliente > 10.12.X.195 · router 10.12.X.10 · DNS 8.8.8.8

No necesitas Internet. Las dos VM van en Red interna (mismo nombre).

5.2 Preparar el servidor

  1. VirtualBox: Red interna intnet en servidor y cliente.

  2. IP estática del servidor: ncpa.Cpl > Ethernet > Propiedades > Protocolo de Internet versión 4 > Usar la siguiente dirección IP: 10.12.X.10, 255.0.0.0, puerta 10.10.0.1, DNS 8.8.8.8.

  3. Si es un clon, cambia el nombre del equipo (sysdm.Cpl) para que no coincida con el otro servidor.

5.3 Instalar el rol Servidor DHCP

  1. Administrador del servidor > Administrar > Agregar roles y carácterísticas.

  2. Siguiente hasta Roles de servidor > marca Servidor DHCP > Agregar carácterísticas > Siguiente… > Instalar.

  3. Al terminar, bandera amarilla de notificaciones > Completar la configuración de DHCP > Siguiente > Autorización: sin dominio elige Omitir la autorización de AD > Confirmar > Cerrar.

  4. Herramientas > DHCP.

PowerShell equivalente: Install-WindowsFeature DHCP -IncludeManagementTools. Haz captura donde se vea la instalación.

5.4 Crear el ámbito con el asistente (caso a)

IPv4 > clic derecho > Ámbito nuevo…

Página del asistente

Qué escribes

Nombre del ámbito

Aula-X (la descripción es opcional)

Intervalo de direcciones IP

Inicio 10.12.X.120, Fin 10.12.X.220, longitud 24 / máscara 255.255.255.0

Exclusiones y retraso

Nada (opcional: excluir IP fijas)

Duración de la concesión

Días 1, horas 0, minutos 0

Configurar opciones DHCP

«Sí, deseo configurar estas opciones ahora»

Enrutador (puerta de enlace)

10.12.0.1 > Agregar

Nombre de dominio y servidores DNS

Dominio primario: algo que acabe en .Local (p. Ej. Aula.Local); servidor DNS 8.8.8.8 > Agregar

Servidores WINS

Nada

Activar ámbito

«Sí, deseo activar este ámbito ahora»

NOTA  ·  Si el asistente te pide el DNS al principio

Es la misma información: DNS primario 8.8.8.8 y alternativo vacío. Si avisa de que no puede validar el DNS (no hay Internet), continúa.

Dentro del ámbito verás: Grupo de direcciones, Concesiones de direcciones, Reservas, Opciones de ámbito, Directivas.

5.5 Modificar el ámbito sin borrarlo

Lo piden: no puedes rehacer el ámbito con el asistente cada vez.

Cambio

Dónde

Cómo

Rango 120 a 225

Ámbito > clic derecho > Propiedades > pestaña General

«Dirección IP final» = 10.12.X.225 > Aplicar

Lease 2 días

El mismo cuadro

«Duración de la concesión»: Limitada a 2 días, 0 h, 0 min > Aceptar

DNS 10.12.X.1

Ámbito > Opciones de ámbito > doble clic en 006 Servidores DNS

Quita 8.8.8.8, escribe 10.12.X.1 > Agregar > Aceptar

Router 10.12.X.4

Opciones de ámbito > 003 Enrutador

Quita 10.12.0.1, agrega 10.12.X.4 > Aceptar

Para ver los cambios en el cliente hace falta release/renew: las concesiones ya entregadas conservan lo antiguo hasta renovar. Si quieres excluir direcciones: Grupo de direcciones > clic derecho > Nuevo intervalo de exclusión.

5.6 ¿Dónde guarda Windows las concesiones?

  • Visible: Ámbito > Concesiones de direcciones (IP, nombre del cliente, vencimiento, tipo, ID único = MAC).

  • En disco: C:\Windows\System32\dhcp\ > dhcp.Mdb (base de datos), con copia automática en \backup (cada 60 min). El registro de actividad está en DhcpSrvLog-<día>.Log.

  • Equivalente en Ubuntu: /var/lib/dhcp/dhcpd.Leases (texto plano).

5.7 Arrancar, parar y reiniciar el servicio

Método

Cómo

Consola DHCP

Clic derecho en el servidor > Todas las tareas > Iniciar / Detener / Pausar / Reanudar / Reiniciar

Servicios

services.Msc > Servidor DHCP > clic derecho > Iniciar / Detener / Reiniciar

CMD (administrador)

net stop dhcpserver y net start dhcpserver

PowerShell

Restart-Service dhcpserver · Get-Service dhcpserver

Comprueba que el estado es En ejecución. Con el servicio parado, los clientes no obtienen ni renuevan IP.

5.8 Reserva (caso b)

  1. MAC del cliente: Windows ipconfig /all > Dirección física (08-00-27-…); Ubuntu ip a.

  2. Servidor: Ámbito > Reservas > clic derecho > Reserva nueva… Nombre cliente1, IP 10.12.X.195, MAC sin guiones (080027ABCDEF), tipos admitidos: Ambos > Agregar > Cerrar.

  3. Clic derecho en la reserva > Configurar opciones… > marca 003 Enrutador = 10.12.X.10 > Agregar; marca 006 Servidores DNS = 8.8.8.8 > Agregar > Aceptar.

  4. Cliente: Windows ipconfig /release y ipconfig /renew; Linux sudo dhclient -r enp0s3 y sudo dhclient -v enp0s3.

  5. Comprueba con ipconfig /all: IP .195, puerta .10, DNS 8.8.8.8. En el servidor, Concesiones: aparece la .195 marcada como reserva activa.

5.9 Opciones de servidor frente a opciones de ámbito

Nivel

A quién afecta

Cuándo usarlo

Opciones de servidor

Todos los ámbitos de ese servidor

Valores comunes (DNS, nombre de dominio)

Opciones de ámbito

Solo ese ámbito

Valores propios de la subred (el router siempre aquí)

Opciones de reserva

Solo ese cliente

Excepciones

Gana el más específico: reserva > clase/directiva > ámbito > servidor. Ejemplo: DNS de servidor 8.8.8.8 y DNS de ámbito 10.12.X.1: los clientes del ámbito reciben 10.12.X.1; otro ámbito sin DNS propio recibe 8.8.8.8. En Ubuntu equivale a global, subnet y host (apartado 3.11).

5.10 Comprobar desde el cliente

Sistema

Pedir IP nueva

Ver el resultado

Windows

ipconfig /release y ipconfig /renew

ipconfig /all: DHCP habilitado, Servidor DHCP, concesión obtenida y vence, puerta de enlace, servidores DNS

Linux

sudo dhclient -r enp0s3 y sudo dhclient -v enp0s3

ip a, ip route, resolvectl status

Pantallas que conviene guardar: el cliente con su IP, y las Concesiones de direcciones donde el servidor anota esa IP.

5.11 Problemas típicos en Windows

Síntoma

Qué mirar

Icono del ámbito con flecha roja hacia abajo

Está desactivado: clic derecho > Activar

Cliente con 169.254.X.X

No llega al servidor: red interna distinta, servicio parado, ámbito inactivo o rango agotado

Cambié opciones y el cliente sigue igual

Falta ipconfig /release y /renew; o hay una opción de ámbito que pisa la de servidor

La reserva no funciona

MAC mal escrita, IP fuera del rango del ámbito, o el cliente conserva su concesión

Aviso de DNS «no se puede validar»

Normal sin Internet: acepta

El servidor tiene IP dinámica

Ponle IP estática: el servidor DHCP siempre con IP fija

«Servidor DHCP no autorizado»

Solo con Active Directory: clic derecho en el servidor > Autorizar

6. Windows Server · Práctica 4: failover (y class ID opcional)

6.1 Qué es y qué modos hay

El DHCP failover (Windows Server 2012 en adelante) hace que dos servidores compartan la información de un mismo ámbito (replican las concesiones) para que el servicio no se caiga.

Modo

Cómo funciona

Parámetros

Hot standby (activo/pasivo)

Un servidor atiende todo; el otro espera. Si el activo cae, el standby da IP nuevas con la reserva de direcciones

Reserva: 5 % por defecto

Load balance (activo/activo)

Los dos atienden a la vez, 50-50 por defecto. El reparto es por cliente (según su MAC)

Porcentaje local/partner

Conceptos comunes:

  • MCLT (Máximum Client Lead Time, 1 h por defecto): margen máximo en que un servidor puede alargar una concesión más allá de lo que conoce su partner.

  • Intervalo de cambio de estado (opcional, desactivado por defecto): tiempo tras el que pasa automáticamente de «Comunicación interrumpida» a «Partner down» y el que sigue vivo asume todo el ámbito.

  • Secreto compartido: contraseña para autenticar los mensajes entre los dos servidores. Puerto TCP 647.

6.2 Requisitos previos

☐  Dos Windows Server con IP estática en la misma red interna (p. Ej. 10.12.X.10 y 10.12.X.11) y ping entre ellos.

☐  Nombre de equipo distinto en cada uno (son clones: cámbialo en sysdm.Cpl) y hora parecida.

☐  Rol DHCP instalado en los dos.

☐  En el principal: ámbito creado, activo y con sus opciones.

☐  En el partner: el ámbito NO debe existir (el asistente lo copia; si ya existe, bórralo antes).

☐  Cuenta de administrador válida en ambos (al ser clones, la contraseña de Administrator suele ser la misma).

☐  Firewall: TCP 647 abierto (el rol suele abrirlo). Si no conecta, prueba a desactivar el firewall en el laboratorio.

☐  Un cliente en la misma red interna.

6.3 Configurar el failover (en el servidor principal)

  1. Consola DHCP > IPv4 > clic derecho en el ámbito > Configurar conmutación por error… (Configure Failover).

  2. Seleccionar ámbitos: marca 10.12.X.0 > Siguiente.

  3. Servidor asociado: IP o nombre del 2º servidor > Siguiente. Si no lo encuentra, añádelo antes a la consola (clic derecho en DHCP > Agregar servidor).

  4. Nueva relación: nombre (Aula-failover), MCLT 1 h y modo. En Hot standby: rol del servidor asociado = «En espera (Standby)» y direcciones reservadas = 5 %. En Load balance: porcentaje local 50 % / asociado 50 %.

  5. Marca Habilitar autenticación de mensajes y escribe un secreto (p. Ej. Clave123).

  6. Siguiente > Finalizar: todos los pasos deben salir con éxito > Cerrar.

COMPRUEBA  ·  Verifica

En el 2º servidor (F5) aparece ya el ámbito 10.12.X.0 con sus opciones y reservas. En cualquiera: clic derecho en el ámbito o IPv4 > Propiedades > pestaña Conmutación por error: modo, servidor asociado y estado Normal.

6.4 Probar que funciona

Hot standby

  1. Cliente: ipconfig /release y ipconfig /renew. Responde el servidor activo; mira ipconfig /all > Servidor DHCP. La concesión aparece también en el standby (replicada).

  2. Para el activo (net stop dhcpserver o apaga la VM).

  3. Cliente: ipconfig /release y ipconfig /renew: ahora «Servidor DHCP» es la IP del standby. Una IP nueva sale de la reserva del 5 %; si renueva la misma, es porque el standby ya conocía su concesión.

  4. Arranca de nuevo el activo y comprueba que el estado vuelve a Normal.

Load balance 50-50

  1. Cliente: pide IP y mira qué servidor lo atendíó (ipconfig /all). Con un único cliente responderá siempre el mismo, porque el reparto depende de la MAC.

  2. Para ese servidor y renueva: ahora lo atiende el otro.

  3. Con varios clientes (o cambiando la MAC) verás el reparto entre ambos.

NOTA  ·  Estado «Comunicación interrumpida»

Mientras el partner no responde, el servidor vivo da concesiones cortas (duración MCLT) y solo asume todo el ámbito al pasar a «Partner down» (manual o por el intervalo de cambio de estado). Para una demo, activa ese intervalo con un valor pequeño.

6.5 Eliminar el failover

  1. Consola DHCP > IPv4 (o el ámbito) > clic derecho > Desconfigurar conmutación por error… > selecciona los ámbitos > confirma.

  2. Si la relación sigue apareciendo en IPv4 > Propiedades > Conmutación por error, bórrala: PowerShell Remové-DhcpServerv4Failover -Name «Aula-failover».

  3. Revisa qué ámbitos quedan en cada servidor y no dejes activos los dos con el mismo rango.

6.6 PowerShell (opcional)

# Load balance 50-50 (se ejecuta en el principal)

Add-DhcpServerv4Failover -Name «Aula-failover» -PartnerServer SRV2 -ScopeId 10.12.X.0 -LoadBalancePercent 50 -SharedSecret «Clave123»

# Hot standby: el local es Activo y el partner queda en espera

Add-DhcpServerv4Failover -Name «Aula-hs» -PartnerServer SRV2 -ScopeId 10.12.X.0 -ServerRole Active -ReservePercent 5 -SharedSecret «Clave123»

Get-DhcpServerv4Failover                           # ver relaciones

Remové-DhcpServerv4Failover -Name «Aula-failover»  # eliminar

6.7 (Opcional) Class ID y políticas en Windows

Equivale a class + pool de ISC. Sustituye la reserva .195 si la tienes, o no verás los rangos.

  1. Clases de usuario: IPv4 > clic derecho > Definir clases de usuario… > Agregar: nombre info1, y en ID escribe info1 en la columna ASCII. Repite con info2.

  2. Directiva del pool de info1: Ámbito > Directivas > clic derecho > Nueva directiva: nombre Pool-info1 > Agregar condición: criterio Clase de usuario, operador Es igual a, valor info1 > intervalo de IP 120 a 149 > opciones 003 = 10.10.0.1 y 006 = 8.8.8.8.

  3. Directiva de todos menos info2: nombre Pool-no-info2 > condición Clase de usuario No es igual a info2 > intervalo 150 a 169 > opciones 003 = 10.10.0.4 y 006 = 4.4.4.4.

  4. Pon Pool-info1 el primero en el orden de procesamiento.

  5. Cliente Windows: ipconfig /setclassid «Ethernet» info1, luego ipconfig /release y /renew. Comprobar: ipconfig /showclassid «Ethernet». Quitar la clase: ipconfig /setclassid «Ethernet». Cliente Ubuntu: send user-class «info1»;.

Cliente

Resultado esperado

info1

IP 120-149 con router 10.10.0.1 y DNS 8.8.8.8

info3

IP 150-169 con router 10.10.0.4 y DNS 4.4.4.4

Sin clase

Debería caer en 150-169 si «No es igual a» se cumple al no haber clase; compruébalo, si no recibirá del resto del ámbito

info2

Ni 120-149 ni 150-169: recibe del resto del ámbito (170-225) con las opciones del ámbito

NOTA  ·  Diferencia con ISC

En Windows, un cliente que no encaja en ninguna directiva con rango recibe del resto del ámbito, de modo que info2 sí obtiene IP (en ISC se queda sin ninguna). Los rangos de directivas no pueden solaparse.

6.8 Equivalencias ISC (Ubuntu) y Windows

Concepto

ISC dhcpd (Ubuntu)

Windows

Ámbito

subnet + range

Scope

Reserva

host { hardware ethernet; fixed-address; }

Reservation

Opciones globales

fuera de los bloques

Opciones de servidor

Opciones de red

dentro de subnet

Opciones de ámbito

Opciones de equipo

dentro de host

Opciones de reserva

Tiempo de concesión

default-lease-time / max-lease-time

Duración de la concesión (única)

Clase

class + match

Clase de usuario/fabricante

Pool con permisos

pool + allow/deny members of

Directiva (condición + intervalo)

Concesiones

dhcpd.Leases

Concesiones de direcciones

Renovar en cliente

dhclient -r y dhclient -v

ipconfig /release y /renew

7. Banco de ejercicios tipo examen (enunciados)

Hazlos a mano, en papel o en el editor sin copiar nada, y cronometrados. Después pruébalos en las VM y solo entonces mira las soluciones (sección 8). Cuenta cada fallo de sintaxis como fallo real.

Bloque A · Ubuntu (escribir configuraciones)

Ejercicio 1 · Ámbito básico (10 min)

Servidor Ubuntu con IP 10.12.X.10. Ámbito 10.12.X.0/24, rango .100 a .220, router 10.10.0.1, DNS 8.8.8.8, lease por defecto 1 día y máximo 3 días. Escribe: (a) dhcpd.Conf; (b) fichero y línea que indican la tarjeta; (c) comandos para validar, reiniciar y comprobar el proceso; (d) cómo compruebas en el cliente IP, router y DNS; (e) cómo ves las concesiones.

Ejercicio 2 · Otros números (10 min)

Red 192.168.50.0/24 (el servidor es 192.168.50.1). Rango .20 a .80, router 192.168.50.254, DNS 1.1.1.1 y 9.9.9.9, dominio empresa.Local, broadcast explícito, lease por defecto 2 horas y máximo 8 horas. Escribe dhcpd.Conf.

Ejercicio 3 · Reservas y control de clientes (10 min)

Sobre el ejercicio 2: (a) el PC del profesor, MAC 08:00:27:11:22:33, siempre .10 con router 192.168.50.1 y DNS 4.4.4.4; (b) la impresora, MAC 08:00:27:44:55:66, siempre .11 y nombre impresora; (c) haz que solo reciban IP los equipos con reserva; (d) variante: los equipos conocidos (con host, sin IP fija) usan .20-.40 y los desconocidos .50-.80.

Ejercicio 4 · Dos tarjetas (12 min)

El servidor tiene enp0s3 (10.12.X.10/24) y enp0s8 (192.168.X.10/24). Red 1: rango 100-220, router 10.10.0.1, DNS 8.8.8.8. Red 2: rango 100-200, router 192.168.1.1, DNS 4.4.4.4. Leases 1 día y 3 días. Escribe dhcpd.Conf, el fichero de interfaces y explica qué recibe un cliente según la red interna donde lo conectes en VirtualBox.

Ejercicio 5 · shared-network (10 min)

Con las dos subnets del ejercicio 4 crea una shared-network planta1 con leases y DNS compartidos, y conserva la reserva .195 para la MAC 08:00:27:AA:BB:CC. ¿En qué se diferencia del ejercicio 4?

Ejercicio 6 · group (8 min)

Crea un group llamado servidores con tres hosts: web (MAC 08:00:27:00:00:01, 10.12.X.21), bbdd (…:02, .22), backup (…:03, .23). Todos con router 10.12.X.1, DNS 8.8.8.8 y lease de 12 horas.

Ejercicio 7 · class y pool con user-class (15 min)

Clases info1 e info2 con user-class. Pool 100-130 solo para info1 (router 10.12.X.1, DNS 8.8.8.8). Pool 131-160 para todos menos info2 (router 10.12.X.4, DNS 4.4.4.4), de forma que info1 nunca use este pool. Indica la línea del cliente y qué recibe info1, info2 e info3.

Ejercicio 8 · Etiqueta propia aula (12 min)

Repite el 7 pero con una opción propia aula (código 224). Escribe qué va en el servidor y qué en el cliente.

Ejercicio 9 · Encuentra los 8 errores (10 min)

default-lease-time 86400

max-lease-time = 259200;

option domain-name-server 8.8.8.8;

subnet 10.12.7.0 netmask 255.255.255.0

    range 10.12.7.100 10.12.7.220;

    option router 10.10.0.1;

}

host pc-profe {

    hardware ethernet 08:00:27:11:22;

    fixed-address 10.12.9.50;

    domain-name-servers 4.4.4.4;

}

Ejercicio 10 · Leer un fichero de leases (8 min)

lease 10.12.7.101 {

  starts 3 2026/10/28 09:15:02;

  ends 3 2026/10/28 11:15:02;

  cltt 3 2026/10/28 09:15:02;

  binding state active;

  next binding state free;

  hardware ethernet 08:00:27:5e:a1:7c;

  client-hostname «ubuntu-cliente»;

}

lease 10.12.7.102 {

  starts 3 2026/10/28 08:00:10;

  ends 3 2026/10/28 10:00:10;

  tstp 3 2026/10/28 10:00:10;

  cltt 3 2026/10/28 08:00:10;

  binding state free;

  hardware ethernet 08:00:27:99:00:fe;

}

(a) ¿Qué equipos tienen IP vigente? (b) ¿Cuánto dura el lease? (c) ¿Qué es el «3» y en qué zona horaria están las horas? (d) ¿Qué significa binding state free en la .102?

Ejercicio 11 · Interpretar dhclient (8 min)

Sending on LPF/eth0/00:0c:29:3e:b7:06

Sending on Socket/fallback/fallback-net

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7

DHCPOFFER from 192.168.0.1

DHCPREQUEST on eth0 to 255.255.255.255 port 67

DHCPACK from 192.168.0.1

bound to 192.168.0.20 — renewal in 300 seconds.

(a) Explica cada línea. (b) ¿Qué lease tiene el servidor? (c) ¿Y si no contesta ningún servidor?

Bloque B · Windows Server

Ejercicio 12 · Ámbito y modificaciones (15 min)

Crea el ámbito 10.12.X.0/24, rango 120-220, router 10.12.0.1, DNS 8.8.8.8, dominio .Local, lease 1 día. Después, sin borrarlo: rango 120-225, lease 2 días, DNS 10.12.X.1, router 10.12.X.4. Indica dónde se hace cada paso, dónde se ven las concesiones y dónde las guarda Windows.

Ejercicio 13 · Reserva (10 min)

Reserva la 10.12.X.195 para tu cliente con router 10.12.X.10 y DNS 8.8.8.8. Explica cómo obtienes la MAC, dónde se crea, dónde se ponen router y DNS, cómo renuevas el cliente y qué compruebas.

Ejercicio 14 · Failover (15 min)

Con dos servidores y un cliente: hot standby, comprueba que funciona; después 50-50, comprueba; elimina el failover. Indica requisitos, pasos, qué es el 5 % y el MCLT, y cómo pruebas cada modo.

Ejercicio 15 · (Opcional) Class ID (15 min)

Crea las clases info1 e info2 y dos directivas: 120-149 solo info1 (router 10.10.0.1, DNS 8.8.8.8) y 150-169 todos menos info2 (router 10.10.0.4, DNS 4.4.4.4). Indica cómo se identifica el cliente y qué esperas de info1, info2, info3 y sin clase.

Bloque C · Diagnóstico

Ejercicio 16 · «No funciona, ¿por qué?» (10 min)

Para cada caso da la causa más probable y cómo lo compruebas: (a) el cliente tiene 169.254.X.X; (b) tras instalar, systemctl restart falla y el log dice «No subnet declaration for enp0s3»; (c) el cliente recibe IP, pero no la de la reserva; (d) el cliente recibe DNS distinto al configurado; (e) hay dos servidores DHCP con el mismo rango en la red; (f) en Windows el ámbito tiene una flecha roja.

8. Soluciones del banco de ejercicios

NOTA  ·  Sección para consultar DESPUÉS

Si has mirado esto antes de intentarlo, el ejercicio ya no te sirve de entrenamiento. Compara y anota tus fallos de sintaxis.

Ejercicio 1

(a) dhcpd.Conf, (b) /etc/default/isc-dhcp-server:

authoritative;

default-lease-time 86400;

max-lease-time 259200;

subnet 10.12.X.0 netmask 255.255.255.0 {

    range 10.12.X.100 10.12.X.220;

    option routers 10.10.0.1;

    option domain-name-servers 8.8.8.8;

}

INTERFACESv4=»enp0s3″

(c) sudo dhcpd -t · sudo systemctl restart isc-dhcp-server · sudo systemctl status isc-dhcp-server · ps -A | grep dhcpd.

(d) sudo dhclient -r enp0s3, sudo dhclient -v enp0s3, luego ip a, ip route (default vía) y resolvectl status (DNS).

(e) sudo cat /var/lib/dhcp/dhcpd.Leases.

Ejercicio 2

Tiempos: 2 h = 7200 s; 8 h = 28800 s.

authoritative;

default-lease-time 7200;

max-lease-time 28800;

option domain-name «empresa.Local»;

subnet 192.168.50.0 netmask 255.255.255.0 {

    range 192.168.50.20 192.168.50.80;

    option routers 192.168.50.254;

    option domain-name-servers 1.1.1.1, 9.9.9.9;

    option broadcast-address 192.168.50.255;

}

Ejercicio 3

(a) y (b), fuera o dentro de la subnet:

host pc-profe {

    hardware ethernet 08:00:27:11:22:33;

    fixed-address 192.168.50.10;

    option routers 192.168.50.1;

    option domain-name-servers 4.4.4.4;

}

host impresora {

    hardware ethernet 08:00:27:44:55:66;

    fixed-address 192.168.50.11;

    option host-name «impresora»;

}

(c) Dentro de la subnet añade deny unknown-clients;: solo los equipos con host recibirán IP.

(d) Quita el range suelto y usa dos pools; los hosts quedan sin fixed-address (solo hardware ethernet):

subnet 192.168.50.0 netmask 255.255.255.0 {

    option routers 192.168.50.254;

    pool {

        allow known-clients;

        range 192.168.50.20 192.168.50.40;

    }

    pool {

        allow unknown-clients;

        range 192.168.50.50 192.168.50.80;

    }

}

Ejercicio 4

INTERFACESv4=»enp0s3 enp0s8″

authoritative;

default-lease-time 86400;

max-lease-time 259200;

subnet 10.12.X.0 netmask 255.255.255.0 {

    range 10.12.X.100 10.12.X.220;

    option routers 10.10.0.1;

    option domain-name-servers 8.8.8.8;

}

subnet 192.168.X.0 netmask 255.255.255.0 {

    range 192.168.X.100 192.168.X.200;

    option routers 192.168.1.1;

    option domain-name-servers 4.4.4.4;

}

El cliente en intnet recibe 10.12.X.100-220 con router 10.10.0.1 y DNS 8.8.8.8; en intnet2 recibe 192.168.X.100-200 con router 192.168.1.1 y DNS 4.4.4.4. El servidor contesta por la tarjeta por la que llega el DISCOVER. Requisito: la 2ª tarjeta con IP estática en 192.168.X.0/24.

Ejercicio 5

shared-network planta1 {

    default-lease-time 86400;

    max-lease-time 259200;

    option domain-name-servers 8.8.8.8;

    subnet 10.12.X.0 netmask 255.255.255.0 {

        range 10.12.X.100 10.12.X.220;

        option routers 10.10.0.1;

    }

    subnet 192.168.X.0 netmask 255.255.255.0 {

        range 192.168.X.100 192.168.X.200;

        option routers 192.168.1.1;

    }

}

host cliente1 {

    hardware ethernet 08:00:27:AA:BB:CC;

    fixed-address 10.12.X.195;

}

Diferencia: en el 4 son dos redes independientes (el DNS y el router son distintos por red y cada cliente recibe de su red). En el 5 se declara que son el mismo segmento: lease y DNS se comparten, y el servidor puede dar una IP de cualquiera de las dos subredes.

Ejercicio 6

group servidores {

    option routers 10.12.X.1;

    option domain-name-servers 8.8.8.8;

    default-lease-time 43200;               # 12 h

    max-lease-time 43200;

    host web    { hardware ethernet 08:00:27:00:00:01; fixed-address 10.12.X.21; }

    host bbdd   { hardware ethernet 08:00:27:00:00:02; fixed-address 10.12.X.22; }

    host backup { hardware ethernet 08:00:27:00:00:03; fixed-address 10.12.X.23; }

}

Ejercicio 7

class «info1» { match if option user-class = «info1»; }

class «info2» { match if option user-class = «info2»; }

subnet 10.12.X.0 netmask 255.255.255.0 {

    pool {

        allow members of «info1»;

        range 10.12.X.100 10.12.X.130;

        option routers 10.12.X.1;

        option domain-name-servers 8.8.8.8;

    }

    pool {

        deny members of «info2»;

        deny members of «info1»;

        range 10.12.X.131 10.12.X.160;

        option routers 10.12.X.4;

        option domain-name-servers 4.4.4.4;

    }

}

Cliente: send user-class «info1»; en /etc/dhcp/dhclient.Conf y release/renew.

Resultado: info1 > 100-130, router .1, DNS 8.8.8.8 · info2 > no recibe IP · info3 > 131-160, router .4, DNS 4.4.4.4.

Ejercicio 8

Servidor (al principio del fichero) y cliente (dhclient.Conf); los pools son los del ejercicio 7:

option aula code 224 = text;

class «info1» { match if option aula = «info1»; }

class «info2» { match if option aula = «info2»; }

option aula code 224 = text;

send aula «info1»;

Ejercicio 9

Nº

Error

Corrección

1

Falta ; tras default-lease-time 86400

default-lease-time 86400;

2

max-lease-time = 259200; no lleva =

max-lease-time 259200;

3

domain-name-server

domain-name-servers (plural)

4

subnet … Netmask … Sin {

añadir {

5

option router

option routers

6

MAC con solo 5 bytes

08:00:27:11:22:33 (6 bytes)

7

fixed-address 10.12.9.50 fuera de la subnet 10.12.7.0/24

una IP de la red, p. Ej. 10.12.7.50

8

domain-name-servers 4.4.4.4; sin option

option domain-name-servers 4.4.4.4;

Ejercicio 10

(a) Solo la 10.12.7.101 (active). (b) 2 horas (09:15:02 a 11:15:02). (c) El 3 es el día de la semana (0 = domingo): miércoles, 28/10/2026; las horas están en UTC. (d) La concesión de la .102 ya expiró y la dirección está libre para otros; el registro queda como historial.

Ejercicio 11

(a) Sending on LPF/eth0/MAC: socket de bajo nivel (Linux Packet Filter) por eth0 con esa MAC. Socket/fallback/fallback-net: socket normal de reserva (versiones antiguas). DHCPDISCOVER … Port 67 interval 7: broadcast a los servidores y reintento en 7 s si nadie contesta. DHCPOFFER from 192.168.0.1: ese servidor ofrece IP. DHCPREQUEST … 255.255.255.255: acepta la oferta, en broadcast. DHCPACK from 192.168.0.1: confirmación. Bound to 192.168.0.20 — renewal in 300 seconds: configura la IP y renovará en 300 s.

(b) Renovación al 50 %: lease de 600 s (10 min).

(c) Reintenta con intervalos crecientes; si nadie contesta, el sistema se auto-configura con una IP 169.254.X.X (IPv4 link-local).

Ejercicio 12

  1. Ámbito nuevo (asistente): nombre, inicio 120 / fin 220 / máscara 255.255.255.0, lease 1 día, router 10.12.0.1, dominio aula.Local, DNS 8.8.8.8, activar.

  2. Cambios: Ámbito > Propiedades > General: fin 225 y lease 2 días. Opciones de ámbito > 006 = 10.12.X.1 y 003 = 10.12.X.4.

  3. Concesiones: Ámbito > Concesiones de direcciones. En disco: C:\Windows\System32\dhcp\dhcp.Mdb.

  4. Cliente: ipconfig /release, /renew, /all.

Ejercicio 13

MAC: ipconfig /all (o ip a). Servidor: Ámbito > Reservas > Reserva nueva (nombre, 10.12.X.195, MAC sin guiones). Clic derecho en la reserva > Configurar opciones: 003 = 10.12.X.10 y 006 = 8.8.8.8. Cliente: release y renew. Comprueba IP .195, puerta .10, DNS 8.8.8.8 y la reserva activa en Concesiones.

Ejercicio 14

Requisitos: dos servidores con IP estática y nombre distinto, rol DHCP en ambos, ámbito activo solo en el principal, secreto compartido, TCP 647. Pasos: sección 6.3 (primero hot standby con partner en espera y 5 %; comprueba con el activo parado; elimina; repite con load balance 50-50). El 5 % es la parte del ámbito que el standby reserva para dar IP nuevas si el activo cae. MCLT: margen máximo con el que un servidor alarga una concesión sobre lo que conoce su partner (1 h por defecto). Eliminar: Desconfigurar conmutación por error y revisar ámbitos.

Ejercicio 15

Pasos de la sección 6.7. Cliente: ipconfig /setclassid «Ethernet» info1 y release/renew. Esperado: info1 en 120-149, info3 en 150-169, info2 del resto del ámbito, sin clase se comprueba.

Ejercicio 16

Caso

Causa más probable

Cómo lo compruebas

a

El cliente no alcanza al servidor: red interna distinta, servicio parado, cable desconectado, ámbito inactivo

Mismo nombre de red interna; systemctl status; ámbito activo

b

La IP de la tarjeta del servidor no cae en ninguna subnet declarada

ip a y comparar con la subnet; arreglar IP o subnet

c

MAC mal escrita o fixed-address fuera de la subred; el cliente conserva su concesión

Comparar MAC con ip a; dhclient -r y dhclient -v

d

Parámetro definido en otro nivel que lo pisa (host sobre subnet, ámbito sobre servidor), o mirar resolv.Conf

resolvectl status; revisar niveles

e

Los servidores no se comunican y pueden dar la misma IP: IP duplicadas

Rangos distintos o uno solo activo

f

El ámbito está desactivado

Clic derecho > Activar

9. Preguntas cortas de investigación con respuesta modelo

Son las preguntas de tu hoja «El Servei DHCP – INVESTIGACIO». Apréndelas en 2 o 3 frases.

Pregunta

Respuesta modelo

¿Qué es DHCP y qué puertos usa?

Protocolo cliente/servidor (IETF, 1993) que da automáticamente IP, máscara, puerta de enlace, DNS y otros parámetros. Usa UDP: el servidor el 67 y el cliente el 68

Tipos de asignación

Manual/estática con reserva: siempre la misma IP a una MAC. Automática: IP libre la primera vez y se mantiene para siempre. Dinámica: IP temporal con lease, puede cambiar. La habitual es la dinámica

Automática frente a dinámica

En la automática el cliente conserva la IP indefinidamente; en la dinámica la concesión caduca y hay que renovarla, así se reutilizan las direcciones

¿Se puede reservar una IP?

Sí: asignación estática con reserva. En ISC: host nombre { hardware ethernet MAC; fixed-address IP; }. En Windows: Reservas

¿Qué pasa al arrancar un cliente?

Sin IP, envía DHCPDISCOVER en broadcast y sigue el proceso DORA

¿Cómo descubre los servidores?

Con el DISCOVER por broadcast (255.255.255.255:67); los servidores activos responden con OFFER

Si hay varios servidores

Acepta, normalmente, la primera oferta que recibe y manda un REQUEST en broadcast indicando el servidor elegido; los demás retiran su oferta

Lease, renewal y rebinding time

Lease: duración de la concesión. Renewal (T1): 50 %, renueva con su servidor. Rebinding (T2): 87,5 %, pide a cualquier servidor

¿Qué es el ámbito?

Rango de IP más sus opciones que el servidor reparte en una subred. Ej.: subnet 10.12.X.0 netmask 255.255.255.0 { range …; }

Servidor autoritativo

El que se considera oficial de la red: si un cliente pide una IP que no es válida aquí, responde DHCPNAK. Evita que servidores de usuarios (no administradores) se usen como si fueran auténticos. En ISC: authoritative;

Dos servidores DHCP activos

Los servidores no se comunican entre sí. Si reparten el mismo rango pueden dar la misma IP: duplicados. Deben tener rangos distintos y configuraciones coherentes

¿Decirle al cliente a qué servidor hacer caso?

Sí: en dhclient.Conf, reject IP; rechaza ofertas de un servidor; en el servidor no deseado se puede filtrar por MAC o deny unknown-clients; en redes grandes, DHCP snooping en el switch

request de dhclient.Conf

subnet-mask máscara · broadcast-address dirección de difusión · time-offset desfase horario · routers puerta de enlace · domain-name dominio · domain-name-servers DNS · host-name nombre del equipo · netbios-name-servers servidores WINS · netbios-scope ámbito NetBIOS. Otros valores interesantes: ntp-servers, interface-mtu, domain-search

Sin servidor DHCP: ¿cómo consigue IP el cliente?

  • IPv4: tras reintentar el DISCOVER, el sistema se auto-asigna una dirección link-local 169.254.0.0/16 (máscara 255.255.0.0): APIPA en Windows y avahi-autoipd/IPv4LL en Linux (RFC 3927). Comprueba con ARP que nadie la usa y, si está en uso, elige otra. No hay puerta de enlace ni DNS: solo comunica con equipos de su mismo segmento. (El libro cita también el RFC 1918, que en realidad define las direcciones privadas.)

  • IPv6: el equipo se forma solo una dirección link-local fe80::/10. Para una dirección global usa SLAAC: pide un Router Advertisement al router y construye la dirección con el prefijo. Con DHCPv6 (UDP 546 cliente, 547 servidor) recibe también DNS y direcciones (modo con o sin estado). Sin router ni DHCPv6 solo tiene fe80:: y comunica en su enlace.

Parámetros que puede obtener un cliente (más de 15)

Mira el anexo A: máscara, router, DNS, nombre de host, dominio, broadcast, MTU, NTP, WINS, tipo de nodo NetBIOS, lease, T1, T2, servidor TFTP, fichero de arranque, rutas estáticas…

10. Checklist final y anexos

10.1 Checklist de la víspera

Marca solo lo que puedas hacer sin mirar nada.

☐  Escribo de memoria un dhcpd.Conf con subnet, range, router, DNS y leases en segundos.

☐  Sé qué fichero indica la tarjeta (/etc/default/isc-dhcp-server) y la sintaxis INTERFACESv4.

☐  Valido con dhcpd -t, reinicio y compruebo con systemctl status y ps -A | grep dhcpd.

☐  Obtengo la MAC del cliente y escribo un host con fixed-address, router y DNS propios.

☐  Hago release/renew en el cliente y compruebo IP, router y DNS.

☐  Sé leer dhcpd.Leases y explicar cada línea de dhclient -v.

☐  Añado la 2ª tarjeta en VirtualBox, le doy IP estática y una 2ª subnet.

☐  Escribo una shared-network y un group.

☐  Escribo clases y pools con allow/deny members of y sé qué recibe info1, info2 e info3.

☐  Defino una opción propia (option aula code 224 = text;) en servidor y cliente.

☐  Windows: instalo el rol, creo el ámbito con el asistente y lo modifico (rango, lease, DNS, router).

☐  Windows: creo la reserva con opciones propias y sé dónde se ven las concesiones y dónde las guarda.

☐  Windows: configuro hot standby y 50-50, los pruebo y los elimino.

☐  Explico la diferencia entre opciones de servidor, ámbito y reserva (y global, subnet, host en ISC).

☐  Sé qué hacer si no arranca: dhcpd -t y el log.

Anexo A · Opciones DHCP más importantes (RFC 2132)

Cód.

Nombre

Función

1

subnet-mask

Máscara de subred

2

time-offset

Desfase horario respecto a UTC

3

routers

Puerta(s) de enlace

4

time-servers

Servidores de hora

6

domain-name-servers

Servidores DNS

12

host-name

Nombre del equipo

15

domain-name

Nombre de dominio

26

interface-mtu

MTU de la interfaz

28

broadcast-address

Dirección de difusión

33

static-routes

Rutas estáticas

42

ntp-servers

Servidores NTP

44

netbios-name-servers

Servidores WINS

46

netbios-node-type

Tipo de nodo NetBIOS

47

netbios-scope

Ámbito NetBIOS

50

dhcp-requested-address

IP que pide el cliente

51

dhcp-lease-time

Duración de la concesión

53

dhcp-message-type

Tipo de mensaje (Discover, Offer…)

54

dhcp-server-identifier

IP del servidor que responde

55

dhcp-parameter-request-list

Opciones que pide el cliente

58

dhcp-renewal-time

T1 (renovación)

59

dhcp-rebinding-time

T2 (reenlace)

60

vendor-class-identifier

Fabricante o tipo de cliente

61

dhcp-client-identifier

Identificador único del cliente

66

tftp-server-name

Servidor TFTP (arranque en red)

67

bootfile-name

Fichero de arranque

77

user-class

Clase definida por el usuario

119

domain-search

Dominios de búsqueda

121

classless-static-route

Rutas estáticas sin clase

Anexo B · Directivas útiles de dhclient.Conf

Directiva

Para qué sirve

request a, b, c;

Opciones que el cliente pide al servidor

send host-name «pc1»;

Envía ese nombre al servidor

send user-class «info1»;

Envía la clase de usuario

send dhcp-client-identifier «x»;

Cambia el identificador del cliente

supersede domain-name-servers 8.8.8.8;

Ignora el DNS del servidor y usa el tuyo

prepend / append

Añade valores antes / después de los del servidor

default …;

Valor a usar si el servidor no da ninguno

require …;

No acepta ofertas que no incluyan esa opción

reject IP;

Rechaza las ofertas de ese servidor

timeout 60; / retry 60;

Tiempo de espera y de reintento

Anexo C · Chuleta de dhcpd.Conf

Elemento

Función

subnet … Netmask … { }

Ámbito

range A B;

Rango dinámico

host nombre { }

Reserva o ajustes para un equipo

hardware ethernet MAC;

MAC del host

fixed-address IP;

IP fija reservada

group { }

Agrupa hosts o subnets con parámetros comunes

shared-network nombre { }

Subredes en el mismo segmento

pool { }

Rango con reglas de acceso

class «x» { match if …; }

Clase de clientes

allow/deny members of «x»;

Permiso por clase en un pool

allow/deny unknown-clients;

Clientes sin host

authoritative;

Servidor oficial: responde NAK

default-lease-time / max-lease-time

Lease por defecto y máximo (segundos)

option routers / domain-name-servers / domain-name / subnet-mask / broadcast-address

Opciones DHCP más usadas

option nombre code N = text;

Define una opción propia

log-facility local7;

Canal de log

Anexo D · Glosario català-español (los enunciados están en catalán)

Català

Español

Nota

àmbit

ámbito

scope

concessió, temps de concessió

concesión, tiempo de concesión

lease

reserva

reserva

host con fixed-address

porta d’enllaç

puerta de enlace

router, gateway

xarxa interna / mode pont

red interna / modo puente

VirtualBox

targeta de xarxa

tarjeta de red

enp0s3

pantallassos

capturas de pantalla

evidencias del manual

arrancar, parar, reiniciar

iniciar, detener, reiniciar

el servei = el servicio

dimoni

demonio, proceso

dhcpd

arxiu de leases

fichero de concesiones

dhcpd.Leases

servidor autoritatiu

servidor autoritativo

authoritative;

rang d’ip’s

rango de IP

range

comentar la reserva

poner # delante

no borrarla

enganxar el client a la xarxa

conectar el cliente a la red

cambiar red interna