RFC4193 contains pseudo code for generation of IPv6 ULA (Unique Local Address). Do I have to follow this algorithm or is an arbitrary ULA valid?
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.
I would prefer if time was not a factor. Would it be acceptable to take the Link Local Address (Mac derived) and replace the first octet to convert it to ULA?
0
bits for the 40 bits that must be randomly chosen. That is not sufficient. You can use multiple/64
networks from the 65,536 available in the 48-bit prefix, but each 48-bit prefix cannot relate to another if you have multiple 48-bit prefixes, and they cannot be arranged to summarize. – Ron Maupin Jan 13 '20 at 20:46