Subnetting: cómo calcular subredes IPv4 paso a paso
· 13 min de lectura
Aprende a dividir redes IPv4 con subnetting: clases históricas, notación CIDR, cálculo de dirección de red, broadcast y hosts útiles, VLSM, tablas de referencia de /24 a /30 y una introducción a IPv6.
Cada vez que lanzas un escaneo con Nmap, configuras un túnel SSH o te mueves entre segmentos de red en un laboratorio de pivoting, estás trabajando con direcciones IP y rangos. Saber leer una dirección como 192.168.1.64/26 y calcular de memoria cuántos hosts caben, dónde empieza la red y dónde termina no es un lujo académico: es una habilidad que necesitas a diario en pentesting, administración de sistemas y defensa de redes.
El subnetting es el proceso de dividir una red IP en partes más pequeñas llamadas subredes. Permite aislar departamentos, limitar el tráfico de broadcast, crear zonas de seguridad y asignar rangos exactos a cada segmento. Es uno de los fundamentos más prácticos de las redes y aparece constantemente en certificaciones como CompTIA Network+, CCNA, CEH y OSCP.
En esta lección vas a entender cómo funciona el direccionamiento IPv4, qué fueron las clases históricas, cómo las reemplazó CIDR, cómo se calcula una subred paso a paso, qué es VLSM, una tabla de referencia rápida para los prefijos más comunes y una introducción a IPv6.
Practica subnetting y escaneo de redes solo en tus propios equipos o en entornos autorizados, como los laboratorios de whoami-labs. Escanear o enumerar redes ajenas sin permiso es ilegal en la mayoría de países.
Qué es el subnetting#
Una dirección IPv4 tiene 32 bits divididos en cuatro octetos separados por puntos, como 192.168.1.10. Sin subnetting, todas las máquinas de una red compartirían el mismo dominio de broadcast: cada paquete de difusión llegaría a todas, generando congestión y sin ningún aislamiento de seguridad.
El subnetting resuelve esto dividiendo el espacio de direcciones en bloques más pequeños. Cada subred tiene su propia dirección de red, su rango de hosts útiles y su dirección de broadcast. Un router separa las subredes y controla qué tráfico pasa de una a otra.

La idea central es sencilla: los primeros N bits de la dirección identifican la red y los bits restantes identifican el host dentro de esa red. La máscara de subred marca dónde termina la parte de red y empieza la parte de host. Cuantos más bits reserves para la red, más subredes puedes crear, pero menos hosts caben en cada una.
Por qué es importante para la ciberseguridad#
El subnetting no es solo un tema de examen de redes. Tiene aplicaciones directas en seguridad:
- Segmentación de red: aislar servidores críticos, bases de datos y servicios internos en subredes distintas limita el movimiento lateral de un atacante que compromete una máquina.
- Reglas de firewall: los firewalls trabajan con rangos CIDR. Si no sabes calcular subredes, no puedes escribir reglas precisas.
- Pivoting en pentesting: cuando descubres una interfaz interna en una máquina comprometida, necesitas calcular el rango de la subred interna para escanearla.
- Laboratorios y CTF: muchos retos te dan una red como
10.10.10.0/24y necesitas saber que las IPs van de.1a.254. - Análisis de tráfico: en Wireshark, entender las subredes te permite filtrar tráfico por segmentos y detectar comunicaciones anómalas entre redes que no deberían hablar.
Direcciones IPv4 y clases históricas#
Antes de CIDR, las redes se organizaban en clases según el primer octeto. Este sistema, definido en el RFC 791 (1981), era rígido e ineficiente, pero sigue apareciendo en certificaciones y documentación:
| Clase | Primer octeto | Máscara por defecto | Redes | Hosts por red |
|---|---|---|---|---|
| A | 1 a 126 | 255.0.0.0 (/8) | 126 | 16.777.214 |
| B | 128 a 191 | 255.255.0.0 (/16) | 16.384 | 65.534 |
| C | 192 a 223 | 255.255.255.0 (/24) | 2.097.152 | 254 |
| D | 224 a 239 | Multicast | Sin asignación individual | Sin asignación individual |
| E | 240 a 255 | Experimental | Reservado | Reservado |
El problema era obvio: si una empresa necesitaba 300 hosts, una clase C (254 hosts) se quedaba corta y una clase B (65.534) desperdiciaba miles de direcciones. En 1993, el RFC 1519 introdujo CIDR para resolver este desperdicio.
Direcciones reservadas#
Algunos rangos son especiales y no se enrutan en internet:
| Rango | Uso |
|---|---|
| 10.0.0.0/8 | Redes privadas (clase A) |
| 172.16.0.0/12 | Redes privadas (clase B) |
| 192.168.0.0/16 | Redes privadas (clase C) |
| 127.0.0.0/8 | Loopback (localhost) |
| 169.254.0.0/16 | Link-local (APIPA) |
Estos rangos privados, definidos en el RFC 1918, son los que ves en laboratorios, redes domésticas y redes corporativas internas.
CIDR y máscaras de subred#
CIDR (Classless Inter-Domain Routing) elimina las clases y usa un prefijo numérico que indica cuántos bits son la parte de red. La notación es dirección/prefijo, como 192.168.1.0/24.
La máscara de subred es la representación en decimal de esos bits. Para un /24, los primeros 24 bits son unos y los últimos 8 son ceros:
Binario: 11111111.11111111.11111111.00000000
Decimal: 255 .255 .255 .0
Prefijo: /24
Cada bit adicional que añades al prefijo duplica el número de subredes pero reduce a la mitad los hosts disponibles:
/24 → 256 direcciones → 254 hosts útiles → 1 subred
/25 → 128 direcciones → 126 hosts útiles → 2 subredes
/26 → 64 direcciones → 62 hosts útiles → 4 subredes
/27 → 32 direcciones → 30 hosts útiles → 8 subredes
/28 → 16 direcciones → 14 hosts útiles → 16 subredes
La fórmula es directa: hosts útiles = 2^(32 - prefijo) - 2. Se restan dos porque la primera dirección es la de red y la última es la de broadcast.
Cómo se calcula una subred#
El cálculo de subnetting sigue siempre los mismos pasos. Vamos a resolverlo con el ejemplo 192.168.1.64/26:
Paso 1: determinar el tamaño del bloque#
El prefijo /26 deja 32 - 26 = 6 bits para hosts. El tamaño del bloque es 2^6 = 64 direcciones.
Paso 2: encontrar la dirección de red#
La dirección de red es el múltiplo de 64 más cercano por debajo (o igual) a la dirección dada. Como 64 es exactamente un múltiplo de 64, la dirección de red es 192.168.1.64.
Paso 3: encontrar la dirección de broadcast#
Es la dirección de red más el tamaño del bloque menos uno: 64 + 64 - 1 = 127. La dirección de broadcast es 192.168.1.127.
Paso 4: determinar el rango de hosts útiles#
El primer host es la dirección de red + 1: 192.168.1.65. El último host es broadcast - 1: 192.168.1.126. Hosts útiles: 62.
Red: 192.168.1.64/26
Máscara: 255.255.255.192
Broadcast: 192.168.1.127
Primer host: 192.168.1.65
Último host: 192.168.1.126
Hosts útiles: 62
El método mental rápido#
Para no necesitar calculadora, memoriza los tamaños de bloque del último octeto:
| Prefijo | Bits de host | Tamaño del bloque | Máscara (último octeto) |
|---|---|---|---|
| /24 | 8 | 256 | .0 |
| /25 | 7 | 128 | .128 |
| /26 | 6 | 64 | .192 |
| /27 | 5 | 32 | .224 |
| /28 | 4 | 16 | .240 |
| /29 | 3 | 8 | .248 |
| /30 | 2 | 4 | .252 |
Con esta tabla, dado cualquier /26 solo tienes que ver que el bloque es 64. Si la IP es 192.168.1.100, divides 100/64 = 1 (entero), la red empieza en 1 × 64 = 64, y el broadcast es 64 + 64 - 1 = 127.
Uso práctico paso a paso#
Veamos cómo se aplica el subnetting en escenarios reales de ciberseguridad.
Paso 1: identificar la subred de un laboratorio#
Te dan la IP 10.10.10.42/24 en un laboratorio. Calcula el rango:
Prefijo: /24 → bloque = 256
Red: 10.10.10.0
Broadcast: 10.10.10.255
Rango útil: 10.10.10.1 — 10.10.10.254
Hosts: 254
Para escanear toda la red con Nmap:
nmap -sn 10.10.10.0/24
Paso 2: calcular una subred más pequeña#
Descubres una interfaz interna con la IP 172.16.5.33/28. Calcula el rango:
Prefijo: /28 → bloque = 16
33 / 16 = 2 (entero) → red empieza en 2 × 16 = 32
Red: 172.16.5.32
Broadcast: 172.16.5.47 (32 + 16 - 1)
Rango útil: 172.16.5.33 — 172.16.5.46
Hosts: 14
Escaneas solo esa subred:
nmap -sn 172.16.5.32/28
Paso 3: diseñar subredes para segmentar una red#
Tienes la red 192.168.10.0/24 y necesitas cuatro segmentos para: servidores, empleados, invitados y gestión. Con /26 obtienes exactamente cuatro subredes de 62 hosts cada una:
Servidores: 192.168.10.0/26 (.1 — .62)
Empleados: 192.168.10.64/26 (.65 — .126)
Invitados: 192.168.10.128/26 (.129 — .190)
Gestión: 192.168.10.192/26 (.193 — .254)
Tabla de referencia rápida#
Esta tabla cubre los prefijos más utilizados en el último octeto. Memoriza al menos /24 a /30:
| Prefijo | Máscara | Direcciones totales | Hosts útiles | Subredes en un /24 |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 | 1 |
| /25 | 255.255.255.128 | 128 | 126 | 2 |
| /26 | 255.255.255.192 | 64 | 62 | 4 |
| /27 | 255.255.255.224 | 32 | 30 | 8 |
| /28 | 255.255.255.240 | 16 | 14 | 16 |
| /29 | 255.255.255.248 | 8 | 6 | 32 |
| /30 | 255.255.255.252 | 4 | 2 | 64 |
| /31 | 255.255.255.254 | 2 | 2 (punto a punto) | 128 |
| /32 | 255.255.255.255 | 1 | 1 (host único) | 256 |
Los /30 se usan tradicionalmente en enlaces punto a punto entre routers (un host en cada extremo). El /31, definido en el RFC 3021, también se usa para enlaces punto a punto sin desperdiciar direcciones de red y broadcast.
VLSM: subnetting de tamaño variable#
Con subnetting clásico, todas las subredes tienen el mismo tamaño. VLSM (Variable Length Subnet Masking) permite usar prefijos distintos en cada subred, asignando el tamaño justo que cada segmento necesita.
Ejemplo: tienes 192.168.1.0/24 y necesitas:
- Un segmento de 100 hosts (oficina)
- Un segmento de 50 hosts (laboratorio)
- Un segmento de 10 hosts (servidores)
- Dos enlaces punto a punto (2 hosts cada uno)
Con VLSM, asignas desde el bloque más grande al más pequeño:
Oficina: 192.168.1.0/25 (126 hosts, cubre los 100)
Laboratorio: 192.168.1.128/26 (62 hosts, cubre los 50)
Servidores: 192.168.1.192/28 (14 hosts, cubre los 10)
Enlace 1: 192.168.1.208/30 (2 hosts)
Enlace 2: 192.168.1.212/30 (2 hosts)
Libre: 192.168.1.216 — 192.168.1.255 (queda para futuro)
La clave de VLSM es no solapar rangos: cada subred empieza donde termina la anterior. Siempre empieza asignando el bloque más grande para evitar huecos complicados.
IPv6: una introducción#
IPv4 tiene un espacio de 2^32 (unos 4.300 millones) de direcciones, que ya se agotaron. IPv6 amplía eso a 2^128 direcciones, un número tan grande que cada grano de arena del planeta podría tener miles de millones de direcciones.
Una dirección IPv6 tiene 128 bits escritos como ocho grupos de cuatro dígitos hexadecimales separados por dos puntos:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
Se puede abreviar eliminando ceros a la izquierda y sustituyendo grupos consecutivos de ceros con :: (una sola vez):
2001:db8:85a3::8a2e:370:7334
| Característica | IPv4 | IPv6 |
|---|---|---|
| Longitud | 32 bits | 128 bits |
| Notación | Decimal con puntos | Hexadecimal con dos puntos |
| Direcciones | Aprox. 4.300 millones | 3,4 × 10^38 |
| Broadcast | Sí | No (usa multicast) |
| Configuración | Manual o DHCP | SLAAC o DHCPv6 |
| IPsec | Opcional | Integrado en el diseño |
Para subnetting en IPv6, la práctica habitual es que cada cliente reciba un /48 o /56, y las subredes internas usen /64. La parte de host (los 64 bits inferiores) se puede generar automáticamente a partir de la dirección MAC del dispositivo (EUI-64) o de forma aleatoria.
En pentesting, IPv6 importa porque muchas redes tienen IPv6 habilitado sin configurar firewalls para él, creando un canal de comunicación que los controles de seguridad ignoran.
Buenas prácticas de diseño de redes#

- Segmenta por función: servidores, usuarios, invitados, gestión y DMZ deben estar en subredes diferentes con reglas de firewall entre ellas.
- Dimensiona con margen: si necesitas 20 hosts, usa un /27 (30 hosts) en lugar de un /28 (14). Siempre deja espacio para crecer.
- Documenta tu esquema: mantén un diagrama o tabla con cada subred, su rango, su propósito y qué VLAN le corresponde.
- Usa /30 o /31 para enlaces: los enlaces entre routers solo necesitan dos direcciones; no desperdicies un /24 en ellos.
- Filtra entre subredes: la segmentación sin firewall no sirve de nada. Configura reglas que impidan el tráfico innecesario entre segmentos.
- Revisa periódicamente: las redes crecen. Audita qué subredes están llenas, cuáles tienen espacio y si la segmentación sigue cumpliendo su propósito.
Errores comunes#
- Olvidar restar dos. El total de direcciones de un bloque incluye la de red y la de broadcast, que no se asignan a hosts. Un /26 tiene 64 direcciones pero solo 62 hosts útiles.
- Confundir máscara con wildcard. Una máscara 255.255.255.192 no es lo mismo que la wildcard 0.0.0.63 que usan las ACL de Cisco, aunque son complementarias.
- Solapar rangos en VLSM. Al asignar subredes de distinto tamaño, cada bloque debe empezar justo donde termina el anterior.
- Diseñar subredes demasiado justas. Si una subred se llena, ampliarla requiere renumerar. Es mejor empezar con algo de margen.
- Ignorar IPv6. Muchos dispositivos habilitan IPv6 por defecto. Si no lo gestionas, un atacante puede usarlo para evadir controles que solo filtran IPv4.
- No verificar con herramientas. Tras calcular a mano, confirma con
ipcalc,sipcalco el propio cálculo en Python para evitar errores:
ipcalc 192.168.1.64/26
Preguntas frecuentes#
¿Cuál es la diferencia entre una máscara y un prefijo CIDR?#
Son dos formas de expresar lo mismo. La máscara 255.255.255.0 equivale al prefijo /24: ambos indican que los primeros 24 bits son la parte de red. CIDR es más compacto y es la notación estándar en configuración de redes y firewalls modernos.
¿Por qué se restan dos hosts del total?#
Porque la primera dirección del bloque (todos los bits de host en cero) es la dirección de red y la última (todos los bits de host en uno) es la dirección de broadcast. Ninguna se asigna a un dispositivo. La excepción es /31, que por el RFC 3021 permite usar ambas direcciones en enlaces punto a punto.
¿Qué herramientas puedo usar para verificar mis cálculos?#
En Linux, ipcalc y sipcalc muestran la red, broadcast, rango y máscara de cualquier CIDR. En Python puedes usar el módulo ipaddress de la librería estándar. En Windows, la calculadora IP de SolarWinds o la propia línea de comandos con PowerShell ([System.Net.IPAddress]).
¿Necesito saber subnetting para el OSCP o el CEH?#
Sí. En el OSCP necesitas calcular rangos para pivoting y escaneo de redes internas. En el CEH aparece en preguntas teóricas y en laboratorios prácticos. Además, casi cualquier ejercicio de red te exige interpretar notación CIDR.
¿IPv6 también se subnettea?#
Sí, pero con reglas diferentes. La práctica estándar es asignar /64 a cada subred, lo que da 2^64 direcciones de host por segmento, un número tan grande que la preocupación ya no es cuántos hosts caben sino la organización lógica. El subnetting de IPv6 se centra en la porción de subred (bits 49 a 64 en una asignación /48 típica).
¿Qué pasa si calculo mal una subred en un firewall?#
Si la regla cubre un rango incorrecto, puedes bloquear tráfico legítimo o, peor, permitir acceso desde hosts que no deberían estar incluidos. Un error de un bit en la máscara puede duplicar o reducir a la mitad el rango afectado. Por eso siempre hay que verificar los cálculos antes de aplicar reglas.
Resumen#
- Una dirección IPv4 tiene 32 bits divididos en parte de red y parte de host por la máscara de subred.
- CIDR reemplazó las clases históricas y usa notación
/prefijopara indicar cuántos bits son la red. - Para calcular una subred: determina el tamaño del bloque (2 elevado a los bits de host), busca el múltiplo más cercano por debajo para la dirección de red y súmale el bloque menos uno para el broadcast.
- VLSM permite usar prefijos distintos en cada subred, asignando el tamaño justo a cada segmento.
- Memoriza los tamaños de bloque de /24 a /30 para hacer cálculos rápidos de cabeza.
- IPv6 amplía el espacio a 128 bits y suele usar /64 por subred.