Diagnostique 6LoWPAN avec Foren6

Diagnostique 6LoWPAN avec Foren6

Foren6 est un outil de diagnostique de réseaux de capteurs 6LoWPAN. Conçu par des ingénieurs du CETIC actifs dans le déploiement de réseaux 6LoWPAN dans l’industrie, cet outil vient combler le peu de moyens qu’il existe actuellement pour remonter des informations sur l’état de santé d’un réseau de capteurs. Foren6 est open source, distribué sous license BSD, et est accessible publiquement dès aujourd’hui sur GitHub.

Date: 25 novembre 2013

Expertises:

Evolutivité des systèmes embarqués et réseaux IoT 

A propos du projet: MidFlex 

Auteur : Laurent Deru

Le diagnostique de réseaux 6LoWPAN

Alors que l’Internet des Objets suit son développement et que des technologies telles que le ZigBee adoptent les standards 6LoWPAN et RPL de l’IETF, les solutions en matière de diagnostique de réseaux de capteurs IPv6 opérants sur RPL se font encore très rare. Bien que des outils habituellement utilisés sur des réseaux IPv4/v6 classiques tels que Ping et Traceroute peuvent opérer sur des réseaux de capteurs, ils ne sont pas forcément adaptés pour ce type de réseau où des pertes occasionnelles, voire fréquentes, sont tolérées et font partie inhérente du réseau (d’où leur nom, "Low Power and Lossy Neworks").

Pour que la remontée d’informations sur le réseau soit indépendante de l’état de réseau, il est bien souvent nécessaire d’aggrémenter la surveillance du réseau avec des outils de capture de packets, appelés sniffers, qui écoutant passivement dans un voisinage du réseau pour en extraire des informations utiles. Une trace de paquets peut apporter beaucoup d’informations sur l’état d’un réseau, mais l’interprétation de ces données n’est pas toujours évidente. Des outils tels que Wireshark permettent de visualiser et naviguer dans de telles traces, mais l’information quant à la validité des données s’arrête à la vérification de leur intégrité au niveau des paquets individuels et non pas à leur cohérence en termes de suites de protocoles réseaux. D’autres tels que les solutions proposées par Peryton remontent jusqu’aux couches 6LoWPAN et les protocoles supérieurs (UDP, TCP, HTTP), mais n’effectuent aucune analyse sur des protocoles du plan contrôle tels que RPL.

C’est là qu’intervient Foren6. Cette application se connecte à des sniffers et reconstruit l’état du réseau RPL sur base des informations capturées.

Foren6 : Aperçu des fonctionalités

Foren6 est une application multi-plateforme développée en C++ et Qt. L’interface graphique présentée à l’utilisateur est contituée d’une partie fixe comprenant une fenêtre de visualisation de la topologie du réseau, une fenêtre d’informations détaillées sur un noeud sélectionné et une ligne de temps. En complément viennent s’ajouter des fenêtres ancrables : une liste de tous les paquets et changements d’états du réseau détectés par l’application, et une fenêtre de dissection de paquet similaire à celle de Wireshark.

L’objectif de cette approche modulaire est d’offrir à l’utilisateur une boîte à outils pour le diagnostique du réseau, pouvant être disposée au mieux selon ses besoins.

La topologie graphique réprésentée est la reconstruction de l’arbre formé par le protocole de routage RPL (appelé DODAG) sur basé de l’information capturée. Cette topologie peut se visualiser à travers différentes vues, ou overlays, qui ajoutent des informations sur des paramètres ou métriques, tels qu’une coloration selon son appartenance à un identifiant de réseau RPL particulier (c’est le cas dans la figure précédente) ou le nombre de messages envoyés par chaque noeud comme dans l’image suivante. Dans cet exemple, où le traffic majoritaire est un échange de "Ping" périodiques entre le noeud 17 et le noeud 1, l’overlay de quantité de traffic permet d’identifier rapidement les noeuds les plus sollicités.

Un module d’analyse de protocole interne à l’outil a pour objectif de détecter des erreurs et incohérences dans l’état du réseau. Ces erreurs sont exposées dans l’interface graphique via des overlays spécifiques pour les erreurs, et sont également marquées en rouge sur la ligne de temps. Cette barre temporelle permet de naviguer dans l’historique de la capture, et de revenir sur les moments clés telles qu’une phase d’initialisation du réseau, ou l’apparition d’une erreur. L’ensemble des informations affichées s’adaptent selon le curseur de temps. Cette détection d’erreurs est une valeur ajoutée importante de l’outil et sera enrichie continuellement au cours des prochaines versions de l’application.

La position des noeuds n’étant pas préalablement connue dans le mode par défaut, l’outil dispose d’un algorithme de placement de noeuds, calculé en boucle, favorisant la lisibilité du graphe. L’utilisateur peut choisir de fixer un ou plusieurs noeuds, ou mieux, encoder les positions réelles des capteurs afin de dispose de la topologie réseau au dessus de la topologie physique, par l’intermédiaire de Layouts. Ces Layouts permettent aussi d’ajouter une image de fond pour enrichir l’information sur le contexte, tel que cet exemple d’une capture effectuée sur le testbed de réseau de capteurs déployé dans notre bâtiment.

Foren6 est compatible avec de multiples type de sources. Le mode de capture en temps réel s’interface avec des sniffers de trois catégories : toute plateforme 802.15.4 compatible Contiki et disposant d’un connecteur USB est a priori compatible, il suffit de la programmer avec une application Contiki prévue à cet effet. Nous avons validé cette approche sur les plateformes TelosB, CM5000, Z1 et Econotag, toutes des plateformes couramment utilisées dans la communauté Contiki. D’autre part, il existe des sniffers commerciaux, qui sont compatibles s’ils offrent la possibilité de rediriger leurs données dans un format PCAP en cours de capture. Nous avons testé le ZENA network analyser de MicroChip. Enfin, il est possible de charger un fichier PCAP préalablement enregistré par un sniffer afin de le rejouer dans Foren6. La phase d’analyse par Foren6 peut donc être découplée du moment d’enregistrement du PCAP, utile pour analyser des données effectuées dans des campagnes de mesures à large échelle, dans des environnement difficiles, ou encore pour analyser des fichiers de capture envoyés par des tiers.

La couverture d’un réseau étendu est un défi important car les performances de ce type de diagnostique repose sur la quantité de messages captés par le sniffer. Pour pallier cela, Foren6 supporte l’aggrégation de plusieurs sniffers répartis spatialement, bien que cette fonctionalité soit encore expérimentale à ce jour. Enfin, précisons qu’un portage de Foren6 sur Android est actuellement en cours, ce qui permettra de couvrir un réseau étendu en se déplaçant.

Plus d’informations

Foren6 vous intéresse et vous souhaitez en apprendre plus ? Nous vous invitons à rejoindre le site officiel du projet Foren6.

Le CETIC est également à la disposition des entreprises et chercheurs pour des demandes liées à l’utilisation de Foren6, 6LBR et 6LoWPAN/RPL en général. N’hésitez pas à prendre contact avec les auteurs, Sebastien Dawans et Laurent Deru, pour plus d’informations.