Generación de IPv6 ULA (dirección local única)

Generación de IPv6 ULA (dirección local única)

RFC4193 contiene pseudocódigo para la generación de ULA (dirección local única) IPv6. ¿Tengo que seguir este algoritmo o es válida una ULA arbitraria?

   3.2.2. Sample Code for Pseudo-Random Global ID Algorithm

   The algorithm described below is intended to be used for locally
   assigned Global IDs.  In each case the resulting global ID will be
   used in the appropriate prefix as defined in Section 3.2.

     1) Obtain the current time of day in 64-bit NTP format [NTP].

     2) Obtain an EUI-64 identifier from the system running this
        algorithm.  If an EUI-64 does not exist, one can be created from
        a 48-bit MAC address as specified in [ADDARCH].  If an EUI-64
        cannot be obtained or created, a suitably unique identifier,
        local to the node, should be used (e.g., system serial number).

     3) Concatenate the time of day with the system-specific identifier
        in order to create a key.

     4) Compute an SHA-1 digest on the key as specified in [FIPS, SHA1];
        the resulting value is 160 bits.

     5) Use the least significant 40 bits as the Global ID.

     6) Concatenate FC00::/7, the L bit set to 1, and the 40-bit Global
        ID to create a Local IPv6 address prefix.

Preferiría que el tiempo no fuera un factor. ¿Sería aceptable tomar la dirección local del enlace (derivada de Mac) y reemplazar el primer octeto para convertirla a ULA?

Respuesta1

En cuanto a obtener algunos bits de una dirección local de enlace, no todas las direcciones son adecuadas para ello. Los no derivados de MAC no tendrán ninguna aleatoriedad y fe80::1se utilizan como puerta de enlace de todos en algunas redes.

Técnicamente, ese algoritmo no es necesario. Pero los ULA deben ser aleatorios. De la sección 3.2.1 inmediatamente anterior:

Los ID globales asignados localmente DEBEN generarse con un algoritmo pseudoaleatorio consistente con[ALEATORIO]. La sección 3.2.2 describe un algoritmo sugerido. Es importante que todos los sitios que generan ID globales utilicen un algoritmo funcionalmente similar para garantizar que exista una alta probabilidad de unicidad.

El algoritmo sugerido utiliza primitivas comúnmente disponibles como entradas, para que sea confiablemente único. Es posible que otra persona tenga la misma dirección MAC, al no volver a dirigir una VM o al proveedor de NIC cometiendo un error. Pero también es extremadamente improbable generar uno con la misma marca de tiempo NTP. Ciertamente, puede encontrar implementaciones de esto ya escritas si no desea escribir código.

Si está utilizando otra cosa, no utilice un esquema basado exclusivamente en direcciones MAC. Quizás lea 40 bits de /dev/random.

información relacionada