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.01100100Cada 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
1representan la porción de red. - Los bits en
0representan 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: .100Notació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/24El /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) - 2Se 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.
- Calcular bits necesarios para las subredes:
- 4 subredes = 2² → necesitas 2 bits
- Nuevo prefijo: /24 + 2 = /26
- Tamaño de cada subred: 2^(32-26) = 64 direcciones
- 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.
- Calcular bits de host necesarios:
- 50 hosts → necesitas 2^n ≥ 52 (50 + red + broadcast)
- 2^6 = 64 ✓ → necesitas 6 bits de host
- Prefijo: 32 - 6 = /26
- 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:7334Simplificació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:1Regla 2: Reemplazar grupos consecutivos de ceros con :: (solo una vez por dirección).
2001:db8:1:0:0:0:0:1
2001:db8:1::1Ejemplos:
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 | Sí | 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 subredesHerramientas de cálculo
ipcalc (IPv4)
# Ubuntu/Debian
sudo apt install ipcalc
# AlmaLinux/CentOS
sudo dnf install ipcalc
# Uso
ipcalc 192.168.1.0/24sipcalc (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