Conceptos básicos de subnetting y CIDR

Esta guía explica los fundamentos del protocolo IP, direccionamiento IPv4 e IPv6, y cómo realizar subnetting en ambos protocolos.

El protocolo IP

IP (Internet Protocol) es el protocolo de capa de red responsable de direccionar y enrutar paquetes entre dispositivos. Cada dispositivo en una red IP necesita una dirección única para comunicarse.

Existen dos versiones en uso:

  • IPv4: Direcciones de 32 bits. Espacio limitado a ~4.3 mil millones de direcciones.
  • IPv6: Direcciones de 128 bits. Espacio prácticamente ilimitado (~340 undecillones de direcciones).

IPv4

Estructura de una dirección IPv4

Una dirección IPv4 tiene 32 bits, representados como cuatro octetos en notación decimal separados por puntos:

192.168.1.100

En binario (32 bits):
11000000.10101000.00000001.01100100

Cada octeto representa 8 bits y puede tener un valor de 0 a 255.

Componentes de una dirección IPv4

Una dirección IP se divide en dos partes:

  • Porción de red: Identifica la red a la que pertenece el dispositivo.
  • Porción de host: Identifica el dispositivo específico dentro de esa red.

La máscara de subred determina dónde termina la porción de red y comienza la de host.

Máscara de subred

La máscara de subred es un número de 32 bits donde:

  • Los bits en 1 representan la porción de red.
  • Los bits en 0 representan la porción de host.
Dirección IP:    192.168.1.100
Máscara:         255.255.255.0

En binario:
IP:              11000000.10101000.00000001.01100100
Máscara:         11111111.11111111.11111111.00000000
                 |----- Red (24 bits) ----||- Host -|

Resultado:
Dirección de red: 192.168.1.0
Porción de host:  .100

Notación CIDR

CIDR (Classless Inter-Domain Routing) simplifica la representación de la máscara indicando el número de bits de red después de una barra:

192.168.1.0/24

El /24 indica que los primeros 24 bits son la porción de red, equivalente a la máscara 255.255.255.0.

Tabla de referencia CIDR IPv4

CIDR Máscara Direcciones totales Hosts utilizables
/8 255.0.0.0 16,777,216 16,777,214
/12 255.240.0.0 1,048,576 1,048,574
/16 255.255.0.0 65,536 65,534
/20 255.255.240.0 4,096 4,094
/21 255.255.248.0 2,048 2,046
/22 255.255.252.0 1,024 1,022
/23 255.255.254.0 512 510
/24 255.255.255.0 256 254
/25 255.255.255.128 128 126
/26 255.255.255.192 64 62
/27 255.255.255.224 32 30
/28 255.255.255.240 16 14
/29 255.255.255.248 8 6
/30 255.255.255.252 4 2
/31 255.255.255.254 2 2*
/32 255.255.255.255 1 1

/31 es un caso especial (RFC 3021) usado en enlaces punto a punto donde no se necesita dirección de red ni broadcast.

Fórmula:

Hosts utilizables = 2^(32 - prefijo) - 2

Se restan 2 porque la primera dirección es la dirección de red y la última es la dirección de broadcast.

Direcciones especiales en una subred IPv4

Tipo Descripción Ejemplo (/24)
Dirección de red Primera dirección, identifica la subred. No asignable. 192.168.1.0
Primera utilizable Primera dirección asignable a un host. 192.168.1.1
Última utilizable Última dirección asignable a un host. 192.168.1.254
Broadcast Última dirección, envía paquetes a todos los hosts de la subred. No asignable. 192.168.1.255

Rangos de direcciones IPv4 privadas

Definidos en RFC 1918, estos rangos no se enrutan en Internet y son para uso interno:

Rango CIDR Cantidad de direcciones
10.0.0.0 – 10.255.255.255 10.0.0.0/8 16,777,216
172.16.0.0 – 172.31.255.255 172.16.0.0/12 1,048,576
192.168.0.0 – 192.168.255.255 192.168.0.0/16 65,536

Otras direcciones IPv4 reservadas

Rango Propósito
0.0.0.0/8 Red actual (solo como origen)
127.0.0.0/8 Loopback (localhost)
169.254.0.0/16 Link-local (APIPA)
224.0.0.0/4 Multicast
240.0.0.0/4 Reservado para uso futuro
255.255.255.255/32 Broadcast limitado

Subnetting en IPv4

Subnetting es el proceso de dividir una red en subredes más pequeñas. Esto permite:

  • Organizar la red de forma lógica.
  • Reducir el dominio de broadcast.
  • Mejorar la seguridad al segmentar la red.

Cómo calcular subredes

Datos necesarios:

  • Red original
  • Cantidad de subredes necesarias o cantidad de hosts por subred

Método 1: Por cantidad de subredes

Ejemplo: Dividir 192.168.1.0/24 en 4 subredes.

  1. Calcular bits necesarios para las subredes:
    • 4 subredes = 2² → necesitas 2 bits
  2. Nuevo prefijo: /24 + 2 = /26
  3. Tamaño de cada subred: 2^(32-26) = 64 direcciones
  4. Hosts utilizables por subred: 64 - 2 = 62
Subred Dirección de red Rango utilizable Broadcast
1 192.168.1.0/26 192.168.1.1 – 192.168.1.62 192.168.1.63
2 192.168.1.64/26 192.168.1.65 – 192.168.1.126 192.168.1.127
3 192.168.1.128/26 192.168.1.129 – 192.168.1.190 192.168.1.191
4 192.168.1.192/26 192.168.1.193 – 192.168.1.254 192.168.1.255

Método 2: Por cantidad de hosts

Ejemplo: Necesitas subredes con al menos 50 hosts cada una.

  1. Calcular bits de host necesarios:
    • 50 hosts → necesitas 2^n ≥ 52 (50 + red + broadcast)
    • 2^6 = 64 ✓ → necesitas 6 bits de host
  2. Prefijo: 32 - 6 = /26
  3. Hosts utilizables: 64 - 2 = 62 ✓

VLSM (Variable Length Subnet Masking)

VLSM permite crear subredes de diferentes tamaños para optimizar el uso de direcciones.

Ejemplo: Tienes 10.0.0.0/24 y necesitas:

  • Red A: 100 hosts
  • Red B: 50 hosts
  • Red C: 20 hosts
  • Red D: 2 hosts (enlace punto a punto)

Paso 1: Ordenar de mayor a menor y calcular el prefijo necesario.

Red Hosts Prefijo Direcciones
A 100 /25 (2^7=128, 126 utilizables) 128
B 50 /26 (2^6=64, 62 utilizables) 64
C 20 /27 (2^5=32, 30 utilizables) 32
D 2 /30 (2^2=4, 2 utilizables) 4

Paso 2: Asignar subredes secuencialmente.

Red Subred Rango utilizable Broadcast
A 10.0.0.0/25 10.0.0.1 – 10.0.0.126 10.0.0.127
B 10.0.0.128/26 10.0.0.129 – 10.0.0.190 10.0.0.191
C 10.0.0.192/27 10.0.0.193 – 10.0.0.222 10.0.0.223
D 10.0.0.224/30 10.0.0.225 – 10.0.0.226 10.0.0.227

Direcciones restantes: 10.0.0.228 – 10.0.0.255 (disponibles para uso futuro).

IPv6

¿Por qué IPv6?

IPv4 tiene aproximadamente 4.3 mil millones de direcciones, insuficientes para la cantidad actual de dispositivos conectados. IPv6 resuelve esto con un espacio de direcciones enormemente mayor.

Estructura de una dirección IPv6

Una dirección IPv6 tiene 128 bits, representados como ocho grupos de cuatro dígitos hexadecimales separados por dos puntos:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Simplificación de direcciones IPv6

Regla 1: Omitir ceros a la izquierda en cada grupo.

2001:0db8:0001:0000:0000:0000:0000:0001
2001:db8:1:0:0:0:0:1

Regla 2: Reemplazar grupos consecutivos de ceros con :: (solo una vez por dirección).

2001:db8:1:0:0:0:0:1
2001:db8:1::1

Ejemplos:

Completa:    2001:0db8:0000:0000:0000:0000:0000:0001
Simplificada: 2001:db8::1

Completa:    fe80:0000:0000:0000:0000:0000:0000:0001
Simplificada: fe80::1

Completa:    0000:0000:0000:0000:0000:0000:0000:0001
Simplificada: ::1 (loopback)

Prefijos IPv6 comunes

Prefijo Tipo Descripción
::/128 Unspecified Dirección no especificada
::1/128 Loopback Equivalente a 127.0.0.1
fe80::/10 Link-local Comunicación en el enlace local, no enrutable
fc00::/7 Unique local (ULA) Equivalente a direcciones privadas IPv4
2000::/3 Global unicast Direcciones públicas enrutables en Internet
ff00::/8 Multicast Direcciones multicast

Diferencias clave entre IPv4 e IPv6

Característica IPv4 IPv6
Longitud 32 bits 128 bits
Notación Decimal con puntos Hexadecimal con dos puntos
Direcciones ~4.3 mil millones ~340 undecillones
Broadcast No (usa multicast)
Configuración Manual o DHCP SLAAC, DHCPv6, o manual
IPsec Opcional Integrado
Fragmentación Routers y hosts Solo el origen

Subnetting en IPv6

El subnetting en IPv6 funciona igual que en IPv4, pero con más bits disponibles.

Estructura típica de una dirección IPv6 global:

|  48 bits   | 16 bits |     64 bits      |
|  Prefijo   | Subred  | Interface ID     |
| de routing |         |                  |
  • Prefijo de routing (48 bits): Asignado por el ISP.
  • ID de subred (16 bits): Para crear hasta 65,536 subredes.
  • ID de interfaz (64 bits): Identifica el host (generado automáticamente o manual).

Cómo calcular subredes IPv6

Ejemplo: Tienes el prefijo 2001:db8:abcd::/48 y necesitas crear subredes /64.

Bits disponibles para subredes: 64 - 48 = 16 bits = 65,536 subredes posibles.

Subred Dirección
1 2001:db8:abcd:0000::/64 o 2001:db8:abcd::/64
2 2001:db8:abcd:0001::/64 o 2001:db8:abcd:1::/64
3 2001:db8:abcd:0002::/64 o 2001:db8:abcd:2::/64
... ...
65536 2001:db8:abcd:ffff::/64

Ejemplo con prefijo /56:

Tienes 2001:db8:abcd:ab00::/56 y quieres subredes /64.

Bits disponibles: 64 - 56 = 8 bits = 256 subredes.

Subred Dirección
1 2001:db8:abcd:ab00::/64
2 2001:db8:abcd:ab01::/64
3 2001:db8:abcd:ab02::/64
... ...
256 2001:db8:abcd:abff::/64

Fórmula para subredes IPv6

Cantidad de subredes = 2^(nuevo_prefijo - prefijo_original)

Ejemplo: De /48 a /64:

2^(64-48) = 2^16 = 65,536 subredes

Herramientas de cálculo

ipcalc (IPv4)

# Ubuntu/Debian
sudo apt install ipcalc

# AlmaLinux/CentOS
sudo dnf install ipcalc

# Uso
ipcalc 192.168.1.0/24

sipcalc (IPv4 e IPv6)

# Ubuntu/Debian
sudo apt install sipcalc

# AlmaLinux/CentOS
sudo dnf install sipcalc

# Uso IPv4
sipcalc 192.168.1.0/24

# Uso IPv6
sipcalc 2001:db8::/32

Referencias