03/11/2026

Redes: Conceptos básicos de Subnetting y DHCP

Esquema de ejemplo: LAN-A con DHCP (PC-A1, PC-A2) y LAN-B con IP estática (PC-B1, PC-B2), conectadas por Router1

Un bloque /24 partido en dos mitades iguales, cada una con su propia LAN (haz clic para ampliar)

En P1.6 viste el DHCP desde el lado del cliente (dhclient -v, con sus fases DISCOVER/OFFER/REQUEST/ACK), y en P1.7 aprendiste a conectar dos redes distintas con un router de dos patas. Antes de dar el siguiente paso — montar tú mismo un servidor DHCP y repartir un bloque de direcciones entre dos redes — conviene dejar claros un par de conceptos: qué es partir una red en subredes y qué aspecto tiene el DHCP visto desde el servidor.

1. El problema: un único tamaño no vale para todo

Cuando Internet era joven, las direcciones IPv4 se repartían en bloques de tamaño fijo (clase A, B o C). El problema: una red de clase C tiene 254 direcciones utilizables, de sobra para una oficina pequeña pero un derroche si solo tienes 10 equipos; una red de clase B tiene 65.534, absurdo para casi cualquier caso real.

La solución, CIDR (Classless Inter-Domain Routing), elimina esas fronteras fijas. Con CIDR puedes mover la frontera entre la parte de red y la parte de host de una dirección a mitad de un octeto, obteniendo bloques de cualquier tamaño: /23, /25, /28… Dividir un bloque de direcciones en bloques más pequeños es lo que llamamos subnetting.

2. Subnetting: “tomar” bits de la parte de host

La parte de red de un bloque no se puede tocar — si te dan 10.80.0.0/24, no puedes usar ninguna dirección fuera de ese rango. Pero la parte de host es terreno libre: puedes “tomar” bits de ahí y pasarlos a la parte de red para crear subredes.

La regla es siempre la misma:

  • Cada bit que tomas duplica el número de subredes posibles (2ˣ, siendo x los bits tomados).
  • Cada bit que tomas reduce a la mitad las direcciones que quedan en cada subred, porque hay menos bits de host.

El caso más simple de todos — el que vas a usar primero — es tomar un solo bit: eso te da exactamente dos subredes, del mismo tamaño. A eso se le llama FLSM (Fixed-Length Subnet Masking): todas las subredes resultantes tienen la misma máscara. Cuando las subredes necesitan tamaños distintos (una para 50 equipos, otra para 2) se usa VLSM, su hermano mayor — pero eso toca más adelante.

Ejemplo: partir 10.80.0.0/24 en dos mitades iguales

Tomando 1 bit de la parte de host, un /24 (256 direcciones) se convierte en dos /25 (128 direcciones cada una):

Subred Dirección de red Rango de hosts válidos Broadcast
Primera mitad 10.80.0.0/25 10.80.0.1 – 10.80.0.126 10.80.0.127
Segunda mitad 10.80.0.128/25 10.80.0.129 – 10.80.0.254 10.80.0.255

La máscara de subred /25 en decimal es 255.255.255.128 — la misma para las dos mitades, porque en FLSM todas las subredes comparten máscara. Lo único que cambia es el rango que ocupa cada una.

3. Los cinco atributos de una subred

Para cualquier subred, cinco datos quedan determinados en cuanto fijas su dirección de red y su máscara:

  • Dirección de red — la primera dirección, con la parte de host a 0. No es una IP de host: no se asigna a ninguna máquina.
  • Dirección de difusión (broadcast) — la última dirección, con la parte de host a 1. Tampoco es una IP de host.
  • Primera dirección utilizable — dirección de red + 1.
  • Última dirección utilizable — broadcast − 1.
  • Número máximo de hosts — 2ʸ − 2, siendo y los bits de host que quedan (se restan 2 porque red y broadcast no se pueden asignar).

El error más típico al calcular subredes a mano es justo ese: asignarle a una máquina la dirección de red o la de broadcast de su subred, pensando que son direcciones de host como cualquier otra.

4. DHCP, ahora desde el lado servidor

En P1.6 viste a tu VM pedir una IP por DHCP. La próxima vez vas a ofrecerla tú, montando isc-dhcp-server. La configuración mínima es una única declaración subnet en /etc/dhcp/dhcpd.conf:

subnet 10.80.0.0 netmask 255.255.255.128 {
    range 10.80.0.2 10.80.0.126;
    option routers 10.80.0.1;
}

Dos detalles que conviene tener claros antes de escribir esto de memoria:

  • range no puede incluir la IP del propio router. Si Router1 tiene la primera IP válida de la subred (10.80.0.1) y el range empezara ahí, el servidor podría llegar a ofrecer esa misma IP a un cliente, duplicándola. El range siempre empieza en IP_del_router + 1.
  • subnet describe una red entera, no un host. Por eso solo hace falta una declaración por cada subred donde quieras repartir IPs — no una por cada cliente (salvo que, más adelante, quieras reservar una IP fija por MAC con una declaración host, algo que verás como ampliación opcional).

Todo esto lo aplicas de principio a fin en la práctica P1.8: divide tu red en dos (y hazla crecer sola con DHCP) — el mismo bloque 10.80.0.0/24 del ejemplo de arriba es el que vas a partir tú mismo.

5. Para seguir practicando

El subnetting es una habilidad que se entrena, no se memoriza. Si quieres machacarlo antes de la práctica, subnetting.net genera ejercicios aleatorios gratis — unos minutos al día durante una semana son más efectivos que una sola sesión larga.

Happy subnetting! :-)