Thread · OTBR · IEEE 802.15.4 · maillage IPv6 · Border Router · 10 min de lecture

Mise en service du réseau Thread : Border Router, OTBR et conception de topologie maillée

Thread est un protocole de réseau maillé IPv6 basse consommation basé sur IEEE 802.15.4 qui fournit une infrastructure maillée auto-cicatrisante connectée au Border Router pour les appareils Matter dans les bâtiments. Contrairement à Zigbee, Thread est natif IP – chaque nœud possède une adresse IPv6 et est directement accessible depuis le backbone IP via le Border Router, éliminant les passerelles de traduction de protocole.

Fondamentaux de la radio et du réseau Thread

Thread fonctionne sur la couche physique et MAC IEEE 802.15.4 à 2,4 GHz en utilisant 16 canaux (canaux 11–26, espacement de 5 MHz, 250 kbit/s). La couche réseau est IPv6 compressé par 6LoWPAN. Thread utilise la sécurité TCAT dérivée de DTLS pour la mise en service et AES-128-CCM pour tout le trafic maillé. Le protocole est maintenu par le Thread Group (threadgroup.org), la spécification étant librement accessible aux membres.

ParamètreValeurRemarques
FréquenceBande ISM 2,4 GHzMême bande que Wi-Fi 2,4 GHz et Zigbee – planification des canaux requise
PHY / MACIEEE 802.15.4-2015250 kbit/s, DSSS, modulation OQPSK
RéseauIPv6 avec 6LoWPANLa compression d'en-tête réduit IPv6 à ~40 octets dans une trame 802.15.4 de 127 octets
Sécurité du maillageAES-128-CCMChiffrement au niveau réseau, authentification par trame
Nœuds max.250+ par partition ThreadPlusieurs partitions pontables via routeur backbone
Portée intérieure typique10–15 m par saut (murs en béton)LoS : ~50 m ; le maillage étend la couverture
Sauts max.Pas de limite stricte (pratique : 10–15)Chaque saut ajoute ~5–10 ms de latence
Courant de veille (SED)~5–15 µA typiqueSleepy End Device : se réveille toutes les 10–1000 ms pour interroger le parent

Coexistence des canaux : Thread à 2,4 GHz chevauche les canaux Wi-Fi 2,4 GHz. Utilisez le canal Thread 15 ou 20 (hors des canaux Wi-Fi 1, 6 et 11) pour minimiser les interférences. Si le bâtiment utilise fortement le Wi-Fi 2,4 GHz, effectuez une analyse spectrale (Wireshark + renifleur 802.15.4, ou diagnostic OTBR) avant de sélectionner le canal Thread.

Rôles des nœuds

Les nœuds Thread s'auto-organisent en rôles en fonction des capacités et de la qualité de la liaison. L'attribution des rôles est automatique et dynamique – un routeur peut être rétrogradé si la connectivité maillée s'améliore, et un dispositif final peut être promu si le maillage a besoin de plus de capacité de routage. Comprendre les rôles est essentiel pour la planification de la topologie car la taille de la table de routage, l'intervalle de sommeil et l'attribution du parent affectent directement le succès de la mise en service et la fiabilité continue.

RôleAbrév.CaractéristiquesAppareil typique
LeaderLUn par partition ; gère la table de routage, les attributions de préfixes, les données réseau. Élu automatiquement.Tout appareil Thread alimenté sur secteur
RouteurRTransfère le trafic maillé ; maintient la table de voisinage ; max 32 routeurs par partition. Alimentation secteur uniquement.Prises intelligentes, ampoules, thermostats
Dispositif terminal éligible routeurREEDPeut devenir routeur si nécessaire ; se comporte comme un terminal jusqu'à sa promotion.Appareils alimentés sur secteur avec ≥48 Ko de RAM
Dispositif terminal completFEDReste éveillé ; possède un routeur parent ; ne route pas ; reçoit des messages directs.Capteurs, écrans alimentés sur secteur
Dispositif terminal endormiSEDInterroge le routeur parent à un intervalle configurable (10 ms–10 s) ; radio éteinte entre les interrogations.Capteurs de batterie, PIR, contacts de porte
Dispositif terminal endormi synchroniséSSEDSommeil coordonné avec le parent pour un contrôle plus strict de la latence (Thread 1.3+).Actionneurs sur batterie nécessitant une réponse rapide

Planification de l'intervalle d'interrogation SED : Un dispositif terminal endormi avec un intervalle d'interrogation de 10 secondes a une latence de commande maximale de 10 secondes (la commande arrive juste après une interrogation). Pour les interrupteurs d'éclairage et les détecteurs de présence pilotant l'éclairage, utilisez des intervalles d'interrogation de 250 ms ou moins – au prix d'une consommation de batterie plus élevée. Pour les contacts de porte/fenêtre où la durée de vie quotidienne de la batterie prime sur le temps de réponse, des intervalles de 10 secondes sont acceptables.

Routeur frontière : OTBR et alternatives commerciales

Le routeur frontalier Thread (Thread Border Router) est la passerelle entre le maillage Thread (802.15.4) et le backbone IP (Ethernet ou Wi-Fi). Il fournit NAT64 (pour les systèmes IPv4 hérités), DNS64, DHCPv6-PD et le routage hors maillage. Un réseau Thread nécessite au moins un routeur frontalier pour permettre le commissionnement Matter depuis un périphérique connecté en IP et pour que le contrôleur de fabric Matter puisse atteindre les périphériques Thread uniquement.

Routeur frontalierPile ThreadPrise en charge du fabric MatterRemarques
OTBR (Raspberry Pi / Linux)OpenThread 1.3Quelconque – s'intègre avec HA, chip-toolAccès diagnostic complet ; recommandé pour les projets commerciaux
Apple HomePod mini (2e génération)Apple Thread 1.3Apple Home fabricAuto-configuré ; pas d'accès utilisateur au jeu de données Thread
Apple HomePod (2e génération)Apple Thread 1.3Apple Home fabricIdentique au HomePod mini ; préféré pour les grands espaces
Apple TV 4K (3e génération, Ethernet)Apple Thread 1.3Apple Home fabricConnexion Ethernet privilégiée pour la stabilité du routeur frontière
Google Nest Hub (2e gén.)Google Thread 1.3Google Home fabricAuto-configuré ; accès diagnostic limité
Google Nest Hub MaxGoogle Thread 1.3Google Home fabricIdentique au Nest Hub 2e gén.
Nanoleaf Thread Border RouterOpenThread 1.3Apple + Google via jeu de données partagéBR dédié ; expose l'interface web OTBR
Home Assistant SkyConnect USBOpenThread 1.3Serveur HA MatterClé USB ; agit comme BR lorsque le module complémentaire HA OTBR est activé

Création du jeu de données Thread et configuration OTBR

Le Thread Operational Dataset (OTDS) est l'ensemble des paramètres réseau qui définissent une partition Thread. Tous les périphériques du même réseau Thread doivent avoir le même Active Operational Dataset. Lors de l'utilisation d'OTBR sous Linux (Raspberry Pi ou équivalent), le jeu de données est créé lors de l'initialisation d'OTBR et peut être inspecté et exporté via l'API REST OTBR ou l'outil en ligne de commande ot-ctl.

Installation d'OTBR et création du jeu de données (Ubuntu / Raspberry Pi OS)

# Install OTBR (automated script — pulls Docker image or builds from source)
curl -sL https://raw.githubusercontent.com/openthread/ot-br-posix/main/script/bootstrap   | sudo bash -s -- --no-mdns
sudo INFRA_IF_NAME=eth0 ./script/setup

# Or via Docker (recommended for reproducible builds):
docker run --sysctl "net.ipv6.conf.all.disable_ipv6=0   net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1"   -p 8080:80 --dns=127.0.0.1 -it openthread/otbr:latest   --radio-url spinel+hdlc+uart:///dev/ttyUSB0

# Generate a new Thread dataset via ot-ctl:
sudo ot-ctl dataset init new
sudo ot-ctl dataset channel 15          # Set channel (avoid Wi-Fi overlap)
sudo ot-ctl dataset networkname PanelCraft-Thread
sudo ot-ctl dataset commit active
sudo ot-ctl ifconfig up
sudo ot-ctl thread start

# Verify dataset:
sudo ot-ctl dataset active              # Shows full OTDS in TLV format
sudo ot-ctl state                       # Should show: leader

# Export dataset as hex (for import into other Border Routers):
sudo ot-ctl dataset active -x

Interface web OTBR — champs clés

OTBR web UI accessible at: http://<border-router-ip>:80

Thread Network Configuration page shows:
  Network Name:     PanelCraft-Thread
  Extended PAN ID:  6c32fcf3fe56e68b   (random 8 bytes — unique per network)
  Network Key:      d3aba6ca7f1d8e12... (128-bit AES key — keep confidential)
  PAN ID:           0x4f2b              (16-bit, random)
  Channel:          15
  On-Mesh Prefix:   fd11:22::/64       (ULA prefix assigned by Leader)

Status page shows:
  Role:             Leader / Router / Detached
  RLOC16:           0x2000             (16-bit routing locator)
  Ext Address:      ba:c7:3a:01:...    (64-bit IEEE extended address)
  Neighbours:       3 routers, 5 end devices

Conception de topologie : placement des routeurs frontière et couverture des routeurs

Le maillage Thread est auto-cicatrisant mais pas auto-optimisant pour le placement initial. Un mauvais placement des routeurs frontière et des routeurs entraîne des maillages partitionnés, un nombre de sauts excessif et des dispositifs dormants incapables de trouver un parent stable. Les règles suivantes s'appliquent aux déploiements dans les bâtiments commerciaux.

Règles de placement des routeurs frontière

  • Placez au moins 2 routeurs frontière par étage pour la redondance – si l'un tombe en panne, le maillage reste connecté au backbone IP
  • Connectez les routeurs frontière via Ethernet, pas Wi-Fi – élimine la double latence sans fil et améliore la stabilité
  • Placez-les près du centre du cluster de dispositifs Thread qu'ils desservent, pas à la périphérie du réseau IP
  • Minimum 1 BR par 500 m² en open-space ; 1 BR par 250 m² avec murs en béton armé
  • Les routeurs frontière n'ont pas besoin d'être à portée RF les uns des autres – ils se connectent via le routeur backbone Ethernet

Règles de densité des routeurs

  • Thread promeut automatiquement les REED en routeurs lorsqu'il y a moins de 16 routeurs dans la partition
  • Objectif : chaque SED doit avoir au moins 2 routeurs à un saut – pas de dépendance à un seul parent
  • Dans les déploiements denses de capteurs (50+ SED par pièce) : assurez-vous d'avoir au moins 4 routeurs alimentés sur secteur par 100 m²
  • Les prises intelligentes et les contrôleurs d'éclairage secteur sont des candidats idéaux pour les routeurs – toujours allumés, bien répartis
  • Maximum 32 routeurs par partition Thread – concevez les grands bâtiments comme plusieurs partitions si nécessaire

Risque de scission de partition :Si les appareils Thread d'un étage perdent le contact avec tous les routeurs connectés au routeur frontalier, ils forment une partition séparée avec leur propre leader mais sans connectivité Internet/IP. Les commandes Matter du contrôleur de tissu expireront. Correctif : ajoutez un appareil capable de faire office de routeur à la limite ou améliorez le chemin du signal. Détectez les partitions via la vue topologique OTBR (affiche les clusters de nœuds isolés).

Diagnostics : outils OTBR et vérifications de l'état du maillage

L'état du maillage Thread doit être vérifié après la mise en service initiale et périodiquement pendant l'occupation du bâtiment. OTBR fournit une API REST et l'interface CLI ot-ctl pour les diagnostics ; l'interface Web OTBR offre un graphe de topologie pour une inspection visuelle.

Commandes de diagnostic ot-ctl clés

# Network state and role
sudo ot-ctl state          # leader / router / child / detached / disabled
sudo ot-ctl channel        # Current operating channel
sudo ot-ctl panid          # 16-bit PAN ID

# Router and neighbour table
sudo ot-ctl router table   # All routers in partition: RLOC16, ext addr, link quality
sudo ot-ctl neighbor table # Direct neighbours: role, RLOC16, link margin, RSSI

# Link quality (RSSI) to specific neighbour
sudo ot-ctl neighbor linkinfo <rloc16>
# Look for: link margin >10 dBm is good; <5 dBm is marginal

# End device child table (children of this router)
sudo ot-ctl child table    # Shows: child ID, mode (SED/FED), poll interval, age

# Partition info
sudo ot-ctl partitionid    # Partition ID — should be same on all nodes
sudo ot-ctl leaderdata     # Leader RLOC, partition weight, data version

# Network topology (via OTBR REST API)
curl http://localhost:8080/api/v1/node/rloc16
curl http://localhost:8080/api/v1/topology  # Full mesh topology JSON

# Ping a Thread node by IPv6 address
sudo ot-ctl ping fd11:22::1  # Replace with node's mesh-local EID
Métrique de diagnosticValeur saineAction si hors plage
Marge de liaison vers le parent (SED)> 10 dBmAjouter un routeur intermédiaire ou rapprocher l'appareil du routeur
Nombre de tables de routage2–32< 2 Routers: add mains-powered device; > 32: split partition
Cohérence de l'ID de partitionIdentique sur tous les nœudsID différents : division de partition — vérifier la lacune de couverture RF
Intervalle d'interrogation enfant (SED)250 ms – 10 s (spécifique à l'application)< 100 ms: excessive battery drain; > 30 s: unacceptable latency
Ping RTT local au maillage< 100 ms> 200 ms: excessive hop count or congestion — review topology

Besoin d'un maillage Thread conçu et mis en service pour votre bâtiment ?

Nous concevons des topologies de maillage Thread pour les bâtiments commerciaux – placement des routeurs frontaliers, planification des canaux, modélisation de la densité des dispositifs terminaux en sommeil, déploiement OTBR et vérification complète de l'intégrité du maillage avec documentation de mise en service.

Demander un devis →
Loading...
Back to top