IPv6-Adressierung

<ph type="x-smartling-placeholder"></ph> Quelle auf GitHub ansehen

Sehen wir uns an, wie Thread jedes Gerät im Netzwerk identifiziert Arten von Adressen, über die sie miteinander kommunizieren.

Ebenen

OT-Bereiche

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

  • Link-Local: alle über eine einzelne Funkübertragung erreichbaren Schnittstellen
  • 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 werden. Link-Local hat die Präfixe fe80::/16, Mesh-Local hat die Präfixe fd00::/8.

Unicast

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

Bevor wir die einzelnen Typen im Detail beschreiben, sehen wir uns zuerst einen gängigen Typ an, den wir Routingsuche (RLOC). Das RLOC identifiziert eine Thread-Schnittstelle anhand Standort in der Netzwerktopologie.

So wird eine Routensuche generiert

Allen Geräten werden eine Router-ID und eine untergeordnete ID zugewiesen. Jeder Router verwaltet ein Tabelle mit allen ihren untergeordneten Elementen angezeigt. Durch die Kombination dieser Daten wird ein Gerät innerhalb der Topologie. Sehen wir uns zum Beispiel die hervorgehobenen Knoten in der wobei die Zahl in einem Router (Pentagon) die Router-ID ist, und die Zahl in einem Endgerät (Kreis) ist die Kinder-ID:

OT RLOC-Topologie

Die Router-ID jedes untergeordneten Publishers entspricht seinem übergeordneten Partner (Router). Da ein Router kein untergeordnetes Element ist, ist die Child-ID für einen Router immer 0. Zusammen ergeben diese Werte für jedes Gerät im Thread-Netzwerk eindeutig und werden zur Erstellung des RLOC16, das die letzten 16 Bits des RLOC darstellt.

So wird z. B. der RLOC16 für den Knoten oben links (Router ID = 1 und untergeordnete ID = 1):

OT RLOC16

Die RLOC16 ist Teil der Schnittstellenkennung (IID), die der die letzten 64 Bit der IPv6-Adresse. Mit einigen IIDs können bestimmte Typen identifiziert werden von Thread-Schnittstellen. Die IID für RLOCs liegt beispielsweise immer im folgenden Format vor:

0000:00ff:fe00:RLOC16

Die IID ergibt in Kombination mit einem Mesh-Local-Präfix das RLOC. Beispiel: mit dem Mesh-Local-Präfix fde5:8dba:82e1:1::/64, dem RLOC für einen Knoten, RLOC16 = 0x401 ist:

OT RLOC

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

OT-Topologie mit Adresse

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

Beispielsweise wird möglicherweise Knoten 0x400 aus dem Thread-Netzwerk entfernt. Knoten 0x401 und 0x402 stellen neue Verbindungen zu verschiedenen Routern her. werden ihnen jeweils ein neues RLOC16 und ein neues RLOC zugewiesen:

OT-Topologie nach Änderung

Unicast-Adresstypen

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

Die gängigen Unicast-Typen werden im Folgenden beschrieben.

Eine EID, die eine Thread-Schnittstelle identifiziert, die über eine einzelne Funkübertragung erreichbar ist.
Beispielfe80::54db:881c:3845:57f4
IIDBasierend auf 802.15.4 erweiterter Adresse
EbeneLink-Local
Details
  • Wird verwendet, um Nachbarn zu finden, Links zu konfigurieren und Routinginformationen auszutauschen
  • Keine routbare Adresse
  • Hat immer das Präfix fe80::/16

Lokale EID des Mesh-Netzwerks (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. Auch als eindeutige lokale Adresse (ULA) bezeichnet.
Beispielfde5:8dba:82e1:1:416:993c:8399:35ab
IIDZufällig, wird nach Abschluss der Inbetriebnahme ausgewählt
EbeneMesh-Netzwerk (lokal)
Details
  • Ändert sich nicht, wenn sich die Topologie ändert
  • Für Apps geeignet
  • Hat immer das Präfix fd00::/8

Routingfinder (RLOC)

Identifiziert eine Thread-Schnittstelle anhand ihrer Position in der Netzwerktopologie.
Beispielfde5:8dba:82e1:1::ff:fe00:1001
IID0000:00ff:fe00:RLOC16
EbeneMesh-Netzwerk (lokal)
Details
  • Wird generiert, sobald ein Gerät mit einem Netzwerk verbunden ist
  • Für die Übermittlung von IPv6-Datagrammen in einem Thread-Netzwerk
  • Änderungen, wenn sich die Topologie ändert
  • Im Allgemeinen nicht von Anwendungen verwendet

Anycast-Finder (ALOC)

Identifiziert eine Thread-Schnittstelle per RLOC-Suche, wenn das RLOC eines Ziels nicht bekannt ist.
Beispielfde5:8dba:82e1:1::ff:fe00:fc01
IID0000:00ff:fe00:fcXX
EbeneMesh-Netzwerk (lokal)
Details
  • fcXX = ALOC-Ziel, das das entsprechende RLOC sucht
  • Im Allgemeinen nicht von Anwendungen verwendet

Globale Unicast-Adresse (GUA)

Eine EID, die eine Thread-Schnittstelle auf globalem Bereich jenseits eines Thread-Netzwerks identifiziert.
Beispiel2000::54db:881c:3845:57f4
IID
  • SLAAC – zufällig vom Gerät selbst zugewiesen
  • DHCP – von einem DHCPv6-Server zugewiesen
  • Manuell – von der Anwendungsebene zugewiesen
EbeneGlobal
Details
  • Eine öffentliche IPv6-Adresse
  • Hat immer das Präfix 2000::/3

Multicast

Multicast wird verwendet, um Informationen an mehrere Geräte gleichzeitig zu übertragen. In einer Thread-Netzwerk, bestimmte Adressen sind für die Multicast-Nutzung mit unterschiedlichen Gruppen von Geräten, je nach Umfang.

IPv6-Adresse Umfang Zugestellt:
ff02::1 Link-Local Alle FTDs und MEDs
ff02::2 Link-Local Alle FTDs
ff03::1 Mesh-Netzwerk (lokal) Alle FTDs und MEDs
ff03::2 Mesh-Netzwerk (lokal) Alle FTDs

Möglicherweise stellen Sie fest, dass Sleepy End Devices (SEDs) nicht als Empfänger in der Multicast-Tabelle oben. Vielmehr definiert Thread Link-Local- und Realm-Local-Bereich – Unicast-Präfixbasiertes IPv6-Multicast Adresse, die für alle Thread-Knoten, einschließlich SEDs, verwendet wird. Diese Multicasts Adressen variieren je nach Thread-Netzwerk, da es auf Unicast basiert Mesh-Local-Präfix (siehe RFC 3306) finden Sie weitere Informationen zu IPv6-Multicast-Adressen mit Unicast-Präfix.

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

Anycast

Anycast wird verwendet, um Traffic an eine Thread-Schnittstelle weiterzuleiten, wenn das RLOC eines Das Ziel ist unbekannt. Ein Anycast Locator (ALOC) ermittelt den Standort innerhalb einer Thread-Partition mehrere Schnittstellen. Die letzten 16 Bit eines ALOC, ALOC16, hat das Format 0xfcXX, für den ALOC-Typ steht.

Beispielsweise ist ein ALOC16 zwischen 0xfc01 und 0xfc0f für DHCPv6 reserviert. Kundenservicemitarbeiter: Wenn die spezifische DHCPv6-Agent-RLOC unbekannt ist, weil der Netzwerktopologie geändert hat, kann eine Nachricht an einen DHCPv6-Agent-ALOC gesendet werden, das RLOC erhalten.

Thread definiert die folgenden ALOC16-Werte:

ALOC16 Typ
0xfc00 Beste Variante
0xfc01 – 0xfc0f DHCPv6-Agent
0xfc10 – 0xfc2f Dienst
0xfc30 – 0xfc37 Commissioner
0xfc40 – 0xfc4e Neighbor Discovery-Agent
0xfc380xfc3f
0xfc4f0xfcff
Reserviert

Zusammenfassung

Das haben Sie gelernt:

  • Ein Thread-Netzwerk besteht aus drei Bereichen: Link-Local, Mesh-Local und Global.
  • Ein Thread-Gerät hat mehrere Unicast-IPv6-Adressen <ph type="x-smartling-placeholder">
      </ph>
    • Ein RLOC steht für den Standort eines Geräts im Thread-Netzwerk.
    • Eine ML-EID ist für ein Thread-Gerät in einer Partition eindeutig und sollte von Anwendungen verwendet werden
  • Thread nutzt Multicast, um Daten an Knoten- und Routergruppen 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.

Wissen testen

Welche drei Bereiche werden für die Unicast-Adressierung in einem Thread-Netzwerk verwendet?
Privat
Falsch.
Schnittstelle Local
Falsch.
Link-Local
Korrekt.
Website-lokal
Falsch.
Mesh-Netzwerk (lokal)
Korrekt.
Global
Korrekt.
Was bedeutet es, wenn ein Gerät die Kinder-ID 0 hat?
Das Gerät ist ein Kind.
Falsch.
Das Gerät ist ein REED.
Fast, aber falsch.
Das Gerät ist ein Router.
Korrekt. Ein Router hat immer die untergeordnete ID 0.
Eine Kamera, die ein Knoten in einem Thread-Netzwerk ist, erhält ein neues RLOC16 und RLOC. Welche der folgenden Ereignisse könnten dazu geführt haben?
Jemand hat per Fernzugriff Bilder von der Kamera heruntergeladen.
Falsch. Dieses Ereignis hätte keine Auswirkungen auf den Thread Netzwerk.
Ein Router hat die Verbindung zum Netzwerk getrennt.
Korrekt. Wenn ein Router von einem Netzwerk getrennt wird, Topologieänderungen, die dazu führen können, dass das Gerät und einen neuen RLOC erhalten.
Die Kamera ist in den Ruhemodus gewechselt, wodurch sich die Netzwerktopologie geändert hat.
Falsch. Der Wechsel in den Ruhemodus führt nicht zwangsläufig dazu, dass ein Gerät um eine neue Netzwerkadresse zu erhalten.
Ein Gerät in einem Thread-Netzwerk abonniert ff03::2 Multicast-Adresse. Was verrät uns dies über das Gerät?
Es ist ein minimales Endgerät (Minimal End Device, MED).
Falsch.
Es ist ein Full-End-Gerät (Full End Device, FED).
Falsch. Hinweis: Es ist möglicherweise ein FED.
Es ist ein Minimal Thread Device (MTD).
Falsch.
Es ist ein Full-Thread-Gerät (FTD).
Korrekt. Nur Full-Thread-Geräte abonnieren den Multicast-Adresse von ff03::2. Sie tun dies in der Umfang.
Welche Art von Adressierung und Routing verwendet Thread für die Weiterleitung von Daten Knoten- und Routergruppen zusammen?
Unicast
Falsch.
Anycast
Falsch.
Multicast
Korrekt.
übertragen
Falsch.
Welche Art von Adressierung und Routing verwendet ein Thread-Gerät, wenn das RLOC des beabsichtigten Nachrichtenempfängers unbekannt?
Unicast
Falsch.
Anycast
Korrekt. Mit Anycast kann ein Gerät einen Knoten erreichen, dessen RLOC durch Adressieren des ALOC des Geräts.
Multicast
Falsch.
übertragen
Falsch.