Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

IPv6-Adressierung

Quelle auf GitHub anzeigen

Lassen Sie uns einen Blick darauf werfen, wie Thread jedes Gerät im Netzwerk identifiziert und welche Arten von Adressen sie für die Kommunikation miteinander verwenden.

Geltungsbereich

OT-Bereiche

In einem Thread-Netzwerk gibt es drei Bereiche für die Unicast-Adressierung:

  • Link-Local - alle Schnittstellen, die über eine einzige Funkübertragung erreichbar sind
  • Mesh-Local - alle Schnittstellen, die innerhalb desselben Thread-Netzwerks erreichbar sind
  • Global - alle Schnittstellen, die von außerhalb eines Thread-Netzwerks erreichbar sind

Die ersten beiden Bereiche entsprechen Präfixen, die von einem Thread-Netzwerk festgelegt wurden. Link-Local hat Präfixe von fe80::/16 , während Mesh-Local Präfixe von fd00::/8 .

Unicast

Es gibt mehrere IPv6-Unicast-Adressen, die ein einzelnes Thread-Gerät identifizieren. Jedes hat je nach Umfang und Anwendungsfall eine andere Funktion.

Bevor wir die einzelnen Typen detailliert beschreiben, erfahren Sie mehr über einen allgemeinen Typ, den Routing Locator (RLOC). Das RLOC identifiziert eine Thread-Schnittstelle anhand ihres Speicherorts in der Netzwerktopologie.

Wie ein Routing Locator generiert wird

Allen Geräten werden eine Router-ID und eine untergeordnete ID zugewiesen. Jeder Router verwaltet eine Tabelle aller seiner untergeordneten Elemente, deren Kombination ein Gerät innerhalb der Topologie eindeutig identifiziert. Betrachten Sie beispielsweise die hervorgehobenen Knoten in der folgenden Topologie, wobei die Nummer in einem Router (Fünfeck) die Router-ID und die Nummer in einem Endgerät (Kreis) die untergeordnete ID ist:

OT RLOC-Topologie

Die Router-ID jedes Kindes entspricht seinem Elternteil (Router). Da ein Router kein Kind ist, ist die Kind-ID für einen Router immer 0. Zusammen sind diese Werte für jedes Gerät im Thread-Netzwerk eindeutig und werden zum Erstellen des RLOC16 verwendet, der die letzten 16 Bits des RLOC darstellt.

So wird beispielsweise der RLOC16 für den oberen linken Knoten berechnet (Router-ID = 1 und untergeordnete ID = 1):

OT RLOC16

Der RLOC16 ist Teil des Interface Identifier (IID), der den letzten 64 Bits der IPv6-Adresse entspricht. Einige IIDs können verwendet werden, um einige Arten von Thread-Schnittstellen zu identifizieren. Beispielsweise hat die IID für RLOCs immer die Form 0000:00ff:fe00: RLOC16 .

Die IID ergibt in Kombination mit einem Mesh-Local-Präfix das RLOC. Wenn Sie beispielsweise ein Mesh-Local-Präfix von fde5:8dba:82e1:1::/64 , lautet der RLOC für einen Knoten mit RLOC16 = 0x401 :

OT RLOC

Dieselbe Logik kann verwendet werden, um den RLOC für alle hervorgehobenen Knoten in der obigen Beispieltopologie zu bestimmen:

OT-Topologie mit Adresse

Da das RLOC jedoch auf der Position des Knotens in der Topologie basiert, kann sich das RLOC eines Knotens ändern, wenn sich die Topologie ändert.

Beispielsweise wird möglicherweise der Knoten 0x400 aus dem Thread-Netzwerk entfernt. Die Knoten 0x401 und 0x402 stellen neue Verbindungen zu verschiedenen Routern her und erhalten daher jeweils einen neuen RLOC16 und einen neuen RLOC:

OT-Topologie nach Änderung

Unicast-Adresstypen

Das RLOC ist nur eine von vielen IPv6-Unicast-Adressen, die ein Thread-Gerät haben kann. Eine andere Kategorie von Adressen werden als Endpoint Identifiers (EIDs) bezeichnet, die eine eindeutige Thread-Schnittstelle innerhalb einer Thread-Netzwerkpartition identifizieren. EIDs sind unabhängig von der Thread-Netzwerktopologie.

Gängige Unicast-Typen sind unten aufgeführt.

Eine EID, die eine Thread-Schnittstelle identifiziert, die über eine einzelne Funkübertragung erreichbar ist.
Beispiel fe80::54db:881c:3845:57f4
IID Basierend auf 802.15.4 Extended Address
Umfang Link-Local
Einzelheiten
  • Wird verwendet, um Nachbarn zu erkennen, Links zu konfigurieren und Routing-Informationen auszutauschen
  • Keine routingfähige Adresse
  • Hat immer ein Präfix von fe80::/16

Mesh-Local EID (ML-EID)

Eine EID, die eine Thread-Schnittstelle unabhängig von der Netzwerktopologie identifiziert. Wird verwendet, um eine Thread-Schnittstelle innerhalb derselben Thread-Partition zu erreichen. Wird auch als ULA (Unique Local Address) bezeichnet.
Beispiel fde5:8dba:82e1:1:416:993c:8399:35ab
IID Zufällig, ausgewählt nach Abschluss der Inbetriebnahme
Umfang Mesh-Local
Einzelheiten
  • Ändert sich nicht, wenn sich die Topologie ändert
  • Sollte von Anwendungen verwendet werden
  • fd00::/8 immer ein Präfix fd00::/8

Routing Locator (RLOC)

Identifiziert eine Thread-Schnittstelle anhand ihres Speicherorts in der Netzwerktopologie.
Beispiel fde5:8dba:82e1:1::ff:fe00:1001
IID 0000:00ff:fe00: RLOC16
Umfang Mesh-Local
Einzelheiten
  • Wird generiert, sobald ein Gerät eine Verbindung zu einem Netzwerk hergestellt hat
  • Zur Bereitstellung von IPv6-Datagrammen innerhalb eines Thread-Netzwerks
  • Ändert sich, wenn sich die Topologie ändert
  • Im Allgemeinen nicht von Anwendungen verwendet

Anycast Locator (ALOC)

Identifiziert eine Thread-Schnittstelle über die RLOC-Suche, wenn das RLOC eines Ziels nicht bekannt ist.
Beispiel fde5:8dba:82e1:1::ff:fe00:fc01
IID 0000:00ff:fe00:fc XX
Umfang Mesh-Local
Einzelheiten
  • fc XX = ALOC-Ziel , das das entsprechende RLOC nachschlägt
  • Im Allgemeinen nicht von Anwendungen verwendet

Globale Unicast-Adresse (GUA)

Eine EID, die eine Thread-Schnittstelle in einem globalen Bereich außerhalb eines Thread-Netzwerks identifiziert.
Beispiel 2000::54db:881c:3845:57f4
IID
  • SLAAC - Wird vom Gerät selbst zufällig zugewiesen
  • DHCP - Wird von einem DHCPv6-Server zugewiesen
  • Manuell - Wird von der Anwendungsschicht zugewiesen
Umfang Global
Einzelheiten
  • Eine öffentliche IPv6-Adresse
  • Hat immer ein Präfix von 2000::/3

Multicast

Multicast wird verwendet, um Informationen gleichzeitig an mehrere Geräte zu übertragen. In einem Thread-Netzwerk sind bestimmte Adressen je nach Umfang für die Multicast-Verwendung mit verschiedenen Gerätegruppen reserviert.

IPv6-Adresse Umfang Geliefert an
ff02::1 Link-Local Alle FTDs und MEDs
ff02::2 Link-Local Alle FTDs
ff03::1 Mesh-Local Alle FTDs und MEDs
ff03::2 Mesh-Local Alle FTDs

Möglicherweise stellen Sie fest, dass Sleepy End Devices (SEDs) in der obigen Multicast-Tabelle nicht als Empfänger enthalten sind. Stattdessen definiert Thread Link-Local- und Realm-Local-Scope-Unicast-Präfix-basierte IPv6-Multicast-Adresse, die für alle Thread-Knoten einschließlich SEDs verwendet wird. Diese Multicast-Adressen variieren je nach Thread-Netzwerk, da sie auf dem Unicast-Präfix Mesh-Local basieren (weitere Informationen zu IPv6-Multicast-Adressen auf Basis von Unicast- Präfixen finden Sie in RFC 3306 ).

Beliebige Bereiche, die über die bereits aufgeführten hinausgehen, werden auch für Thread-Geräte unterstützt.

Anycast

Anycast wird verwendet, um Datenverkehr an eine Thread-Schnittstelle weiterzuleiten, wenn das RLOC eines Ziels nicht bekannt ist. Ein Anycast Locator (ALOC) identifiziert den Speicherort mehrerer Schnittstellen innerhalb einer Thread-Partition. Die letzten 16 Bits eines ALOC, ALOC16 genannt, haben das Format 0xfc XX , das den ALOC-Typ darstellt.

Beispielsweise ist ein ALOC16 zwischen 0xfc01 und 0xfc0f für DHCPv6-Agenten reserviert. Wenn das spezifische RLOC des DHCPv6-Agenten unbekannt ist (möglicherweise weil sich die Netzwerktopologie geändert hat), kann eine Nachricht an ein ALOC des DHCPv6-Agenten gesendet werden, um das RLOC zu erhalten.

Thread definiert die folgenden ALOC16-Werte:

ALOC16 Art
0xfc00 Führer
0xfc01 - 0xfc0f DHCPv6-Agent
0xfc10 - 0xfc2f Bedienung
0xfc30 - 0xfc37 Kommissar
0xfc40 - 0xfc4e Nachbarentdeckungsagent
0xfc38 - 0xfc3f
0xfc4f - 0xfcff
Reserviert

Rekapitulieren

Was du gelernt hast:

  • Ein Thread-Netzwerk besteht aus drei Bereichen: Link-Local, Mesh-Local und Global
  • Ein Thread-Gerät verfügt über mehrere Unicast-IPv6-Adressen
    • Ein RLOC repräsentiert den Standort eines Geräts im Thread-Netzwerk
    • Eine ML-EID ist für ein Thread-Gerät innerhalb einer Partition eindeutig und sollte von Anwendungen verwendet werden
  • Thread verwendet Multicast, um Daten an Gruppen von Knoten und Routern weiterzuleiten
  • Thread verwendet Anycast, wenn das RLOC eines Ziels unbekannt ist

Weitere Informationen zur IPv6-Adressierung von Thread finden Sie in den Abschnitten 5.2 und 5.3 der Thread-Spezifikation .