2. IPv6 Addressing (IPv6-Adressierung)
2. IPv6 Addressing (IPv6-Adressierung)
IPv6-Adressen sind 128-Bit-Identifikatoren für Schnittstellen und Schnittstellenmengen (wobei «Schnittstelle» wie in Abschnitt 2 von [IPV6] definiert ist). Es gibt drei Arten von Adressen:
Unicast (Einzelziel):
Ein Identifikator für eine einzelne Schnittstelle. Ein an eine Unicast-Adresse gesendetes Paket wird an die durch diese Adresse identifizierte Schnittstelle zugestellt.
Anycast:
Ein Identifikator für eine Menge von Schnittstellen (die typischerweise zu verschiedenen Knoten gehören). Ein an eine Anycast-Adresse gesendetes Paket wird an eine der durch diese Adresse identifizierten Schnittstellen zugestellt (die «nächstgelegene», gemäß der Entfernungsmessung der Routing-Protokolle).
Multicast (Mehrfachziel):
Ein Identifikator für eine Menge von Schnittstellen (die typischerweise zu verschiedenen Knoten gehören). Ein an eine Multicast-Adresse gesendetes Paket wird an alle durch diese Adresse identifizierten Schnittstellen zugestellt.
Es gibt keine Broadcast-Adressen (Broadcast Addresses) in IPv6, ihre Funktion wird durch Multicast-Adressen ersetzt.
In diesem Dokument erhalten Felder in Adressen einen bestimmten Namen, zum Beispiel «subnet». Wenn dieser Name mit dem Begriff «ID» für Identifikator nach dem Namen verwendet wird (z. B. «subnet ID»), bezieht er sich auf den Inhalt des benannten Felds. Wenn er mit dem Begriff «prefix» (Präfix) verwendet wird (z. B. «subnet prefix»), bezieht er sich auf die gesamte Adresse von links bis einschließlich dieses Felds.
In IPv6 sind alle Nullen und alle Einsen legale Werte für jedes Feld, sofern nicht ausdrücklich ausgeschlossen. Insbesondere können Präfixe Nullwertfelder enthalten oder mit solchen enden.
2.1. Addressing Model (Adressierungsmodell)
IPv6-Adressen aller Typen werden Schnittstellen zugewiesen, nicht Knoten. Eine IPv6-Unicast-Adresse bezieht sich auf eine einzelne Schnittstelle. Da jede Schnittstelle zu einem einzelnen Knoten gehört, kann jede der Unicast-Adressen der Schnittstellen dieses Knotens als Identifikator für den Knoten verwendet werden.
Alle Schnittstellen müssen mindestens eine Link-Local-Unicast-Adresse (Link-Local Unicast Address) haben (siehe Abschnitt 2.8 für zusätzliche erforderliche Adressen). Eine einzelne Schnittstelle kann auch mehrere IPv6-Adressen beliebigen Typs (Unicast, Anycast und Multicast) oder Bereichs haben. Unicast-Adressen mit einem Bereich größer als Link-Scope (Link-Bereich) werden nicht für Schnittstellen benötigt, die nicht als Ursprung oder Ziel von IPv6-Paketen zu oder von Nicht-Nachbarn verwendet werden. Dies ist manchmal für Punkt-zu-Punkt-Schnittstellen praktisch. Es gibt eine Ausnahme von diesem Adressierungsmodell:
Eine Unicast-Adresse oder eine Menge von Unicast-Adressen kann mehreren physischen Schnittstellen zugewiesen werden, wenn die Implementierung die mehreren physischen Schnittstellen bei der Präsentation an die Internet-Schicht als eine Schnittstelle behandelt. Dies ist nützlich für Lastverteilung über mehrere physische Schnittstellen.
Derzeit setzt IPv6 das IPv4-Modell fort, bei dem ein Subnetz-Präfix mit einem Link verbunden ist. Mehrere Subnetz-Präfixe können demselben Link zugewiesen werden.
2.2. Text Representation of Addresses (Textdarstellung von Adressen)
Es gibt drei konventionelle Formen zur Darstellung von IPv6-Adressen als Textzeichenketten:
Form 1: Bevorzugte Form
Die bevorzugte Form ist x:x:x:x:x:x:x:x, wobei die 'x' ein bis vier hexadezimale Ziffern der acht 16-Bit-Teile der Adresse sind.
Beispiele:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
2001:DB8:0:0:8:800:200C:417A
Beachten Sie, dass es nicht notwendig ist, führende Nullen in einem einzelnen Feld zu schreiben, aber es muss mindestens eine Ziffer in jedem Feld geben (außer für den in 2. beschriebenen Fall).
Form 2: Nullkompression
Aufgrund einiger Methoden zur Zuteilung bestimmter Stile von IPv6-Adressen wird es üblich sein, dass Adressen lange Strings von Null-Bits enthalten. Um das Schreiben von Adressen, die Null-Bits enthalten, zu erleichtern, kann eine spezielle Syntax verwendet werden, um die Nullen zu komprimieren. Die Verwendung von :: zeigt eine oder mehrere Gruppen von 16-Bit-Nullen an. Das :: kann nur einmal in einer Adresse erscheinen. Das :: kann auch verwendet werden, um führende oder nachfolgende Nullen in einer Adresse zu komprimieren.
Beispiele:
Die folgenden Adressen:
2001:DB8:0:0:8:800:200C:417A Unicast-Adresse
FF01:0:0:0:0:0:0:101 Multicast-Adresse
0:0:0:0:0:0:0:1 Loopback-Adresse
0:0:0:0:0:0:0:0 Unspezifizierte Adresse
können dargestellt werden als:
2001:DB8::8:800:200C:417A Unicast-Adresse
FF01::101 Multicast-Adresse
::1 Loopback-Adresse
:: Unspezifizierte Adresse
Form 3: Gemischte IPv4-IPv6-Darstellung
Beim Umgang mit einer gemischten Umgebung von IPv4- und IPv6-Knoten ist es manchmal praktischer, die alternative Form x:x:x:x:x:x:d.d.d.d zu verwenden, wobei die 'x' die hexadezimalen Werte der sechs höherwertigen 16-Bit-Teile der Adresse sind und die 'd' die dezimalen Werte der vier niederwertigen 8-Bit-Teile der Adresse sind (Standard-IPv4-Darstellung).
Beispiele:
0:0:0:0:0:0:13.1.68.3
0:0:0:0:0:FFFF:129.144.52.38
oder in komprimierter Form:
::13.1.68.3
::FFFF:129.144.52.38
2.3. Text Representation of Address Prefixes (Textdarstellung von Adresspräfixen)
Die Textdarstellung von IPv6-Adresspräfixen ähnelt der Art und Weise, wie IPv4-Adresspräfixe im klassenlosen Inter-Domain-Routing (CIDR, Classless Inter-Domain Routing) [CIDR] geschrieben werden. Ein IPv6-Adresspräfix wird durch die Notation dargestellt:
ipv6-address/prefix-length
wobei:
- ipv6-address: eine IPv6-Adresse in einer der in Abschnitt 2.2 aufgeführten Notationen ist.
- prefix-length: ein Dezimalwert ist, der angibt, wie viele der linksseitigen zusammenhängenden Bits der Adresse das Präfix bilden.
Beispiele:
Die folgenden sind legale Darstellungen des 60-Bit-Präfixes 20010DB80000CD3 (hexadezimal):
2001:0DB8:0000:CD30:0000:0000:0000:0000/60
2001:0DB8::CD30:0:0:0:0/60
2001:0DB8:0:CD30::/60
Die folgenden sind keine legalen Darstellungen des obigen Präfixes:
2001:0DB8:0:CD3/60 kann führende Nullen löschen, aber keine nachfolgenden
Nullen innerhalb eines 16-Bit-Blocks der Adresse
2001:0DB8::CD30/60 die Adresse links von "/" expandiert zu
2001:0DB8:0000:0000:0000:0000:0000:CD30
2001:0DB8::CD3/60 die Adresse links von "/" expandiert zu
2001:0DB8:0000:0000:0000:0000:0000:0CD3
Beim gleichzeitigen Schreiben einer Knotenadresse und eines Präfixes dieser Knotenadresse (z. B. des Subnetz-Präfixes des Knotens) können beide wie folgt kombiniert werden:
Knotenadresse: 2001:0DB8:0:CD30:123:4567:89AB:CDEF
seine Subnetznummer: 2001:0DB8:0:CD30::/60
kann abgekürzt werden als: 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60
2.4. Address Type Identification (Adresstyp-Identifikation)
Der Typ einer IPv6-Adresse wird durch die höherwertigen Bits der Adresse identifiziert, wie folgt:
| Adresstyp | Binäres Präfix | IPv6-Notation | Abschnitt |
|---|---|---|---|
| Unspecified | 00...0 (128 Bits) | ::/128 | 2.5.2 |
| Loopback | 00...1 (128 Bits) | ::1/128 | 2.5.3 |
| Multicast | 11111111 | FF00::/8 | 2.7 |
| Link-Local unicast | 1111111010 | FE80::/10 | 2.5.6 |
| Global Unicast | (alles andere) | - | 2.5.4 |
Anycast-Adressen werden aus dem Unicast-Adressraum (beliebigen Bereichs) entnommen und sind syntaktisch nicht von Unicast-Adressen zu unterscheiden.
Das allgemeine Format von Global-Unicast-Adressen wird in Abschnitt 2.5.4 beschrieben. Einige Spezialzweck-Untertypen von Global-Unicast-Adressen, die eingebettete IPv4-Adressen enthalten (für IPv4-IPv6-Interoperation), werden in Abschnitt 2.5.5 beschrieben.
Zukünftige Spezifikationen können einen oder mehrere Teilbereiche des Global-Unicast-Raums für andere Zwecke neu definieren, aber solange und bis dies geschieht, müssen Implementierungen alle Adressen, die nicht mit einem der oben aufgeführten Präfixe beginnen, als Global-Unicast-Adressen behandeln.
2.5. Unicast Addresses (Unicast-Adressen)
IPv6-Unicast-Adressen können mit Präfixen beliebiger Bitlänge aggregiert werden, ähnlich wie IPv4-Adressen unter klassenlosen Inter-Domain-Routing.
Es gibt mehrere Arten von Unicast-Adressen in IPv6, insbesondere Global Unicast, Site-Local Unicast (veraltet, siehe Abschnitt 2.5.7) und Link-Local Unicast. Es gibt auch einige Spezialzweck-Untertypen von Global-Unicast-Adressen, wie z. B. IPv6-Adressen mit eingebetteten IPv4-Adressen. Andere Arten von Unicast-Adressen können in der Zukunft definiert werden.
IPv6-Knoten können beträchtliches oder sehr wenig Wissen über die interne Struktur der IPv6-Adresse haben, abhängig von der Rolle, die der Knoten spielt (z. B. Host gegenüber Router). Mindestens kann ein Knoten davon ausgehen, dass Unicast-Adressen (einschließlich seiner eigenen) keine interne Struktur haben:
| 128 Bits |
+-----------------------------------------------------------------+
| Knotenadresse |
+-----------------------------------------------------------------+
Ein etwas ausgeklügelterer Host (aber immer noch recht einfach) kann zusätzlich über Subnetz-Präfix(e) für die Link(s) informiert sein, an die er angeschlossen ist, wobei verschiedene Adressen unterschiedliche Werte für n haben können:
| n Bits | 128-n Bits |
+-------------------------------+---------------------------------+
| Subnetz-Präfix | Schnittstellen-ID |
+-------------------------------+---------------------------------+
Obwohl ein sehr einfacher Router möglicherweise keine Kenntnis der internen Struktur von IPv6-Unicast-Adressen hat, werden Router im Allgemeinen Kenntnis von einer oder mehreren der hierarchischen Grenzen für den Betrieb von Routing-Protokollen haben. Die bekannten Grenzen werden von Router zu Router unterschiedlich sein, abhängig davon, welche Positionen der Router in der Routing-Hierarchie einnimmt.
Mit Ausnahme der Kenntnis der Subnetz-Grenze, die in den vorherigen Absätzen besprochen wurde, sollten Knoten keine Annahmen über die Struktur einer IPv6-Adresse treffen.
2.5.1. Interface Identifiers (Schnittstellen-Identifikatoren)
Schnittstellen-Identifikatoren in IPv6-Unicast-Adressen werden verwendet, um Schnittstellen auf einem Link zu identifizieren. Sie müssen innerhalb eines Subnetz-Präfixes eindeutig sein. Es wird empfohlen, dass derselbe Schnittstellen-Identifikator nicht verschiedenen Knoten auf einem Link zugewiesen wird. Sie können auch über einen breiteren Bereich eindeutig sein. In einigen Fällen wird der Identifikator einer Schnittstelle direkt von der Link-Layer-Adresse dieser Schnittstelle abgeleitet. Derselbe Schnittstellen-Identifikator kann auf mehreren Schnittstellen eines einzelnen Knotens verwendet werden, solange sie an verschiedene Subnetze angeschlossen sind.
Beachten Sie, dass die Eindeutigkeit von Schnittstellen-Identifikatoren unabhängig von der Eindeutigkeit von IPv6-Adressen ist. Zum Beispiel kann eine Global-Unicast-Adresse mit einem Schnittstellen-Identifikator lokalen Bereichs erstellt werden, und eine Link-Local-Adresse kann mit einem Schnittstellen-Identifikator universellen Bereichs erstellt werden.
Für alle Unicast-Adressen außer denen, die mit dem binären Wert 000 beginnen, müssen Schnittstellen-IDs 64 Bits lang sein und im Modified-EUI-64-Format (Modified EUI-64 Format) konstruiert werden.
Schnittstellen-Identifikatoren im Modified-EUI-64-Format können universellen Bereich haben, wenn sie von einem universellen Token abgeleitet sind (z. B. IEEE 802 48-Bit-MAC oder IEEE EUI-64-Identifikatoren [EUI64]), oder lokalen Bereich haben, wenn ein globales Token nicht verfügbar ist (z. B. serielle Links, Tunnel-Endpunkte) oder globale Token unerwünscht sind (z. B. temporäre Token für Datenschutz [PRIV]).
Modified-EUI-64-Format-Schnittstellen-Identifikatoren werden gebildet, indem das «u»-Bit (Universal/Local-Bit in IEEE-EUI-64-Terminologie) invertiert wird, wenn der Schnittstellen-Identifikator aus IEEE-EUI-64-Identifikatoren gebildet wird. Im resultierenden Modified-EUI-64-Format wird das «u»-Bit auf eins (1) gesetzt, um universellen Bereich anzuzeigen, und es wird auf null (0) gesetzt, um lokalen Bereich anzuzeigen. Die ersten drei Oktette in binärer Form eines IEEE-EUI-64-Identifikators sind wie folgt:
0 0 0 1 1 2
|0 7 8 5 6 3|
+----+----+----+----+----+----+
|cccc|ccug|cccc|cccc|cccc|cccc|
+----+----+----+----+----+----+
geschrieben in Internet-Standard-Bit-Reihenfolge, wobei «u» das Universal/Local-Bit ist, «g» das Individual/Group-Bit ist und «c» die Bits der company_id sind. Anhang A, «Creating Modified EUI-64 Format Interface Identifiers», bietet Beispiele zur Erstellung von Schnittstellen-Identifikatoren im Modified-EUI-64-Format.
Die Motivation für das Invertieren des «u»-Bits bei der Bildung eines Schnittstellen-Identifikators besteht darin, es Systemadministratoren leicht zu machen, nicht-globale Identifikatoren manuell zu konfigurieren, wenn Hardware-Token nicht verfügbar sind. Dies wird zum Beispiel bei seriellen Links und Tunnel-Endpunkten erwartet. Die Alternative wäre gewesen, dass diese in der Form 0200:0:0:1, 0200:0:0:2 usw. vorliegen, anstatt in der viel einfacheren Form 0:0:0:1, 0:0:0:2 usw.
IPv6-Knoten müssen nicht validieren, dass Schnittstellen-Identifikatoren, die mit Modified-EUI-64-Token mit dem auf universal gesetzten «u»-Bit erstellt wurden, eindeutig sind.
Die Verwendung des Universal/Local-Bits im Modified-EUI-64-Format-Identifikator soll die Entwicklung zukünftiger Technologien ermöglichen, die Schnittstellen-Identifikatoren mit universellen Bereich nutzen können.
Die Details zur Bildung von Schnittstellen-Identifikatoren sind in der entsprechenden «IPv6 over <link>»-Spezifikation definiert, wie z. B. «IPv6 over Ethernet» [ETHER] und «IPv6 over FDDI» [FDDI].
2.5.2. The Unspecified Address (Die unspezifizierte Adresse)
Die Adresse 0:0:0:0:0:0:0:0 wird als unspezifizierte Adresse bezeichnet. Sie darf niemals einem Knoten zugewiesen werden. Sie zeigt das Fehlen einer Adresse an. Ein Beispiel für ihre Verwendung ist im Quelladressfeld von IPv6-Paketen, die von einem initialisierenden Host gesendet werden, bevor er seine eigene Adresse gelernt hat.
Die unspezifizierte Adresse darf nicht als Zieladresse von IPv6-Paketen oder in IPv6-Routing-Headern verwendet werden. Ein IPv6-Paket mit einer Quelladresse von unspezifiziert darf niemals von einem IPv6-Router weitergeleitet werden.
2.5.3. The Loopback Address (Die Loopback-Adresse)
Die Unicast-Adresse 0:0:0:0:0:0:0:1 wird als Loopback-Adresse bezeichnet. Sie kann von einem Knoten verwendet werden, um ein IPv6-Paket an sich selbst zu senden. Sie darf keiner physischen Schnittstelle zugewiesen werden. Sie wird als Link-Local-Bereich behandelt und kann als Link-Local-Unicast-Adresse einer virtuellen Schnittstelle (typischerweise «Loopback-Schnittstelle» genannt) zu einem imaginären Link, der nirgendwohin führt, betrachtet werden.
Die Loopback-Adresse darf nicht als Quelladresse in IPv6-Paketen verwendet werden, die außerhalb eines einzelnen Knotens gesendet werden. Ein IPv6-Paket mit einer Zieladresse von Loopback darf niemals außerhalb eines einzelnen Knotens gesendet werden und darf niemals von einem IPv6-Router weitergeleitet werden. Ein auf einer Schnittstelle empfangenes Paket mit einer Zieladresse von Loopback muss verworfen werden.
2.5.4. Global Unicast Addresses (Globale Unicast-Adressen)
Das allgemeine Format für IPv6-Global-Unicast-Adressen ist wie folgt:
| n Bits | m Bits | 128-n-m Bits |
+------------------------+-----------+----------------------------+
| Globales Routing- | Subnetz-ID| Schnittstellen-ID |
| Präfix | | |
+------------------------+-----------+----------------------------+
wobei das globale Routing-Präfix ein (typischerweise hierarchisch strukturierter) Wert ist, der einem Standort (einem Cluster von Subnetzen/Links) zugewiesen wird, die Subnetz-ID ein Identifikator eines Links innerhalb des Standorts ist und die Schnittstellen-ID wie in Abschnitt 2.5.1 definiert ist.
Alle Global-Unicast-Adressen außer denen, die mit dem binären Wert 000 beginnen, haben ein 64-Bit-Schnittstellen-ID-Feld (d. h. n + m = 64), formatiert wie in Abschnitt 2.5.1 beschrieben.
Die Struktur und Zuteilung des globalen Routing-Präfixes liegen außerhalb des Umfangs dieses Dokuments.
2.5.5. IPv6 Addresses with Embedded IPv4 Addresses (IPv6-Adressen mit eingebetteten IPv4-Adressen)
IPv6-Übergangsmechanismen umfassen einige Techniken, die eine IPv4-Adresse in den niederwertigen 32 Bits der Adresse tragen. Es gibt zwei Arten dieser Adressen: die IPv4-kompatible IPv6-Adresse und die IPv4-gemappte IPv6-Adresse.
2.5.5.1. IPv4-Compatible IPv6 Address (IPv4-kompatible IPv6-Adresse)
Hinweis: Der IPv4-kompatible IPv6-Adresstyp ist veraltet.
Das Format der IPv4-kompatiblen IPv6-Adresse ist wie folgt:
| 80 Bits | 16 Bits | 32 Bits |
+--------------------+------+---------------+
| 0000......0000 | 0000 | IPv4-Adresse |
+--------------------+------+---------------+
Notation: ::d.d.d.d (wobei d.d.d.d die Dezimaldarstellung der IPv4-Adresse ist)
2.5.5.2. IPv4-Mapped IPv6 Address (IPv4-gemappte IPv6-Adresse)
Das Format der IPv4-gemappten IPv6-Adresse ist wie folgt:
| 80 Bits | 16 Bits | 32 Bits |
+--------------------+------+---------------+
| 0000......0000 | FFFF | IPv4-Adresse |
+--------------------+------+---------------+
Notation: ::FFFF:d.d.d.d (wobei d.d.d.d die Dezimaldarstellung der IPv4-Adresse ist)
Diese Adressen werden verwendet, um die Adressen von nur-IPv4-Knoten als IPv6-Adressen darzustellen. Sie werden nur innerhalb von IPv6-Knoten verwendet, um die Adresse von IPv4-Knoten darzustellen. IPv4-gemappte IPv6-Adressen werden niemals als Quell- oder Zieladresse von IPv6-Paketen verwendet.
2.5.6. Link-Local IPv6 Unicast Addresses (Link-lokale IPv6-Unicast-Adressen)
Link-lokale Adressen werden für die automatische Adresskonfiguration auf einem einzelnen Link, die Nachbarsuche oder bei Abwesenheit von Routern verwendet.
Das Format von Link-lokalen Adressen ist wie folgt:
| 10 Bits | 54 Bits | 64 Bits |
+----------+------------+---------------------+
|1111111010| 0 | Schnittstellen-ID |
+----------+------------+---------------------+
Präfix: FE80::/10
Link-lokale Adressen sind für die Adressierung auf einem einzelnen Link für Zwecke wie automatische Adresskonfiguration, Nachbarsuche oder bei Abwesenheit von Routern konzipiert. Router dürfen keine Pakete mit Link-lokaler Quell- oder Zieladresse an andere Links weiterleiten.
2.5.7. Site-Local IPv6 Unicast Addresses (Site-lokale IPv6-Unicast-Adressen)
Hinweis: Site-lokale Adressen sind veraltet und sollten nicht in neuen Implementierungen oder Bereitstellungen verwendet werden. Siehe [RFC3879].
Das Format von Site-lokalen Adressen ist wie folgt:
| 10 Bits | 54 Bits | 64 Bits |
+----------+------------+---------------------+
|1111111011| Subnetz-ID | Schnittstellen-ID |
+----------+------------+---------------------+
Präfix: FEC0::/10
Site-lokale Adressen wurden für die Adressierung innerhalb eines Standorts ohne globales Präfix konzipiert. Aufgrund der unklaren Definition der Site-Grenze und anderer Probleme sind Site-lokale Adressen jedoch veraltet und wurden durch Unique Local Addresses (ULA) [RFC4193] ersetzt.