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.
For Links or Nodes with IEEE EUI-64 Identifiers (Für Links oder Knoten mit IEEE-EUI-64-Identifikatoren)
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).
For Links or Nodes with IEEE 802 48-bit MACs (Für Links oder Knoten mit IEEE-802-48-Bit-MACs)
[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)
- Die 48-Bit-MAC-Adresse nehmen
0xFF-FEin der Mitte einfügen (zwischen dem 3. und 4. Oktett)- 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
For Links with Other Types of Identifiers (Für Links mit anderen Identifikatortypen)
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.
For Links with No Identifiers (Für Links ohne Identifikatoren)
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:
- Dies die Anforderungen an IPv6-Interface-Identifikatoren erfüllt (d. h., sie müssen auf dem Link eindeutig sein)
- IEEE-EUI-48- und MAC-48-Identifikatoren syntaktisch äquivalent sind
- Dies in der Praxis keine Probleme verursacht
Interface Identifier Generation Summary (Zusammenfassung zur Erzeugung von Interface-Identifikatoren)
| Link Type | Method | U/L Bit |
|---|---|---|
| IEEE EUI-64 | u-Bit umkehren | 1 (universell) |
| IEEE 802 48-bit MAC | FF-FE einfügen, u-Bit umkehren | 1 (universell) |
| Andere Identifikatoren (wie LocalTalk) | Links mit Nullen auffüllen | 0 (lokal) |
| Keine Identifikatoren | Manuell/automatisch erzeugt | Hängt von der Methode ab |
Schlüsselprinzip (Key Principle): Interface-Identifikatoren müssen innerhalb ihres Subnetz-Präfixes eindeutig sein.