.png)
RFC4193 enthält Pseudocode zur Generierung einer IPv6-ULA (Unique Local Address). Muss ich diesem Algorithmus folgen oder ist eine beliebige ULA gültig?
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.
Mir wäre es lieber, wenn die Zeit kein Faktor wäre. Wäre es akzeptabel, die Link Local Address (von Mac abgeleitet) zu nehmen und das erste Oktett zu ersetzen, um es in ULA umzuwandeln?
Antwort1
Was das Abrufen einiger Bits von einer Link-Local-Adresse betrifft, sind nicht alle Adressen dafür geeignet. Nicht von MAC abgeleitete Adressen weisen keine Zufälligkeit auf und fe80::1
werden in einigen Netzwerken als Gateway für jedermann verwendet.
Technisch gesehen ist dieser Algorithmus nicht erforderlich. Aber ULAs müssen zufällig sein. Aus Abschnitt 3.2.1 unmittelbar davor:
Lokal zugewiesene globale IDs MÜSSEN mit einem pseudozufälligen Algorithmus generiert werden, der konsistent ist mit[ZUFÄLLIG]. Abschnitt 3.2.2 beschreibt einen vorgeschlagenen Algorithmus. Es ist wichtig, dass alle Sites, die Global IDs generieren, einen funktional ähnlichen Algorithmus verwenden, um eine hohe Wahrscheinlichkeit der Eindeutigkeit sicherzustellen.
Der vorgeschlagene Algorithmus verwendet allgemein verfügbare Primitive als Eingaben, um zuverlässig eindeutig zu sein. Es ist möglich, dass jemand anderes dieselbe MAC-Adresse hat, weil er eine VM nicht neu adressiert hat oder der NIC-Anbieter einen Fehler gemacht hat. Es ist jedoch äußerst unwahrscheinlich, dass auch eine mit demselben NTP-Zeitstempel generiert wird. Wenn Sie keinen Code schreiben möchten, können Sie sicherlich bereits geschriebene Implementierungen davon finden.
Wenn Sie etwas anderes verwenden, verwenden Sie kein ausschließlich auf MAC-Adressen basierendes Schema. Lesen Sie vielleicht 40 Bits aus /dev/random.