Zum Hauptinhalt springen

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

Je nach den Merkmalen eines bestimmten Links oder Knotens gibt es verschiedene Ansätze, um Interface-Identifikatoren im Modified-EUI-64-Format zu erzeugen. Dieser Anhang beschreibt einige dieser Ansätze.


Die einzige Änderung, die zur Umwandlung eines IEEE-EUI-64-Identifikators in einen Interface-Identifikator erforderlich ist, besteht darin, das «u»-Bit (universal/local) umzukehren.

Beispiel für einen global eindeutigen IEEE-EUI-64-Identifikator:

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

wobei:

  • c: Bits der company_id
  • 0: Wert des universal/local-Bits, der universellen Geltungsbereich angibt
  • g: individual/group-Bit
  • m: vom Hersteller ausgewählte Erweiterungsidentifikator-Bits

Form des IPv6-Interface-Identifikators:

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

Die einzige Änderung besteht darin, den Wert des universal/local-Bits umzukehren (von 0 auf 1).


[EUI64] definiert eine Methode zur Erzeugung eines IEEE-EUI-64-Identifikators aus einem IEEE-48-Bit-MAC-Identifikator. Dazu werden zwei Oktette mit den hexadezimalen Werten 0xFF und 0xFE in der Mitte des 48-Bit-MACs (zwischen der company_id und der herstellerseitig vergebenen ID) eingefügt (siehe Hinweis am Ende dieses Anhangs).

Beispiel für eine global gültige IEEE-48-Bit-MAC-Adresse:

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

wobei:

  • c: Bits der zugewiesenen company_id
  • 0: Wert des universal/local-Bits, der globalen Geltungsbereich angibt
  • g: individual/group-Bit
  • m: vom Hersteller ausgewählte Erweiterungsidentifikator-Bits

Form des Interface-Identifikators:

|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 (an einer Schnittstelle oder einem Knoten), können Implementierungen sie zur Erzeugung von Interface-Identifikatoren nutzen, da sie verfügbar und eindeutig sind.

Transformation Steps (Transformationsschritte)​

  1. Die 48-Bit-MAC-Adresse nehmen
  2. 0xFF-FE in der Mitte einfügen (zwischen dem 3. und 4. Oktett)
  3. Das 7. Bit (u-Bit) des ersten Oktetts umkehren

Beispiel:

MAC-Adresse:        00:1A:2B:3C:4D:5E
0xFF-FE einfügen: 00:1A:2B:FF:FE:3C:4D:5E
u-Bit umkehren: 02:1A:2B:FF:FE:3C:4D:5E
Interface-ID: 021A:2BFF:FE3C:4D5E

Es gibt viele Linktypen, deren Link-Identifikatoren weder IEEE-EUI-64 noch IEEE-802-48-Bit-MACs sind. Beispiele sind LocalTalk und Arcnet. Die Methode zur Erzeugung eines Modified-EUI-64-Format-Identifikators besteht darin, den Link-Identifikator (z. B. den 8-Bit-LocalTalk-Knotenidentifikator) links mit Nullen aufzufüllen.

Beispiel:

Ein 8-Bit-LocalTalk-Knotenidentifikator mit dem hexadezimalen Wert 0x4F ergibt folgenden Interface-Identifikator:

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

Dargestellt als: 0000:0000:0000:004F

Beachten Sie, dass dies ein auf «0» gesetztes universal/local-Bit ergibt, das einen lokalen Geltungsbereich angibt.


Es gibt eine Reihe von Links, die über keinen integrierten Identifikatortyp verfügen. Die häufigsten sind serielle Links und konfigurierte Tunnel. Interface-Identifikatoren müssen innerhalb eines Subnetz-Präfixes eindeutig gewählt werden.

Method 1: Use Universal Interface Identifier (Methode 1: Universellen Interface-Identifikator verwenden)​

Wenn kein integrierter Identifikator auf einem Link verfügbar ist, ist der empfohlene Ansatz, einen universellen Interface-Identifikator von einer anderen Schnittstelle oder einem dem Knoten zugewiesenen Identifikator zu verwenden. Mit diesem Ansatz darf keine andere Schnittstelle, die denselben Knoten mit demselben Subnetz-Präfix verbindet, denselben Identifikator verwenden.

Method 2: Create Local Scope Interface Identifier (Methode 2: Lokalen Interface-Identifikator erzeugen)​

Wenn kein universeller Interface-Identifikator für den Link verfügbar ist, muss die Implementierung einen lokalen Interface-Identifikator erzeugen. Die einzige Anforderung ist, dass er innerhalb des Subnetz-Präfixes eindeutig ist. Es gibt mehrere Möglichkeiten, einen innerhalb des Subnetz-Präfixes eindeutigen Identifikator auszuwählen, darunter:

  • Manual Configuration (manuelle Konfiguration)
  • Node Serial Number (Seriennummer des Knotens)
  • Other Node-Specific Token (anderes knotenspezifisches Token)

Ein innerhalb des Subnetz-Präfixes eindeutiger Interface-Identifikator muss so erzeugt werden, dass er sich nicht nach einem Neustart des Knotens oder beim Hinzufügen oder Entfernen von Schnittstellen am Knoten ändert.

Die Wahl des geeigneten Algorithmus hängt vom Link und der Implementierung ab. Einzelheiten zur Erzeugung von Interface-Identifikatoren sind in der entsprechenden «IPv6 over <link>»-Spezifikation definiert. Es wird dringend empfohlen, in jeden automatischen Algorithmus einen Kollisionserkennungsalgorithmus aufzunehmen.


Important Notes (Wichtige Hinweise)​

Zur Verwendung von 0xFF-FE:

[EUI64] hat eigentlich 0xFF und 0xFF als einzufügende Bits definiert, um einen IEEE-EUI-64-Identifikator aus einem IEEE-MAC-48-Identifikator zu erzeugen. Die Werte 0xFF und 0xFE wurden ausgehend von einem IEEE-EUI-48-Identifikator verwendet. Der Wert 0xFF und 0xFE wurde in früheren Versionen dieser Spezifikation aufgrund einer Verwechslung des Unterschieds zwischen IEEE-MAC-48- und EUI-48-Identifikatoren verwendet.

Dieses Dokument verwendet bewusst weiterhin 0xFF und 0xFE, weil:

  1. Dies die Anforderungen an IPv6-Interface-Identifikatoren erfüllt (d. h., sie müssen auf dem Link eindeutig sein)
  2. IEEE-EUI-48- und MAC-48-Identifikatoren syntaktisch äquivalent sind
  3. Dies in der Praxis keine Probleme verursacht

Interface Identifier Generation Summary (Zusammenfassung zur Erzeugung von Interface-Identifikatoren)​

Link TypeMethodU/L Bit
IEEE EUI-64u-Bit umkehren1 (universell)
IEEE 802 48-bit MACFF-FE einfügen, u-Bit umkehren1 (universell)
Andere Identifikatoren (wie LocalTalk)Links mit Nullen auffüllen0 (lokal)
Keine IdentifikatorenManuell/automatisch erzeugtHängt von der Methode ab

Schlüsselprinzip (Key Principle): Interface-Identifikatoren müssen innerhalb ihres Subnetz-Präfixes eindeutig sein.