P1.8

1ASIR - Redes - Divide tu red en 2 (y hazla crecer sola con DHCP)

Práctica P1.8: divide tu red en dos (y hazla crecer sola con DHCP)

📖 Si quieres repasar la teoría antes de empezar (o te atascas en la Parte 0), tienes el resumen en Redes: Conceptos básicos de Subnetting y DHCP.

Objetivo: en P1.7 te dimos las IPs (10.50.0.0/24, 172.16.60.0/24) ya calculadas, cada una un /24 completo. Aquí las calculas tú: partes un único /24 en dos subredes iguales (el cálculo más simple que existe: cambiar la máscara una sola vez y aplicarla igual dos veces), y además montas un servidor DHCP de verdad para que una de las dos redes se configure sola — cerrando lo que P1.5 y P1.6 dejaron pendiente (viste DHCP desde el lado cliente; ahora lo montas desde el lado servidor).

💡 Por qué dos mitades iguales, y no de tamaños distintos: calcular subredes de tamaños distintos (lo que se llama VLSM) es un paso más de dificultad — primero hay que dominar el cálculo básico (qué cambia al mover la máscara) con el caso más simple: partir en partes iguales. Ese paso con tamaños distintos lo veremos en una práctica posterior (P1.10).

Nivel: medio — necesitas tener claro P1.6 (MAC/IP/ARP/DHCP) y P1.7 (enrutamiento con ip_forward). Esta práctica los combina y les añade un primer cálculo de subredes encima.

Antes de empezar: 5 VMs esta vez (una más que en P1.7). Si todavía tienes las VMs de P1.7, reutilízalas: clona PC-A en PC-A1 y PC-A2, PC-B en PC-B1 y PC-B2, y Router1 lo puedes reutilizar directamente (solo le cambiarás las IPs). Te ahorras media práctica de instalación.

⚠️ Modo de red: Red interna, como en P1.7. Ni NAT ni Puente — repasa la tabla de P1.7 si no la tienes clara. Necesitas dos “Redes internas” distintas (segA, segB), con el mismo nombre exacto en todas las VMs que comparten red.

Escenario

  • LAN-A (segA): PC-A1 y PC-A2. Reciben su IP por DHCP, servido por Router1.
  • LAN-B (segB): PC-B1 y PC-B2. IP manual y persistente (/etc/network/interfaces, como en P1.7).
  • Router1 tiene un pie en cada red, como en P1.7 — pero esta vez además hace de servidor DHCP para segA.
  • Las dos subredes son del mismo tamaño — no necesitas decidir cuál es “más grande”, solo partir el bloque en dos mitades iguales.

Parte 0: divide tu bloque en dos subredes iguales — a mano, antes de tocar una VM

Tienes un único bloque para repartir: 10.80.0.0/24.

Necesitas dos subredes separadas dentro de ese bloque (una para segA, otra para segB) — y, a diferencia de P1.7, aquí nadie te da la máscara: la calculas tú. Como las dos subredes van a tener exactamente el mismo tamaño, te basta con responder una sola pregunta — "¿qué máscara de subred parte un /24 en exactamente dos mitades iguales?" — y aplicar esa misma máscara a las dos.

Rellena esta tabla antes de seguir (las dos filas de máscara serán idénticas; el resto cambia porque cada mitad ocupa un rango distinto):

Dato Subred A (segA, primera mitad) Subred B (segB, segunda mitad)
Máscara (CIDR, ej. /25)
Máscara (decimal, ej. 255.255.255.128)
Dirección de red
Rango de hosts válidos (primera — última)
Dirección de difusión (broadcast)
IP que usará Router1 (primera IP válida)

💡 Pista, no solución: un /24 tiene 256 direcciones. Si “le quitas un bit” a la parte de host (pasas de /24 a /25), ¿en cuántos trozos lo partes, y de qué tamaño queda cada uno?

⚠️ Error típico de prácticas anteriores: la dirección de red (la primera de cada mitad) y la de broadcast (la última) no son IPs de host — no se las pongas a ninguna VM. Si tu tabla dice que PC-A1 tiene la IP de red o la de broadcast de su subred, algo se ha calculado mal.

¿Ya has rellenado la tabla? Comprueba tu resultado con la topología completa ya montada:

Esquema: LAN-A (PC-A1, PC-A2) con DHCP y LAN-B (PC-B1, PC-B2) con IP estática, unidas por Router1 con un pie en cada red

Topología con un reparto correcto de 10.80.0.0/24 — si tu tabla no coincide, revisa la Parte 0 antes de seguir (haz clic para ampliar)

Parte 1: crea las 5 VMs y sus adaptadores de red

VM Adaptador 1 Adaptador 2
PC-A1 Red interna, nombre segA —
PC-A2 Red interna, nombre segA —
PC-B1 Red interna, nombre segB —
PC-B2 Red interna, nombre segB —
Router1 Red interna, nombre segA Red interna, nombre segB

💡 RAM de cada VM: estas máquinas no necesitan entorno gráfico — instala Debian solo con el sistema base (sin escritorio). Asigna 512 MB de RAM a cada una (Configuración → Sistema → Placa base en VirtualBox): con 5 VMs mínimas de sobra te cabe en un equipo de 8 GB. ALERTA!: en los PCs ‘virtuales’ necesitas instalar el cliente DHCP:

PC-A1$ sudo apt install isc-dhcp-client

RECUERDA hacerlo en todos los PCs que van a usar DHCP en esta práctica. ¿Ya tienes claros cuales son ?

Parte 2: Subred B — IP manual y persistente (como en P1.7)

💡 Antes de copiar los comandos: enp0s3/enp0s8 son los nombres habituales en VirtualBox para el Adaptador 1 y 2, pero no están garantizados. Comprueba los tuyos con ip -br a en cada VM antes de ejecutar nada, y sustituye el nombre si no coincide.

PC-B1 y PC-B2 no tienen DHCP — les pones la IP a mano, usando tu cálculo de la Parte 0 (sustituye IP_B1, IP_B2, MASCARA_B, GW_B por tus valores calculados):

# PC-B1 — /etc/network/interfaces
auto enp0s3
iface enp0s3 inet static
    address IP_B1
    netmask MASCARA_B
    gateway GW_B
# PC-B2 — /etc/network/interfaces
auto enp0s3
iface enp0s3 inet static
    address IP_B2
    netmask MASCARA_B
    gateway GW_B
# Router1 — adaptador de segB (sin "gateway": Router1 no sale de segB, solo la conecta)
auto enp0s8
iface enp0s8 inet static
    address GW_B
    netmask MASCARA_B

Aplica con sudo systemctl restart networking (o reinicia la VM), y comprueba PC-B1 <-> PC-B2 con ping antes de seguir.

Parte 3: Subred A — Router1 como servidor DHCP

Primero, la IP de Router1 en segA (esta sí, manual — el router necesita una IP fija para poder ofrecer DHCP):

# Router1 — adaptador de segA
auto enp0s3
iface enp0s3 inet static
    address GW_A
    netmask MASCARA_A

Instala el servidor DHCP:

Router1$ sudo apt install isc-dhcp-server

Dile en qué interfaz debe escuchar (edita /etc/default/isc-dhcp-server):

INTERFACESv4="enp0s3"

Y configura una única declaración subnet en /etc/dhcp/dhcpd.conf (sustituye por tus valores calculados en la Parte 0):

subnet RED_A netmask MASCARA_A {
    range IP_INICIO_RANGO IP_FIN_RANGO;
    option routers GW_A;
}

⚠️ IP_INICIO_RANGO nunca puede ser GW_A. GW_A ya se la has asignado a Router1 a mano (párrafo anterior); el range que ofrezcas por DHCP tiene que empezar en GW_A + 1 y terminar en la última IP válida de la subred. Si el rango incluyera GW_A, el servidor podría llegar a ofrecerla a un cliente y duplicar la IP del propio router.

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

💡 Si no dice active (running): mira el motivo con journalctl -u isc-dhcp-server -n 30. Como solo vas a ofrecer DHCPv4, asegúrate de que en /etc/default/isc-dhcp-server la línea INTERFACESv6="" queda vacía (o comentada) — así el servicio no intenta arrancar también el proceso IPv6 sin tener dhcpd6.conf configurado.

Ahora, desde PC-A1 y PC-A2 (sin IP manual — déjalas en DHCP, que es el modo por defecto):

PC-A1$ sudo dhclient -v enp0s3      # DISCOVER / OFFER / REQUEST / ACK — como en P1.6
PC-A1$ ip -br a                     # confirma que te ha llegado una IP de tu rango

💡 Si no recibes nada: revisa que INTERFACESv4 apunte a la interfaz correcta, que el range esté dentro de tu subred calculada (no fuera de ella), y que PC-A1/PC-A2 estén en la misma “Red interna” segA que Router1.

Parte 4: conecta las dos subredes (ip_forward, como en P1.7)

Router1$ sysctl net.ipv4.ip_forward          # sin sudo: solo lees
Router1$ sudo sysctl -w net.ipv4.ip_forward=1  # con sudo: cambias algo del kernel

Comprueba, en los dos sentidos:

PC-A1$ ping -c3 IP_B1
PC-B1$ ping -c3 IP_A1    # IP_A1 es la que le haya tocado a PC-A1 por DHCP

Para que ip_forward sobreviva a un reinicio de Router1, descomenta en /etc/sysctl.conf:

net.ipv4.ip_forward=1
🚀 Ampliación: reserva una IP fija por MAC dentro del DHCP

Todavía no has fijado ninguna IP dentro de segA — cada vez que PC-A1 o PC-A2 renueven su lease, podrían recibir una IP distinta. Igual que P1.5 ya adelantaba (“un servicio necesita una IP que no cambie”), añade una declaración host en /etc/dhcp/dhcpd.conf para reservar siempre la misma IP a una de las dos VMs, por su MAC (consíguela con ip -br link en esa VM):

host pc-a1-fija {
    hardware ethernet AA:BB:CC:DD:EE:FF;
    fixed-address IP_FIJA_DENTRO_DEL_RANGO;
}

Reinicia isc-dhcp-server, renueva el lease en esa VM (sudo dhclient -r && sudo dhclient -v enp0s3) y comprueba que siempre le toca la misma IP, reinicio tras reinicio.

Preguntas de cierre (3-4 líneas cada una)

  • ¿Por qué no vale usar el mismo /24 para las dos subredes? ¿Qué pasaría si segA y segB se solaparan en direcciones?
  • Router1 solo tiene una declaración subnet en dhcpd.conf (la de segA). ¿Por qué no necesita otra para segB, si al final las conecta igualmente?
  • ¿Qué diferencia práctica notas entre poner la IP a mano (segB, Parte 2) y recibirla por DHCP (segA, Parte 3), el día que tengas que cambiar 20 máquinas de sitio?
  • Aquí las dos subredes tenían el mismo tamaño. ¿Qué problema crees que aparecería si segA necesitara sitio para 50 equipos y segB solo para 2? (No hace falta que lo resuelvas — solo que expliques por qué partir en mitades iguales ya no te valdría.)

Entrega

Un único PDF (practica-subnetting-dhcp-apellido.pdf) con:

  • La tabla de la Parte 0 (cálculo de subredes) completa.
  • Captura de dhclient -v recibiendo IP en PC-A1 o PC-A2.
  • Captura del ping entre segA y segB funcionando en los dos sentidos.
  • Las respuestas a las preguntas de cierre.
  • Por sFTP a nuestro servidor.

Happy hacking! :-)

RUBRICA DE CALIFICACIÓN

Criterios de contenido (100%)

Criterio Peso Qué se valora
Cálculo de subredes correcto (Parte 0) 25% Máscara correcta aplicada igual a las dos mitades · red/broadcast/rango de hosts correctos y sin solape
Subred B: IP manual y persistente 15% /etc/network/interfaces correcto en PC-B1/PC-B2/Router1 · sobrevive a un reinicio
Subred A: DHCP funcionando 25% isc-dhcp-server activo · una única subnet · PC-A1 y PC-A2 reciben IP dentro del rango calculado
Conectividad entre subredes 20% ip_forward activado y comprobado · ping funciona en ambos sentidos
Documentación y preguntas de cierre 15% Capturas pedidas presentes · respuestas propias, no copiadas de la guía

🎁 Bonus (no resta si no se hace): +10% extra por la ampliación de la reserva fija por MAC, bien comprobada (lease estable tras renovar).

Escala orientativa

  • Excelente (9-10): cálculo de subredes correcto, DHCP y configuración manual funcionando, conectividad en ambos sentidos, preguntas respondidas con criterio propio.
  • Notable (7-8.9): el cálculo de subredes es correcto pero falla el DHCP o la conectividad entre subredes, o viceversa.
  • Suficiente (5-6.9): las subredes están mal calculadas (solapan, o la máscara no es la misma en las dos) pero el resto de la práctica funciona.
  • Insuficiente (<5): no hay cálculo de subredes documentado, o ninguna de las dos subredes llega a funcionar.

“Recuerda… ¡KISS!” :-)