IPv6 usa direcciones de 128 bits frente a los 32 de IPv4, lo que multiplica el espacio de direccionamiento hasta el punto de que la unidad de asignación habitual ya no es un host individual sino un bloque /64 completo por cada red, y un /48 o /56 por cada cliente u oficina. Esta escala cambia por completo la forma de planificar subredes: en IPv6 sobra espacio, así que el reto no es ahorrar direcciones sino organizar prefijos de forma jerárquica y legible. Esta calculadora IPv6 descompone cualquier prefijo en dirección de red, rango de hosts y forma comprimida, y ayuda a decidir cuántos bits reservar para subredes internas dentro de la asignación que te entregue tu proveedor.
Notación comprimida: dos puntos dobles y ceros a la izquierda
Una dirección IPv6 completa como 2001:0db8:0000:0000:0000:0000:0000:0001 se comprime eliminando los ceros a la izquierda de cada grupo (2001:db8:0:0:0:0:0:1) y sustituyendo la secuencia más larga de grupos consecutivos en cero por :: una única vez: 2001:db8::1. La regla del :: único es estricta porque, si se usara más de una vez, la dirección quedaría ambigua al no poder determinar cuántos grupos de ceros representa cada aparición. ::1 es la dirección de loopback, equivalente al 127.0.0.1 de IPv4, y :: sola representa la dirección no especificada.
El prefijo /64 como unidad estándar de subred
La práctica establecida (RFC 4291 y la orientación posterior del IETF) fija /64 como el tamaño estándar para cualquier segmento de red donde vaya a operar SLAAC (autoconfiguración sin estado), porque los 64 bits de identificador de interfaz se necesitan completos para la generación de direcciones basada en EUI-64 o en identificadores aleatorios de privacidad. Asignar un /127 o /126 a una LAN normal rompe SLAAC; esos prefijos ultracortos solo tienen sentido en enlaces punto a punto entre routers, de forma análoga a un /30 o /31 en IPv4.
Delegación de prefijo: /48 frente a /56 para clientes
Un proveedor de conectividad residencial suele delegar un /56 a cada hogar, lo que permite crear hasta 256 subredes /64 distintas; un ISP empresarial o un proveedor cloud suele delegar un /48 a organizaciones grandes, con 65.536 subredes /64 posibles. La elección entre /48 y /56 depende del número de segmentos de red que la organización prevea crear (oficinas, VLANs, entornos de DMZ), no del número de hosts, porque dentro de cada /64 el espacio de hosts es, a efectos prácticos, inagotable.
Direcciones especiales y ámbitos: link-local, ULA y multicast
El bloque fe80::/10 son direcciones link-local, generadas automáticamente en cada interfaz y válidas solo dentro del mismo segmento físico, nunca enrutables; se usan para protocolos de descubrimiento de vecinos y no requieren configuración. El bloque fc00::/7, y en la práctica fd00::/8, son direcciones ULA (Unique Local Address), el equivalente funcional a los rangos privados RFC 1918 de IPv4, pensadas para redes internas que no se anuncian a Internet. El bloque ff00::/8 cubre todo el espacio multicast, sustituyendo por completo al broadcast, que no existe en IPv6.
Identificador de interfaz: EUI-64 frente a direcciones de privacidad
El método EUI-64 clásico deriva los 64 bits finales de la dirección MAC de la tarjeta de red, insertando fffe en el medio e invirtiendo el séptimo bit; esto hace que la dirección IPv6 sea predecible y rastreable entre redes distintas si el dispositivo conserva la misma MAC. Por eso los sistemas operativos modernos (Windows, macOS, Android, la mayoría de distribuciones Linux de escritorio) usan por defecto direcciones temporales aleatorias (RFC 4941) para el tráfico saliente, rotándolas periódicamente, mientras conservan una dirección EUI-64 estable solo para servicios que necesitan ser localizables de forma consistente.
Doble pila (dual-stack) y coexistencia con IPv4
La mayoría de redes actuales no han migrado por completo a IPv6 sino que operan en dual-stack, donde cada host tiene simultáneamente una dirección IPv4 y una IPv6, y el sistema operativo elige el protocolo según la política de Happy Eyeballs (RFC 8305): intenta ambos en paralelo con un pequeño desfase y usa el primero que responde, favoreciendo IPv6 cuando la latencia es comparable. Esto explica por qué activar IPv6 en un servidor sin verificar antes su configuración de firewall puede abrir una ruta de acceso que el equipo de seguridad solo había filtrado en IPv4, un descuido común al migrar infraestructura on-premise.
Herramientas de diagnóstico específicas de IPv6
ping6 (o ping -6 según el sistema) comprueba alcanzabilidad usando ICMPv6 en lugar de ICMP; traceroute6 sigue la ruta de saltos igual que su equivalente IPv4 pero sobre la pila v6; ip -6 addr show en Linux lista las direcciones IPv6 asignadas a cada interfaz junto con su ámbito (scope global frente a scope link). Confundir una dirección scope link con una alcanzable desde fuera del segmento es un error habitual al depurar conectividad, porque esas direcciones link-local nunca se enrutan más allá del salto local, sin importar la configuración de la tabla de rutas.
Salidas reales de ejemplo
$ sipcalc 2001:db8:1234:5678::/64
-[ipv6 : 2001:db8:1234:5678::/64] - 0
[IPV6 INFO]
Expanded Address - 2001:0db8:1234:5678:0000:0000:0000:0000
Compressed address - 2001:db8:1234:5678::
Subnet prefix (masked) - 2001:db8:1234:5678:0000:0000:0000:0000/64
Address ID (masked) - 0000:0000:0000:0000:0000:0000:0000:0000/64
Prefix address - ffff:ffff:ffff:ffff:0000:0000:0000:0000
Prefix length - 64
Address type - Aggregatable Global Unicast Addresses
Network range - 2001:0db8:1234:5678:0000:0000:0000:0000 -
2001:0db8:1234:5678:ffff:ffff:ffff:ffffsipcalc descompone el prefijo mostrando el rango completo de hosts posibles dentro de la subred estándar de LAN.
$ ip -6 addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet6 2001:db8:1234:5678:a1b2:c3d4:e5f6:0102/64 scope global temporary dynamic
inet6 2001:db8:1234:5678:d8a1:b2ff:fe3c:4d5e/64 scope global mngtmpaddr
inet6 fe80::d8a1:b2ff:fe3c:4d5e/64 scope linkLa dirección con scope global es la enrutable; la de scope link solo funciona dentro del mismo segmento físico.
$ ping6 -c 3 2001:db8:1234:5678::1
PING 2001:db8:1234:5678::1(2001:db8:1234:5678::1) 56 data bytes
64 bytes from 2001:db8:1234:5678::1: icmp_seq=1 ttl=64 time=0.412 ms
64 bytes from 2001:db8:1234:5678::1: icmp_seq=2 ttl=64 time=0.389 ms
64 bytes from 2001:db8:1234:5678::1: icmp_seq=3 ttl=64 time=0.401 ms
--- 2001:db8:1234:5678::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2041msEl tiempo de ida y vuelta y el TTL se comportan igual que en ICMP para IPv4; el prefijo de la dirección confirma que la ruta usa la pila v6.
Expandida: 2001:0db8:0000:0000:0000:0000:0000:0001
Comprimida: 2001:db8::1El único bloque de ceros consecutivos se sustituye por :: y los ceros a la izquierda de cada grupo se eliminan.
Prefijos habituales de delegación IPv6
| Prefijo delegado | Subredes /64 posibles | Uso típico |
|---|---|---|
| /48 | 65.536 | Organización grande o proveedor cloud a cliente empresarial |
| /56 | 256 | Hogar o pequeña oficina vía ISP residencial |
| /60 | 16 | Cliente muy pequeño con pocas VLANs |
| /64 | 1 (es la propia subred) | LAN estándar con SLAAC |
| /127 | N/A (enlace punto a punto) | Enlace entre dos routers, sin hosts finales |
El tamaño elegido determina cuántas subredes /64 puede crear la organización, no cuántos hosts caben en cada una.
Bloques especiales de IPv6
| Bloque | Nombre | Ámbito | Equivalente aproximado en IPv4 |
|---|---|---|---|
| ::1/128 | Loopback | Solo el propio host | 127.0.0.1 |
| fe80::/10 | Link-local | Solo el segmento físico | 169.254.0.0/16 (APIPA) |
| fc00::/7 (fd00::/8) | Unique Local Address | Red privada interna | 10.0.0.0/8, 192.168.0.0/16 |
| ff00::/8 | Multicast | Según el alcance del grupo | Sin equivalente directo (sustituye a broadcast) |
| 2000::/3 | Unicast global | Enrutable en Internet | Direcciones IPv4 públicas |
Cada bloque tiene un ámbito y un propósito distinto; confundirlos es la causa más común de fallos de enrutamiento en pruebas.
Casos de uso comunes
- Planificar la delegación de prefijos /56 o /48 al desplegar IPv6 en una red corporativa.
- Verificar que una LAN recibe un /64 completo para que SLAAC funcione correctamente.
- Comprimir y expandir direcciones IPv6 al documentar reglas de firewall o registros DNS AAAA.
- Diagnosticar por qué una dirección link-local no es alcanzable desde otra subred.
- Auditar la configuración dual-stack de un servidor antes de exponerlo a Internet.
Buenas prácticas
- Asigna siempre /64 completos a segmentos de LAN, nunca prefijos más largos, para no romper SLAAC.
- Usa ULA (fd00::/8) para redes internas que no deben ser enrutables desde Internet.
- Revisa las reglas de firewall en IPv6 de forma independiente: una política solo en IPv4 deja la ruta v6 abierta.
- Documenta la jerarquía de subredes /64 dentro del /48 o /56 delegado igual que harías con un IPAM en IPv4.
- No confundas una dirección scope link con una alcanzable fuera del segmento al depurar conectividad.