Adressage IPv6

<ph type="x-smartling-placeholder"></ph> Consulter le code source sur GitHub

Voyons comment Thread identifie chaque appareil du réseau et quels types d'adresses qu'ils utilisent pour communiquer entre eux.

Niveaux d'accès

Lunettes OT

Il existe trois champs d'application dans un réseau Thread pour l'adressage unicast:

  • Liaison locale : toutes les interfaces accessibles par une seule transmission radio
  • Maillage local : toutes les interfaces accessibles au sein du même réseau Thread
  • Global : toutes les interfaces accessibles depuis l'extérieur d'un réseau Thread

Les deux premiers champs d'application correspondent à des préfixes désignés par un réseau Thread. Les liens locaux ont le préfixe fe80::/16, tandis que les réseaux maillés locaux ont le préfixe fd00::/8

Unicast

Plusieurs adresses unicast IPv6 identifient un seul appareil Thread. Chacun a une fonction différente en fonction du champ d'application et du cas d'utilisation.

Avant de détailler chaque type, penchons-nous sur un type commun, appelé de localisation de routage (RLOC, Routing Locator). Le RLOC identifie une interface Thread en fonction de son dans la topologie du réseau.

Comment un outil de localisation de routage est-il généré ?

Tous les appareils se voient attribuer un ID de routeur et un ID enfant. Chaque routeur possède une tableau de tous leurs enfants, dont la combinaison identifie de façon unique appareil dans la topologie. Prenons l'exemple des nœuds mis en surbrillance dans topologie suivante, où le numéro dans un routeur (en pentagone) est l'ID du routeur, et le nombre figurant dans l'appareil final (cercle) correspond à l'ID de l'enfant:

Topologie RLOC OT

L'ID de routeur de chaque enfant correspond à son parent (routeur). Parce qu’un routeur est pas un enfant, l'ID enfant d'un routeur est toujours 0. Ensemble, ces valeurs sont uniques pour chaque appareil du réseau Thread, et sont utilisées pour créer le RLOC16, qui représente les 16 derniers bits du RLOC.

Par exemple, voici comment la valeur RLOC16 est calculée pour le nœud supérieur gauche (routeur ID = 1 et ID enfant = 1):

OT RLOC16

Le RLOC16 fait partie de l'identifiant d'interface (IID), qui correspond au les 64 derniers bits de l’adresse IPv6. Certains IID peuvent être utilisés pour identifier certains types des interfaces Thread. Par exemple, l'IID des RLOC se présente toujours sous la forme suivante:

0000:00ff:fe00:RLOC16

L'IID, associé à un préfixe maillé local, génère le RLOC. Par exemple : en utilisant le préfixe maillé local fde5:8dba:82e1:1::/64, le RLOC d'un nœud où RLOC16 = 0x401 correspond à:

RLOC OT

Cette même logique peut être utilisée pour déterminer le RLOC pour tous les nœuds mis en surbrillance dans l'exemple de topologie ci-dessus:

Topologie OT avec adresse

Cependant, comme le RLOC est basé sur l'emplacement du nœud dans la topologie, le RLOC d'un nœud peut changer en même temps que la topologie.

Par exemple, le nœud 0x400 est peut-être supprimé du réseau Thread. Nœuds 0x401 et 0x402 établissent de nouvelles liaisons avec différents routeurs. Par conséquent, se voient attribuer de nouvelles RLOC16 et RLOC:

Topologie OT après modification

Types d'adresses Unicast

Le RLOC n'est qu'une des nombreuses adresses unicast IPv6 qu'un appareil Thread peut avoir. Une autre catégorie d'adresses est appelée identifiants de point de terminaison (EID), qui identifier une interface Thread unique dans une partition réseau Thread. Les EID sont indépendamment de la topologie du réseau Thread.

Les types de monodiffusion courants sont détaillés ci-dessous.

Un EID qui identifie une interface Thread accessible par une seule transmission radio.
Exemplefe80::54db:881c:3845:57f4
IIDBasé sur la norme 802.15.4 Extended Address (Adresse étendue)
PortéeLien local
Détails
  • Permet de découvrir les voisins, de configurer des liens et d'échanger des informations de routage
  • Adresse non routable
  • Le préfixe est toujours fe80::/16

EID local du réseau maillé (ML-EID)

Un EID qui identifie une interface Thread, indépendamment de la topologie du réseau. Utilisé pour accéder à une interface Thread au sein de la même partition de thread. On parle également d'adresse locale unique (ULA).
Exemplefde5:8dba:82e1:1:416:993c:8399:35ab
IIDAléatoire, choisi une fois la mise en service terminée
PortéeMaillage local
Détails
  • Ne change pas lorsque la topologie change
  • Doit être utilisé par les applications
  • comporte toujours le préfixe fd00::/8 ;

Outil de localisation de routage (RLOC)

Identifie une interface Thread en fonction de son emplacement dans la topologie du réseau.
Exemplefde5:8dba:82e1:1::ff:fe00:1001
IID0000:00ff:fe00:RLOC16
PortéeMaillage local
Détails
  • Généré une fois qu'un appareil est connecté à un réseau
  • Pour la livraison de datagrammes IPv6 au sein d'un réseau Thread
  • Évolution de la topologie
  • Généralement pas utilisé par les applications

Locator Anycast (ALOC)

Identifie une interface Thread via une recherche RLOC, lorsque le RLOC d'une destination n'est pas connu.
Exemplefde5:8dba:82e1:1::ff:fe00:fc01
IID0000:00ff:fe00:fcXX
PortéeMaillage local
Détails
  • fcXX = destination ALOC, qui recherche la valeur RLOC appropriée
  • Généralement pas utilisé par les applications

Adresse unicast globale (GUA)

Un EID qui identifie une interface Thread sur un champ d'application global, au-delà d'un réseau Thread.
Exemple2000::54db:881c:3845:57f4
IID
  • SLAAC : attribué de manière aléatoire par l'appareil lui-même
  • DHCP — Attribué par un serveur DHCPv6
  • Manuel : attribué par la couche d'application
PortéeMonde
Détails
  • Une adresse IPv6 publique
  • Le préfixe est toujours 2000::/3

Multicast

La multidiffusion est utilisée pour communiquer des informations à plusieurs appareils à la fois. Dans un réseau Thread, des adresses spécifiques sont réservées à l'utilisation de la multidiffusion avec différentes des groupes d'appareils en fonction du champ d'application.

Adresse IPv6 Champ d'application Adresse de livraison
ff02::1 Lien local Tous les FTD et MED
ff02::2 Lien local Tous les FTD
ff03::1 Maillage local Tous les FTD et MED
ff03::2 Maillage local Tous les FTD

Vous remarquerez peut-être que les appareils endormeux (SED) ne sont pas inclus en tant que destinataire dans le tableau de multidiffusion ci-dessus. À la place, Thread définit multidiffusion IPv6 unicast basée sur un préfixe de champ d'application de domaine local et de liaison locale utilisée pour tous les nœuds Thread, y compris les SED. Ces signaux de multidiffusion varient selon le réseau Thread, car celui-ci est basé sur la monodiffusion Préfixe du maillage local (voir le document RFC 3306) pour en savoir plus sur les adresses de multidiffusion IPv6 basées sur un préfixe unicast).

Des champs d'application arbitraires autres que ceux déjà listés sont également compatibles avec Thread appareils.

Anycast

Anycast est utilisé pour acheminer le trafic vers une interface Thread lorsque le RLOC d'une destination inconnue. Un outil de localisation Anycast (ALOC) identifie l'emplacement plusieurs interfaces dans une partition Thread. Les 16 derniers bits d’un ALOC, appelée ALOC16, est au format 0xfcXX, qui représente le type d’ALOC.

Par exemple, un code ALOC16 compris entre 0xfc01 et 0xfc0f est réservé au protocole DHCPv6. Les agents Si le RLOC de l'agent DHCPv6 spécifique est inconnu (peut-être parce que le la topologie du réseau a changé), un message peut être envoyé à un ALOC d'agent DHCPv6 pour pour obtenir le RLOC.

Thread définit les valeurs ALOC16 suivantes:

ALOC16 Type
0xfc00 Variante optimale
0xfc01 – 0xfc0f Agent DHCPv6
0xfc10 – 0xfc2f Service
0xfc30 – 0xfc37 Commissaire
0xfc40 – 0xfc4e Agent de découverte voisin
0xfc380xfc3f
0xfc4f0xfcff
Réservé

Récapitulatif

Connaissances acquises :

  • Un réseau Thread se compose de trois champs d'application: Link-Local, Mesh-Local et Global.
  • Un appareil Thread possède plusieurs adresses IPv6 unicast <ph type="x-smartling-placeholder">
      </ph>
    • Un RLOC représente l'emplacement d'un appareil dans le réseau Thread.
    • Un ML-EID est propre à un appareil Thread au sein d'une partition et doit être utilisé par les applications
  • Thread utilise la multidiffusion pour transférer des données à des groupes de nœuds et de routeurs
  • Thread utilise Anycast lorsque le RLOC d'une destination est inconnu

Pour en savoir plus sur l'adressage IPv6 de Thread, consultez les sections 5.2 et 5.3 de la Spécification du thread.

Testez vos connaissances

Quels sont les champs d'application utilisés pour l'adressage unicast dans un réseau Thread ?
Privé
Pas tout à fait.
Interface-Local
Pas tout à fait.
Lien local
Bonne réponse.
Annonce locale au niveau du site
Pas tout à fait.
Maillage local
Bonne réponse.
Monde
Bonne réponse.
Qu'est-ce que cela signifie lorsqu'un appareil a un ID enfant de 0 ?
L'appareil est un enfant.
Pas tout à fait.
L'appareil est un REED.
Presque, mais incorrect.
L'appareil est un routeur.
Bonne réponse. Un routeur a toujours un ID enfant de 0.
Une caméra, qui est un nœud d'un réseau Thread, reçoit un nouveau RLOC16 et RLOC. Lequel des événements suivants peut être à l'origine de cette erreur ?
Quelqu'un a téléchargé des images à distance depuis l'appareil photo.
Pas tout à fait. Cet événement n'aurait aucune incidence sur le thread réseau.
Un routeur a quitté le réseau.
Bonne réponse. Lorsqu’un routeur perd un réseau, le réseau des changements de topologie, ce qui peut amener l'appareil à passer à un le routeur et l'obtention d'un nouveau RLOC.
La caméra est passée en mode veille, ce qui a modifié la topologie du réseau.
Pas tout à fait. Passer en mode Sommeil n'entraînerait pas nécessairement un appareil pour recevoir une nouvelle adresse réseau.
Un appareil d'un réseau Thread s'abonne à ff03::2 adresse multicast. Qu'est-ce que cela nous apprend sur l'appareil ?
Il s'agit d'un appareil final minimal (MED, Minimal End Device).
Pas tout à fait.
Il s'agit d'un appareil complet.
Pas tout à fait. (Indice: il peut s'agir ou non d'un FED.)
Il s'agit d'un appareil à exécution minimale (MTD, Minimal Thread Device).
Pas tout à fait.
Il s'agit d'un appareil Full Thread (FTD).
Bonne réponse. Seuls les appareils en mode thread complet sont abonnés au Adresse multicast ff03::2. Ils le font dans le réseau maillé local le champ d'application.
Quel type d'adressage et de routage Thread utilise-t-il pour transmettre des données à groupes de nœuds et de routeurs ?
monodiffusion
Pas tout à fait.
Anycast
Pas tout à fait.
multidiffusion
Bonne réponse.
annonce
Pas tout à fait.
Quel type d'adressage et de routage un appareil Thread utilise-t-il lorsque le Le RLOC du destinataire du message prévu est inconnu ?
monodiffusion
Pas tout à fait.
Anycast
Bonne réponse. Anycast permet à un appareil d'atteindre un nœud dont le RLOC n'est pas connus, en s’adressant à l’ALOC de l’appareil.
multidiffusion
Pas tout à fait.
annonce
Pas tout à fait.