Cómo funcionan las subredes IPv6

Una dirección IPv6 mide 128 bits, escritos como ocho grupos de cuatro cifras hexadecimales. Los ceros iniciales de cada grupo se pueden omitir, y una sola secuencia de grupos a cero se puede sustituir por ::. Así, 2001:0db8:0000:0000:0000:ff00:0042:8329 queda en 2001:db8::ff00:42:8329, la forma que recomienda la RFC 5952.

El prefijo indica cuántos bits iniciales identifican la red. En las redes locales se usa casi siempre /64, porque la autoconfiguración SLAAC necesita 64 bits para el host; a una empresa o sede se le suele asignar un /48, que contiene 65.536 subredes /64, y a una conexión doméstica un /56, con 256 subredes.

En IPv6 no hay direcciones de red y de difusión que descartar como en IPv4: todas las direcciones del bloque se pueden usar y la difusión se sustituye por multicast. Las cifras se vuelven enormes, 2⁶⁴ direcciones en un solo /64, y por eso se planifica por subredes y no por hosts.

Errores frecuentes

  • Usar :: dos veces en la misma dirección: sería ambiguo cuántos grupos de ceros representa cada uno.
  • Dividir una LAN en subredes menores que /64: SLAAC y muchas funciones de IPv6 dejan de funcionar.
  • Calcular subredes en decimal: los límites caen en las cifras hexadecimales, cada una vale 4 bits.

Preguntas frecuentes

¿Cuántas direcciones tiene un /64?

2⁶⁴, es decir, 18.446.744.073.709.551.616: más que todo el espacio IPv4 elevado al cuadrado.

¿Qué es la zona ip6.arpa?

Es el dominio de la resolución inversa, de dirección a nombre: las 32 cifras hexadecimales de la dirección se escriben al revés, separadas por puntos, seguidas de ip6.arpa.

¿Cómo se escribe una dirección IPv6 en una URL?

Entre corchetes, para no confundir los dos puntos con el puerto: http://[2001:db8::1]:8080/.

Cómo funciona este cálculo

La dirección se lee como un entero de 128 bits (expandiendo :: con los grupos de ceros que faltan y convirtiendo una posible cola IPv4 en dos grupos). Máscara = 128 − prefijo bits a cero al final; red = dirección AND máscara; última dirección = red OR NOT máscara; direcciones = 2^(128 − prefijo). Hay 2^(n − prefijo) subredes /n, cada una de 2^(128 − n) direcciones. La forma comprimida sigue la RFC 5952: minúsculas, sin ceros iniciales y :: sobre la secuencia de ceros más larga de al menos dos grupos.