Aller au contenu principal

4. Nouvelles options et messages de Neighbor Discovery (New Neighbor Discovery Options and Messages)

4. Nouvelles options et messages de Neighbor Discovery (New Neighbor Discovery Options and Messages)

Cette section définit de nouvelles options de message Neighbor Discovery utilisées par cette spécification. L’Address Registration Option est utilisée par les hôtes, tandis que l’Authoritative Border Router Option et la 6LoWPAN Context Option sont utilisées dans l’interaction routeur-à-routeur substituable. Cette section définit aussi les nouveaux messages routeur-à-routeur Duplicate Address Request et Duplicate Address Confirmation.

4.1. Option d’enregistrement d’adresse (Address Registration Option)

Les routeurs doivent connaître l’ensemble des adresses IP des hôtes directement joignables et leurs adresses de couche lien correspondantes. Cela doit être maintenu à mesure que la joignabilité radio change. À cette fin, une Address Registration Option (ARO) est introduite, pouvant être incluse dans des messages NS unicast envoyés par les hôtes. Ainsi, elle peut être incluse dans les messages NS unicast qu’un hôte envoie dans le cadre de la NUD afin de déterminer qu’il peut encore atteindre un routeur par défaut. L’ARO est utilisée par le routeur récepteur pour maintenir de façon fiable son Neighbor Cache. La même option est incluse dans les messages NA correspondants avec un champ Status indiquant le succès ou l’échec de l’enregistrement. Cette option est toujours initiée par l’hôte.

L’information contenue dans l’ARO est aussi incluse dans les messages DAR et DAC multi-sauts utilisés entre 6LR et 6LBR, mais l’option elle-même n’est pas utilisée dans ces messages.

L’ARO est requise pour la fiabilité et l’économie d’énergie. Le champ lifetime fournit à l’hôte une flexibilité pour enregistrer une adresse qui devrait être utilisable (continuer à être annoncée par le 6LR dans le protocole de routage, etc.) pendant son calendrier de sommeil prévu.

L’émetteur du NS inclut aussi l’EUI-64 [EUI64] de l’interface à partir de laquelle il enregistre une adresse. Ceci est utilisé comme un identifiant unique pour la détection d’adresses dupliquées. Cela sert à faire la différence entre le même nœud réenregistrant son adresse et un nœud différent (avec un EUI-64 différent) enregistrant une adresse déjà utilisée par quelqu’un d’autre. L’EUI-64 est aussi utilisé pour livrer un NA transportant un code Status d’erreur vers l’adresse IPv6 link-local de l’hôte basée sur l’EUI-64 (voir Section 6.5.2).

Lorsque l’ARO est utilisée par les hôtes, un SLLAO (Source Link-Layer Address Option) [RFC4861] MUST être inclus, et l’adresse à enregistrer MUST être l’adresse IPv6 source du message NS.

 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 (champs) :

Type: 33

Length: 8-bit unsigned integer. La longueur de l’option en unités de 8 octets. Toujours 2.

Status: 8-bit unsigned integer. Indique l’état d’un enregistrement dans la réponse NA. MUST être mis à 0 dans les messages NS. Voir ci-dessous.

Reserved: Ce champ n’est pas utilisé. Il MUST être initialisé à zéro par l’émetteur et MUST être ignoré par le récepteur.

Registration Lifetime: 16-bit unsigned integer. La durée, en unités de 60 secondes, pendant laquelle le routeur devrait conserver la NCE pour l’émetteur du NS qui inclut cette option.

EUI-64: 64 bits. Ce champ est utilisé pour identifier de façon unique l’interface de l’adresse enregistrée en incluant l’identifiant EUI-64 [EUI64] qui lui est assigné, sans modification.

Les valeurs Status utilisées dans les NA sont :

       +--------+--------------------------------------------+
| Status | Description |
+--------+--------------------------------------------+
| 0 | Success |
| 1 | Duplicate Address |
| 2 | Neighbor Cache Full |
| 3-255 | Allocated using Standards Action [RFC5226] |
+--------+--------------------------------------------+

Table 1

4.2. Option de contexte 6LoWPAN (6LoWPAN Context Option)

La 6LoWPAN Context Option (6CO) transporte des informations de préfixe pour la compression d’en-têtes LoWPAN et est similaire au PIO de [RFC4861]. Cependant, les préfixes peuvent être distants aussi bien que locaux au LoWPAN, puisque la compression d’en-têtes s’applique potentiellement à toutes les adresses IPv6. Cette option permet la dissémination de multiples contextes identifiés par un CID pour utilisation comme spécifié dans [RFC6282]. Un contexte peut être un préfixe de toute longueur ou une adresse (/128), et jusqu’à 16 6CO peuvent être transportées dans un message RA.

 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. La longueur de l’option (incluant les champs Type et Length) en unités de 8 octets. Peut être 2 ou 3, selon la longueur du champ Context Prefix.

Context Length: 8-bit unsigned integer. Le nombre de bits de tête du champ Context Prefix qui sont valides. La valeur va de 0 à 128. Si elle est supérieure à 64, alors Length MUST être 3.

C: 1-bit context Compression flag. Ce drapeau indique si le contexte est valide pour une utilisation en compression. Un contexte qui n’est pas valide MUST NOT être utilisé pour la compression, mais SHOULD être utilisé en décompression au cas où un autre compresseur n’aurait pas encore reçu l’information de contexte mise à jour. Ce drapeau est utilisé pour gérer le cycle de vie du contexte selon les recommandations de la Section 7.2.

CID: 4-bit Context Identifier pour cette information de préfixe. Le CID est utilisé par la compression d’en-têtes basée sur contexte comme spécifié dans [RFC6282]. La liste des CID pour un LoWPAN est configurée sur le 6LBR qui origine l’information de contexte pour le 6LoWPAN.

Res, Reserved: Ce champ n’est pas utilisé. Il MUST être initialisé à zéro par l’émetteur et MUST être ignoré par le récepteur.

Valid Lifetime: 16-bit unsigned integer. La durée, en unités de 60 secondes (relative au temps de réception du paquet), pendant laquelle le contexte est valide pour la compression ou la décompression d’en-têtes. Une valeur de tous bits à zéro (0x0) indique que cette entrée de contexte MUST être retirée immédiatement.

Context Prefix: Le préfixe ou l’adresse IPv6 correspondant(e) au champ CID. La longueur valide de ce champ est incluse dans le champ Context Length. Ce champ est complété avec des zéros afin de rendre l’option multiple de 8 octets.

4.3. Option de routeur frontière faisant autorité (Authoritative Border Router Option)

L’Authoritative Border Router Option (ABRO) est nécessaire lorsque des messages RA sont utilisés pour disséminer des préfixes et des informations de contexte à travers une topologie route-over. Dans ce cas, les 6LR reçoivent des PIO d’autres 6LR. Cela implique qu’un 6LR ne peut pas simplement laisser gagner le RA reçu le plus récemment. Afin de pouvoir ajouter et retirer de manière fiable des préfixes du 6LoWPAN, nous devons transporter des informations provenant du 6LBR faisant autorité. Cela se fait en introduisant un numéro de version que le 6LBR définit et que les 6LR propagent au fur et à mesure qu’ils propagent les informations de préfixe et de contexte avec cette ABRO. Lorsqu’il existe plusieurs 6LBR, ils auraient des espaces de numéros de version séparés. Ainsi, cette option doit transporter l’adresse IP du 6LBR qui a originé cet ensemble d’informations.

L’ABRO MUST être incluse dans tous les messages RA dans le cas où des RA sont utilisés pour propager l’information entre routeurs (comme décrit dans la Section 8.2).

 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 (champs) :

Type: 35

Length: 8-bit unsigned integer. La longueur de l’option en unités de 8 octets. Toujours 3.

Version Low, Version High: Ensemble, Version Low et Version High constituent le champ Version Number, un 32-bit unsigned integer où Version Low est les 16 bits de poids faible et Version High les 16 bits de poids fort. Le numéro de version correspondant à cet ensemble d’informations contenu dans le message RA. Le 6LBR faisant autorité qui origine le préfixe augmente ce numéro de version chaque fois que son ensemble d’informations de préfixe ou de contexte change.

Valid Lifetime: 16-bit unsigned integer. La durée, en unités de 60 secondes (relative au temps de réception du paquet), pendant laquelle cet ensemble d’informations de routeur frontière est valide. Une valeur de tous bits à zéro (0x0) suppose une valeur par défaut de 10 000 (~une semaine).

Reserved: Ce champ n’est pas utilisé. Il MUST être initialisé à zéro par l’émetteur et MUST être ignoré par le récepteur.

6LBR Address: Adresse IPv6 du 6LBR qui est l’origine du numéro de version inclus.

4.4. Messages d’adresses dupliquées (Duplicate Address Messages)

Pour les échanges DAD multi-sauts entre un 6LR et un 6LBR tels que spécifiés dans la Section 8.2, il existe deux nouveaux types de message ICMPv6 appelés Duplicate Address Request (DAR) et Duplicate Address Confirmation (DAC). Nous évitons de réutiliser les messages NS et NA à cette fin, puisque ces messages ne sont pas soumis à la vérification hop limit=255 car ils sont relayés par des 6LR intermédiaires. L’information contenue dans les messages est, par ailleurs, la même que celle qui serait dans un NS transportant une ARO, le format de message intégrant les champs qui sont dans l’ARO.

Le DAR et le DAC utilisent le même format de message avec des valeurs de type ICMPv6 différentes, et le champ Status n’est significatif que dans le message DAC.

 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 :

IPv6 Source: Une adresse non link-local du routeur émetteur.

IPv6 Destination: Dans un DAR, une adresse non link-local d’un 6LBR. Dans un DAC, il s’agit simplement de la source du DAR.

Hop Limit: Mis à MULTIHOP_HOPLIMIT à l’émission. MUST être ignoré à la réception.

ICMP Fields :

Type: 157 pour le DAR et 158 pour le DAC.

Code: Mis à zéro à l’émission. MUST être ignoré à la réception.

Checksum: La somme de contrôle ICMP. Voir [RFC4443].

Status: 8-bit unsigned integer. Indique le statut d’un enregistrement dans le DAC. MUST être mis à 0 dans le DAR. Voir Table 1.

Reserved: Ce champ n’est pas utilisé. Il MUST être initialisé à zéro par l’émetteur et MUST être ignoré par le récepteur.

Registration Lifetime: 16-bit unsigned integer. La durée, en unités de 60 secondes, pendant laquelle le 6LBR devrait conserver l’entrée de table DAD (Section 8.2.2) pour l’adresse enregistrée. Une valeur de 0 indique dans un DAR que l’entrée de table DAD devrait être supprimée.

EUI-64: 64 bits. Ce champ est utilisé pour identifier de façon unique l’interface de l’adresse enregistrée en incluant l’identifiant EUI-64 [EUI64] assigné, sans modification.

Registered Address: 128-bit field. Transporte l’adresse de l’hôte qui était contenue dans le champ IPv6 Source du NS qui contenait l’ARO envoyée par l’hôte.