Adressage IPv6

Afficher la source sur GitHub

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

Lunettes

Champs d'application OT

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

  • Link-Local : toutes les interfaces accessibles par une seule transmission radio
  • Mesh-Local : toutes les interfaces accessibles au sein du même réseau Thread
  • International : toutes les interfaces accessibles depuis l'extérieur d'un réseau Thread

Les deux premiers champs d'application correspondent aux préfixes désignés par un réseau Thread. "Link-Local" comporte le préfixe fe80::/16, tandis que "Mesh Local" possède le préfixe fd00::/8.

Unicast

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

Avant d'aborder chaque type, intéressons-nous plus particulièrement à un type courant, appelé "outil de localisation de routages". Le RTL identifie une interface Thread, en fonction de son emplacement dans la topologie du réseau.

Comment un outil de localisation d'itinéraires est-il généré ?

Tous les appareils se voient attribuer un ID de routeur et un ID d'enfant. Chaque routeur conserve une table de tous ses enfants, qui associe un appareil de manière unique dans la topologie. Par exemple, considérons les nœuds en surbrillance dans la topologie suivante, où le numéro d'un routeur (pentagone) correspond à l'ID du routeur et celui du disque d'un appareil de fin (cercle) à l'ID de l'enfant:

Topologie OT RLO

L'ID de routeur de chaque enfant correspond à son parent (routeur). Comme un routeur n'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 le calcul du niveau RTL16 est pour le nœud supérieur gauche (ID de routeur = 1 et ID enfant = 1):

OT RLO16

Le RTL16 fait partie de l'identifiant d'interface (IID), qui correspond aux 64 derniers bits de l'adresse IPv6. Certains IID peuvent être utilisés pour identifier certains types d'interfaces Thread. Par exemple, l'IID des RLO est toujours au format suivant:

0000:00ff:fe00:RLOC16

L'IID, combiné à un préfixe de maillage local, génère le RTL. Par exemple, en utilisant un préfixe de réseau maillé local de fde5:8dba:82e1:1::/64, le Rloc pour un nœud où Rloc16 = 0x401 est:

OT RLO

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

OT Topology with Address

Toutefois, comme le RTL est basé sur l'emplacement du nœud dans la topologie, ce dernier peut changer en même temps que la topologie.

Par exemple, le nœud 0x400 est peut-être supprimé du réseau Thread. Les nœuds 0x401 et 0x402 établissent de nouvelles liaisons à différents routeurs. Par conséquent, ils reçoivent chacun un nouveau Rloc16 et un RTL:

Topologie OT après le changement

Types d'adresses Unicode

Il ne s'agit que d'une des nombreuses adresses monocast IPv6 d'un appareil Thread. Une autre catégorie d'adresses est appelée "identifiant de point de terminaison" (EID), qui identifie une interface Thread unique dans une partition réseau Thread. Les EID sont indépendants de la topologie du réseau Thread.

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

EID identifiant une interface Thread accessible via une seule transmission radio.
Exemplefe80::54db:881c:3845:57f4
IIDBasé sur l'adresse étendue 802.15.4
Scope (Portée)Lien local
Détail
  • Utilisé pour découvrir les voisins, configurer les liens et échanger des informations sur le routage
  • Adresse non routable
  • Préfixe toujours de fe80::/16

EID maillé local (ML-EID)

EID identifiant une interface Thread, indépendamment de la topologie du réseau. Utilisé pour accéder à une interface Thread dans la même partition Thread. Également appelée adresse locale unique (ULA).
Exemplefde5:8dba:82e1:1:416:993c:8399:35ab
IIDAléatoire choisi une fois la mise en service terminée
Scope (Portée)Locale (maille)
Détail
  • Ne change pas lorsque la topologie change
  • À utiliser pour les applications
  • Contient toujours un préfixe fd00::/8

Outil de localisation des itinéraires

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
Scope (Portée)Locale (maille)
Détail
  • Généré une fois qu'un appareil s'est connecté à un réseau
  • Pour diffuser des datagrammes IPv6 au sein d'un réseau Thread
  • Évolution avec la topologie
  • Généralement non utilisé par les applications

Anycast

Identifie une interface Thread via une recherche RTL lorsque la valeur RTL d'une destination n'est pas connue.
Exemplefde5:8dba:82e1:1::ff:fe00:fc01
IID0000:00ff:fe00:fcXX
Scope (Portée)Locale (maille)
Détail
  • fcXX = destination Aloc, qui recherche le Rloc approprié
  • Généralement non utilisé par les applications

Global Unicast Address (GUA)

EID identifiant une interface Thread sur un champ d'application global au-delà d'un réseau Thread.
Exemple2000::54db:881c:3845:57f4
IID
  • Contrat de niveau de service : attribution aléatoire d'un appareil
  • DHCP : attribué par un serveur DHCPv6
  • Manuel : attribué par la couche d'application
Scope (Portée)Monde
Détail
  • Une adresse IPv6 publique
  • Préfixe toujours de 2000::/3

Multidiffusion

La multidiffusion permet de communiquer des informations à plusieurs appareils simultanément. Dans un réseau Thread, les adresses spécifiques sont réservées à l'utilisation de multidiffusion avec différents groupes d'appareils, en fonction du champ d'application.

Adresse IPv6 Scope Adresse de livraison
ff02::1 Lien local Toutes les valeurs FTD et MED
ff02::2 Lien local Toutes les offres FTD
ff03::1 Locale (maille) Toutes les valeurs FTD et MED
ff03::2 Locale (maille) Toutes les offres FTD

Vous remarquerez peut-être que les SED (Sleepy End Devices) ne sont pas inclus en tant que destinataire dans le tableau de multidiffusion ci-dessus. À la place, Thread définit l'adresse multicast IPv6 de liaison unicast de portée locale et de domaine local utilisée pour tous les nœuds Thread, y compris les SED. Ces adresses de multidiffusion varient en fonction du réseau Thread, car celui-ci est basé sur le préfixe mesh-local unicast (voir RFC 3306 pour en savoir plus sur la multidiffusion IPv6 basée sur un préfixe unicast). .

Les champs d'application arbitraires au-delà de ceux déjà répertoriés sont également compatibles avec les appareils Thread.

Anycast

Anycast est utilisé pour acheminer le trafic vers une interface Thread lorsque le Rloc d'une destination est inconnu. L'outil de localisation Anycast identifie la localisation de plusieurs interfaces au sein d'une partition Thread. Les 16 derniers bits d'un Aloc, appelé Aloc16, sont au format 0xfcXX, ce qui représente le type de ALO.

Par exemple, un Aloc16 entre 0xfc01 et 0xfc0f est réservé aux agents DHCPv6. Si l'identifiant RTL de l'agent DHCPv6 est inconnu (parce que la topologie du réseau a changé, par exemple), un message peut être envoyé à un agent DHCPv6 pour obtenir le Rloc.

Thread définit les valeurs Aloc16 suivantes:

16 Type
0xfc00 En tête
0xfc01-0xfc0f Agent DHCPv6
0xfc10-0xfc2f Service
0xfc30-0xfc37 Commissaire
0xfc40-0xfc4e Agent de découverte voisine
0xfc380xfc3f
0xfc4f0xfcff
Réservés

Résumé

Voici ce que vous avez appris:

  • 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.
    • Un RTL représente la position d'un appareil dans le réseau Thread
    • Un ML-EID est unique à 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 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 locale
Pas tout à fait.
Lien local
Bonne réponse.
Site local
Pas tout à fait.
Locale (maille)
Bonne réponse.
Monde
Bonne réponse.
Quelle est la signification du numéro enfant d'un appareil dont la valeur est 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 possède toujours un ID enfant de 0.
Une caméra, c'est-à-dire un nœud sur un réseau Thread, reçoit les nouveaux paramètres Rloc16 et RTL. Quel événement a pu entraîner cette situation ?
Quelqu'un a téléchargé des images de l'appareil photo à distance.
Pas tout à fait. Cet événement n'a aucune incidence sur le réseau Thread.
Un routeur a déconnecté le réseau.
Bonne réponse. Lorsqu'un routeur supprime un réseau, la topologie du réseau change. L'appareil peut alors se convertir en routeur et obtenir un nouveau Rloc.
La caméra est passée en mode veille, ce qui a modifié la topologie du réseau.
Pas tout à fait. Le passage en mode veille n'entraîne pas nécessairement l'envoi d'une nouvelle adresse réseau à l'appareil.
Un appareil d'un réseau Thread s'abonne à l'adresse multicast ff03::2. Qu'est-ce que cela nous indique sur l'appareil ?
C'est un MED minimal.
Pas tout à fait.
C'est un FED.
Pas tout à fait. (Conseil: Il peut s'agir ou non d'une FED.)
Il s'agit d'un appareil à thread minimal.
Pas tout à fait.
Il s'agit d'un dispositif multithread (FTD).
Bonne réponse. Seuls les appareils dotés d'un thread complet s'abonnent à l'adresse de multidiffusion ff03::2. Ces opérations se font dans le champ d'application "Mesh local".
Quel type d'adressage et de routage Thread utilise-t-il pour transférer des données vers des groupes de nœuds et de routeurs ?
monodiffusion
Pas tout à fait.
Anycast
Pas tout à fait.
multidiffusion
Bonne réponse.
diffuser
Pas tout à fait.
Quel type d'adressage et de routage un appareil Thread utilise-t-il lorsque le RLU du destinataire souhaité du message est inconnu ?
monodiffusion
Pas tout à fait.
Anycast
Bonne réponse. Anycast permet à un appareil d'atteindre un nœud dont le RLO n'est pas connu, en s'adressant à l'Aloc de l'appareil.
multidiffusion
Pas tout à fait.
diffuser
Pas tout à fait.