4. Neue Neighbor-Discovery-Optionen und -Nachrichten (New Neighbor Discovery Options and Messages)
4. Neue Neighbor-Discovery-Optionen und -Nachrichten (New Neighbor Discovery Options and Messages)
Dieser Abschnitt definiert neue Neighbor-Discovery-Nachrichtenoptionen, die von dieser Spezifikation verwendet werden. Die Address Registration Option wird von Hosts verwendet, während die Authoritative Border Router Option und die 6LoWPAN Context Option in der ersetzbaren Router-zu-Router-Interaktion verwendet werden. Dieser Abschnitt definiert außerdem die neuen Router-zu-Router-Nachrichten Duplicate Address Request und Duplicate Address Confirmation.
4.1. Adressregistrierungsoption (Address Registration Option)
Router müssen die Menge der direkt erreichbaren Host-IP-Adressen und deren entsprechenden Link-Layer-Adressen kennen. Dies muss gepflegt werden, wenn sich die Funkreichweite ändert. Zu diesem Zweck wird eine Address Registration Option (ARO) eingeführt, die in von Hosts gesendeten unicast NS-Nachrichten enthalten sein kann. Somit kann sie in die unicast NS-Nachrichten aufgenommen werden, die ein Host als Teil der NUD sendet, um festzustellen, dass er noch einen Standardrouter erreichen kann. Die ARO wird vom empfangenden Router verwendet, um seinen Neighbor Cache zuverlässig zu pflegen. Dieselbe Option ist in entsprechenden NA-Nachrichten enthalten, wobei ein Status-Feld den Erfolg oder Misserfolg der Registrierung angibt. Diese Option wird immer vom Host initiiert.
Die in der ARO enthaltenen Informationen sind auch in den Multihop-Nachrichten DAR und DAC enthalten, die zwischen 6LRs und 6LBRs verwendet werden, aber die Option selbst wird in diesen Nachrichten nicht verwendet.
Die ARO ist für Zuverlässigkeit und Energieeinsparung erforderlich. Das lifetime-Feld bietet dem Host Flexibilität, eine Adresse zu registrieren, die während seines vorgesehenen Schlafplans nutzbar sein sollte (weiterhin vom 6LR im Routingprotokoll angekündigt usw.).
Der Sender der NS enthält außerdem die EUI-64 [EUI64] der Schnittstelle, von der aus er eine Adresse registriert. Dies wird als eindeutige ID für die Erkennung doppelter Adressen verwendet. Es wird verwendet, um den Unterschied zwischen demselben Knoten, der seine Adresse erneut registriert, und einem anderen Knoten (mit einer anderen EUI-64), der eine bereits von jemand anderem verwendete Adresse registriert, festzustellen. Die EUI-64 wird auch verwendet, um ein NA, das einen Fehler-Statuscode trägt, an die EUI-64-basierte Link-Local-IPv6-Adresse des Hosts zuzustellen (siehe Abschnitt 6.5.2).
Wenn die ARO von Hosts verwendet wird, MUST ein SLLAO (Source Link-Layer Address Option) [RFC4861] enthalten sein, und die zu registrierende Adresse MUST die IPv6-Quelladresse der NS-Nachricht sein.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length = 2 | Status | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ EUI-64 +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields (Felder):
Type: 33
Length: 8-bit unsigned integer. Die Länge der Option in Einheiten von 8 Bytes. Immer 2.
Status: 8-bit unsigned integer. Gibt den Status einer Registrierung in der NA-Antwort an. MUST in NS-Nachrichten auf 0 gesetzt werden. Siehe unten.
Reserved: Dieses Feld wird nicht verwendet. Es MUST vom Sender auf Null initialisiert und vom Empfänger MUST ignoriert werden.
Registration Lifetime: 16-bit unsigned integer. Die Zeitdauer in Einheiten von 60 Sekunden, die der Router die NCE für den Sender der NS, die diese Option enthält, behalten sollte.
EUI-64: 64 bits. Dieses Feld wird verwendet, um die Schnittstelle der Registered Address eindeutig zu identifizieren, indem der ihr zugewiesene EUI-64-Bezeichner [EUI64] unverändert aufgenommen wird.
Die in NAs verwendeten Statuswerte sind:
+--------+--------------------------------------------+
| Status | Description |
+--------+--------------------------------------------+
| 0 | Success |
| 1 | Duplicate Address |
| 2 | Neighbor Cache Full |
| 3-255 | Allocated using Standards Action [RFC5226] |
+--------+--------------------------------------------+
Table 1
4.2. 6LoWPAN-Kontextoption (6LoWPAN Context Option)
Die 6LoWPAN Context Option (6CO) trägt Präfixinformationen für die LoWPAN-Headerkompression und ist ähnlich der PIO aus [RFC4861]. Allerdings können die Präfixe sowohl entfernt als auch LoWPAN-lokal sein, da die Headerkompression potenziell auf alle IPv6-Adressen angewendet wird. Diese Option ermöglicht die Verteilung mehrerer Kontexte, die durch eine CID identifiziert werden, zur Verwendung wie in [RFC6282] spezifiziert. Ein Kontext kann ein Präfix beliebiger Länge oder eine Adresse (/128) sein, und bis zu 16 6CO können in einer RA-Nachricht getragen werden.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |Context Length | Res |C| CID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Valid Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. Context Prefix .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: 6LoWPAN Context Option Format
Type: 34
Length: 8-bit unsigned integer. Die Länge der Option (einschließlich der Felder Type und Length) in Einheiten von 8 Bytes. Kann 2 oder 3 sein, abhängig von der Länge des Feldes Context Prefix.
Context Length: 8-bit unsigned integer. Die Anzahl der führenden Bits im Feld Context Prefix, die gültig sind. Der Wert reicht von 0 bis 128. Wenn er größer als 64 ist, dann MUST die Length 3 sein.
C: 1-bit context Compression flag. Dieses Flag zeigt an, ob der Kontext für die Verwendung in der Kompression gültig ist. Ein Kontext, der nicht gültig ist, MUST NOT für die Kompression verwendet werden, SHOULD jedoch in der Dekompression verwendet werden, falls ein anderer Kompressor die aktualisierte Kontextinformation noch nicht erhalten hat. Dieses Flag wird verwendet, um den Kontext-Lebenszyklus basierend auf den Empfehlungen in Abschnitt 7.2 zu verwalten.
CID: 4-bit Context Identifier für diese Präfixinformation. Die CID wird von der kontextbasierten Headerkompression wie in [RFC6282] spezifiziert verwendet. Die Liste der CIDs für ein LoWPAN wird auf dem 6LBR konfiguriert, der die Kontextinformation für das 6LoWPAN erzeugt.
Res, Reserved: Dieses Feld wird nicht verwendet. Es MUST vom Sender auf Null initialisiert und vom Empfänger MUST ignoriert werden.
Valid Lifetime: 16-bit unsigned integer. Die Zeitdauer in Einheiten von 60 Sekunden (relativ zum Zeitpunkt des Paketempfangs), während der der Kontext für die Zwecke der Headerkompression oder -dekompression gültig ist. Ein Wert aus lauter Nullbits (0x0) zeigt an, dass dieser Kontexteintrag MUST sofort entfernt werden muss.
Context Prefix: Das IPv6-Präfix oder die Adresse, die dem CID-Feld entspricht. Die gültige Länge dieses Feldes ist im Feld Context Length enthalten. Dieses Feld wird mit Nullen aufgefüllt, um die Option zu einem Vielfachen von 8 Bytes zu machen.
4.3. Option für autoritativen Grenzrouter (Authoritative Border Router Option)
Die Authoritative Border Router Option (ABRO) wird benötigt, wenn RA-Nachrichten verwendet werden, um Präfixe und Kontextinformationen über eine Route-over-Topologie zu verbreiten. In diesem Fall empfangen 6LRs PIOs von anderen 6LRs. Dies impliziert, dass ein 6LR nicht einfach die zuletzt empfangene RA gewinnen lassen kann. Um Präfixe zuverlässig zum 6LoWPAN hinzufügen und daraus entfernen zu können, müssen wir Informationen vom autoritativen 6LBR transportieren. Dies geschieht, indem eine Versionsnummer eingeführt wird, die vom 6LBR gesetzt wird und die von den 6LRs propagiert wird, während sie die Präfix- und Kontextinformationen mit dieser ABRO propagieren. Wenn es mehrere 6LBRs gibt, hätten sie separate Versionsnummernräume. Daher muss diese Option die IP-Adresse des 6LBR tragen, der dieses Informationsset erzeugt hat.
Die ABRO MUST in allen RA-Nachrichten enthalten sein, wenn RAs verwendet werden, um Informationen zwischen Routern zu propagieren (wie in Abschnitt 8.2 beschrieben).
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length = 3 | Version Low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version High | Valid Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ 6LBR Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields (Felder):
Type: 35
Length: 8-bit unsigned integer. Die Länge der Option in Einheiten von 8 Bytes. Immer 3.
Version Low, Version High: Zusammen bilden Version Low und Version High das Feld Version Number, eine 32-bit unsigned integer, wobei Version Low die 16 niederwertigen Bits und Version High die 16 höherwertigen Bits sind. Die Versionsnummer, die diesem Informationssatz entspricht und im RA-Nachricht enthalten ist. Der autoritative 6LBR, der das Präfix erzeugt, erhöht diese Versionsnummer jedes Mal, wenn sich sein Satz von Präfix- oder Kontextinformationen ändert.
Valid Lifetime: 16-bit unsigned integer. Die Zeitdauer in Einheiten von 60 Sekunden (relativ zum Zeitpunkt des Paketempfangs), während der dieser Satz von Grenzrouter-Informationen gültig ist. Ein Wert aus lauter Nullbits (0x0) nimmt einen Standardwert von 10.000 (~eine Woche) an.
Reserved: Dieses Feld wird nicht verwendet. Es MUST vom Sender auf Null initialisiert und vom Empfänger MUST ignoriert werden.
6LBR Address: IPv6-Adresse des 6LBR, der den Ursprung der enthaltenen Versionsnummer darstellt.
4.4. Nachrichten zu doppelten Adressen (Duplicate Address Messages)
Für die Multihop-DAD-Austausche zwischen einem 6LR und einem 6LBR, wie in Abschnitt 8.2 spezifiziert, gibt es zwei neue ICMPv6-Nachrichtentypen, die Duplicate Address Request (DAR) und die Duplicate Address Confirmation (DAC). Wir vermeiden die Wiederverwendung der NS- und NA-Nachrichten für diesen Zweck, da diese Nachrichten nicht der Prüfung hop limit=255 unterliegen, da sie von zwischengeschalteten 6LRs weitergeleitet werden. Die in den Nachrichten enthaltenen Informationen sind ansonsten dieselben wie in einer NS, die eine ARO trägt, wobei das Nachrichtenformat die Felder inline enthält, die sich in der ARO befinden.
Die DAR und DAC verwenden dasselbe Nachrichtenformat mit unterschiedlichen ICMPv6-Typwerten, und das Status-Feld ist nur in der DAC-Nachricht aussagekräftig.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Status | Reserved | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ EUI-64 +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Registered Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP fields (IP-Felder):
IPv6 Source: Eine nicht-Links-lokale Adresse des sendenden Routers.
IPv6 Destination: In einer DAR eine nicht-Links-lokale Adresse eines 6LBR. In einer DAC ist dies einfach die Quelle aus der DAR.
Hop Limit: Beim Senden auf MULTIHOP_HOPLIMIT gesetzt. Beim Empfang MUST ignoriert werden.
ICMP Fields (ICMP-Felder):
Type: 157 für die DAR und 158 für die DAC.
Code: Beim Senden auf Null gesetzt. Beim Empfang MUST ignoriert werden.
Checksum: Die ICMP-Prüfsumme. Siehe [RFC4443].
Status: 8-bit unsigned integer. Gibt den Status einer Registrierung in der DAC an. MUST in der DAR auf 0 gesetzt werden. Siehe Table 1.
Reserved: Dieses Feld wird nicht verwendet. Es MUST vom Sender auf Null initialisiert und vom Empfänger MUST ignoriert werden.
Registration Lifetime: 16-bit unsigned integer. Die Zeitdauer in Einheiten von 60 Sekunden, während der der 6LBR den DAD-Tabelleneintrag (Abschnitt 8.2.2) für die Registered Address behalten sollte. Ein Wert von 0 zeigt in einer DAR an, dass der DAD-Tabelleneintrag entfernt werden sollte.
EUI-64: 64 bits. Dieses Feld wird verwendet, um die Schnittstelle der Registered Address eindeutig zu identifizieren, indem der ihr zugewiesene EUI-64-Bezeichner [EUI64] unverändert aufgenommen wird.
Registered Address: 128-bit field. Trägt die Host-Adresse, die im IPv6-Source-Feld in der NS enthalten war, die die vom Host gesendete ARO enthielt.