Redes: Conceptos básicos de Subnetting y DHCP

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, siendoylos 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:
rangeno puede incluir la IP del propio router. SiRouter1tiene la primera IP válida de la subred (10.80.0.1) y elrangeempezara ahí, el servidor podría llegar a ofrecer esa misma IP a un cliente, duplicándola. Elrangesiempre empieza enIP_del_router + 1.subnetdescribe 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ónhost, 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! :-)
