Zum Hauptinhalt springen

Appendix A. Creating Modified EUI-64 Format Interface Identifiers (Erstellen von Schnittstellen-Identifikatoren im modifizierten EUI-64-Format)

Appendix A: Creating Modified EUI-64 Format Interface Identifiers (Erstellen von Schnittstellen-Identifikatoren im modifizierten EUI-64-Format)

Abhängig von den Eigenschaften eines bestimmten Links oder Knotens gibt es mehrere Ansätze zum Erstellen von Schnittstellen-Identifikatoren im modifizierten EUI-64-Format. Dieser Anhang beschreibt einige dieser Ansätze.

Die einzige Änderung, die erforderlich ist, um einen IEEE-EUI-64-Identifikator in einen Schnittstellen-Identifikator umzuwandeln, besteht darin, das «u»-Bit (universal/local) zu invertieren. Ein Beispiel für einen global eindeutigen IEEE-EUI-64-Identifikator der Form:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

wobei «c» die Bits der zugewiesenen company_id sind, «0» der Wert des Universal/Local-Bits ist, um universellen Bereich anzuzeigen, «g» das Individual/Group-Bit ist und «m» die Bits des vom Hersteller ausgewählten Erweiterungsidentifikators sind. Der IPv6-Schnittstellen-Identifikator wäre von der Form:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

Die einzige Änderung ist die Invertierung des Werts des Universal/Local-Bits.

[EUI64] definiert eine Methode zum Erstellen eines IEEE-EUI-64-Identifikators aus einem IEEE-48-Bit-MAC-Identifikator. Dies erfolgt durch Einfügen von zwei Oktetten mit hexadezimalen Werten 0xFF und 0xFE (siehe die Anmerkung am Ende des Anhangs) in die Mitte der 48-Bit-MAC (zwischen company_id und vom Anbieter bereitgestellter ID). Ein Beispiel ist die 48-Bit-IEEE-MAC mit globalem Bereich:

|0              1|1              3|3              4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+

wobei «c» die Bits der zugewiesenen company_id sind, «0» der Wert des Universal/Local-Bits ist, um globalen Bereich anzuzeigen, «g» das Individual/Group-Bit ist und «m» die Bits des vom Hersteller ausgewählten Erweiterungsidentifikators sind. Der Schnittstellen-Identifikator wäre von der Form:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

Wenn IEEE 802 48-Bit-MAC-Adressen verfügbar sind (auf einer Schnittstelle oder einem Knoten), kann eine Implementierung diese verwenden, um Schnittstellen-Identifikatoren aufgrund ihrer Verfügbarkeits- und Einzigartigkeitseigenschaften zu erstellen.

Es gibt eine Reihe von Link-Typen, die Link-Layer-Schnittstellen-Identifikatoren haben, die nicht IEEE EUI-64 oder IEEE 802 48-Bit-MACs sind. Beispiele sind LocalTalk und Arcnet. Die Methode zum Erstellen eines Identifikators im modifizierten EUI-64-Format besteht darin, den Link-Identifikator (z. B. den LocalTalk-8-Bit-Knoten-Identifikator) zu nehmen und ihn links mit Nullen aufzufüllen. Zum Beispiel ergibt ein LocalTalk-8-Bit-Knoten-Identifikator mit dem hexadezimalen Wert 0x4F den folgenden Schnittstellen-Identifikator:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|0000000000000000|0000000000000000|0000000000000000|0000000001001111|
+----------------+----------------+----------------+----------------+

Beachten Sie, dass dies dazu führt, dass das Universal/Local-Bit auf «0» gesetzt wird, um lokalen Bereich anzuzeigen.

Es gibt eine Reihe von Links, die keinen eingebauten Identifikator haben. Die häufigsten davon sind serielle Links und konfigurierte Tunnel. Schnittstellen-Identifikatoren, die innerhalb eines Subnetz-Präfixes eindeutig sind, müssen ausgewählt werden.

Wenn kein eingebauter Identifikator auf einem Link verfügbar ist, besteht der bevorzugte Ansatz darin, einen universellen Schnittstellen-Identifikator von einer anderen Schnittstelle oder einen zu verwenden, der dem Knoten selbst zugewiesen ist. Bei Verwendung dieses Ansatzes darf keine andere Schnittstelle, die denselben Knoten mit demselben Subnetz-Präfix verbindet, denselben Identifikator verwenden.

Wenn kein universeller Schnittstellen-Identifikator für die Verwendung auf dem Link verfügbar ist, muss die Implementierung einen Schnittstellen-Identifikator mit lokalem Bereich erstellen. Die einzige Anforderung ist, dass er innerhalb eines Subnetz-Präfixes eindeutig ist. Es gibt viele mögliche Ansätze zur Auswahl eines subnetz-präfix-eindeutigen Schnittstellen-Identifikators. Diese umfassen:

  • Manuelle Konfiguration (Manual Configuration)
  • Knotenserien-Nummer (Node Serial Number)
  • Anderes knotenspezifisches Token (Other Node-Specific Token)

Der subnetz-präfix-eindeutige Schnittstellen-Identifikator sollte so generiert werden, dass er sich nach einem Neustart eines Knotens oder wenn Schnittstellen vom Knoten hinzugefügt oder entfernt werden, nicht ändert.

Die Auswahl des geeigneten Algorithmus ist link- und implementierungsabhängig. Die Details zur Bildung von Schnittstellen-Identifikatoren sind in der entsprechenden «IPv6 over <link>»-Spezifikation definiert. Es wird dringend empfohlen, dass ein Kollisionserkennungsalgorithmus als Teil eines automatischen Algorithmus implementiert wird.

Anmerkung: [EUI-64] definiert tatsächlich 0xFF und 0xFF als die Bits, die eingefügt werden sollen, um einen IEEE-EUI-64-Identifikator aus einem IEEE-MAC-48-Identifikator zu erstellen. Die Werte 0xFF und 0xFE werden verwendet, wenn mit einem IEEE-EUI-48-Identifikator begonnen wird. Der falsche Wert wurde in früheren Versionen der Spezifikation aufgrund eines Missverständnisses über die Unterschiede zwischen IEEE-MAC-48- und EUI-48-Identifikatoren verwendet.

Dieses Dokument setzt die Verwendung von 0xFF und 0xFE absichtlich fort, da es die Anforderungen für IPv6-Schnittstellen-Identifikatoren erfüllt (d. h. dass sie auf dem Link eindeutig sein müssen), IEEE-EUI-48- und MAC-48-Identifikatoren syntaktisch äquivalent sind und es in der Praxis keine Probleme verursacht.