Generador de ULA IPv6

Genera una direccion IPv6 local unica (fd00::/8) con un ID global aleatorio de 40 bits, y ve el prefijo /48 de tu sitio.

IPv6 privada sin globales. Crea una direccion local unica en el rango fd00::/8. Un ID global aleatorio de 40 bits mantiene unicos los prefijos de tu sitio, y un ID de interfaz de 64 bits completa el resto. Generado localmente con aleatoriedad criptografica.

Prefijo /48 del sitio

Direcciones unicas locales en la practica

Para que sirve fd00::/8

Las direcciones unicas locales son la respuesta de IPv6 a los rangos privados del RFC 1918: direcciones enrutables dentro de tu propia red pero que ningun operador transportara por la Internet publica. El RFC 4193 reserva fc00::/7 para esto, dividido en dos mitades. Solo fd00::/8 esta definida para uso general, donde el ID global de 40 bits lo elige al azar quien necesita el prefijo. La otra mitad, fc00::/8, quedo reservada para prefijos asignados centralmente por un registro que nunca llego a crearse, asi que en la practica toda ULA empieza por fd.

La estructura es fija: 8 bits de fd, luego un ID global de 40 bits, despues un ID de subred de 16 bits y finalmente un identificador de interfaz de 64 bits. Los primeros 48 bits forman el prefijo que posee tu sitio, y por eso un generador de ULA te entrega un /48 y no una direccion suelta.

Por que el ID global debe ser aleatorio

Esos 40 bits aleatorios son todo el mecanismo que evita colisiones. Si eliges un prefijo facil de recordar como fd00:1:: o fd12:3456:789a::, has escogido algo que a los demas tambien les parece facil de recordar: el riesgo de colision deja de ser teorico en cuanto fusionas redes, montas una VPN con un socio o adquieres una empresa. Con 2^40 posibilidades y una eleccion realmente aleatoria, la probabilidad de choque entre dos sitios es despreciable.

Este generador toma sus 40 bits de la fuente criptografica de aleatoriedad del navegador, de modo que el valor es impredecible y propio. La direccion en si no es un secreto: la aleatoriedad busca evitar colisiones, no ocultar nada.

Planificar subredes dentro de tu /48

El ID de subred de 16 bits te da 65.536 redes /64. En IPv6 un /64 es el tamano estandar de un segmento LAN y no conviene subdividirlo; SLAAC, el direccionamiento de privacidad y otros mecanismos asumen 64 bits de host. Resiste la tentacion de ahorrar aqui. IPv6 ofrece espacio de sobra, y mapear los IDs de subred a algo con significado (uno por VLAN, por sede, por entorno) vale mucho mas que ahorrar un espacio que nunca agotaras.

Por ultimo, las ULA no sustituyen a las direcciones globales. El diseno habitual las usa junto a direcciones enrutables globalmente, para que los servicios internos mantengan una numeracion estable aunque cambie el prefijo asignado por el ISP.

Nota de codigo abierto: implementado con crypto.getRandomValues en JavaScript puro. Sin librerias de terceros.

Preguntas frecuentes

¿Para qué sirve una ULA?
Las direcciones locales únicas son el equivalente en IPv6 de los rangos privados del RFC 1918. Son enrutables dentro de tu propia red, pero nunca se enrutan en la internet pública.
¿Por qué el prefijo es un /48?
El RFC 4193 fija los primeros 8 bits en fd y rellena los 40 siguientes con un ID global aleatorio. Esos 48 bits son tu prefijo de sitio, dejando 16 bits para subredes y 64 para identificadores de interfaz.
¿El ID global tiene que ser realmente aleatorio?
Sí. La aleatoriedad es lo que hace improbable una colisión si algún día se fusionan dos redes. Valores secuenciales o fáciles de recordar como fd00::/48 arruinan todo el diseño.
¿Cuál es la diferencia entre fc00::/8 y fd00::/8?
fd00::/8 es para prefijos asignados localmente y es el que debes generar. fc00::/8 se reservó para prefijos asignados de forma centralizada, pero nunca se creó ningún registro para ellos.
¿Puedo usar una ULA y un prefijo global a la vez?
Sí. Es habitual que las interfaces lleven ambos: la ULA aporta un direccionamiento interno estable que sobrevive a un cambio de prefijo del ISP, y la dirección global se encarga del tráfico saliente.
¿El prefijo generado se registra en algún sitio?
No. No existe ningún registro, y por eso importan tanto los 40 bits aleatorios: la unicidad estadística es la única protección frente a un solapamiento.