Ce guide explique comment configurer extcap pour Wireshark afin d'analyser les paquets d'un réseau Thread.
Pour utiliser Pyspinel pour l'analyse des paquets sans extcap, consultez Analyse des paquets avec Pyspinel.
Configurer l'environnement du sniffer
Avant de commencer, procédez comme suit:
- Consultez les Conditions requises pour le sniffing de paquets.
- Installez et configurez Wireshark.
- Installez Pyspinel et les dépendances avec extcap.
Validation
Ce guide a été validé avec le Zolertia Firefly (SoC Texas Instruments CC2538) sur les systèmes hôtes suivants:
- Debian 4.19.37 : Wireshark 3.0.4
- macOS Mojave 10.14.6 : Wireshark 3.0.5
- Windows 10 64 bits version 17134 : Wireshark 3.0.6
Créer et flasher le sniffer
Les instructions de compilation et de flashage varient selon la plate-forme.
Pour obtenir des instructions sur la compilation et le flash du CC2538, consultez le fichier README de l'exemple CC2538 sur GitHub.
Pour obtenir des instructions de compilation générales, consultez Créer OpenThread.
Utiliser le sniffer
L'écran de capture Wireshark s'affiche lors du premier lancement de Wireshark. Il doit lister les interfaces matérielles connectées à un renifleur OpenThread.
Capturer à partir d'une seule interface
Si vous utilisez une interface pour la première fois, cliquez sur le bouton Options à gauche de l'interface:
- Définissez Channel (Chaîne) sur la valeur souhaitée.
- Vérifiez IEEE 802.15.4 TAP pour vous assurer que les informations sur le canal sont incluses dans la sortie pcap et peuvent être affichées dans l'IUG Wireshark.
- Cochez Enregistrer les paramètres au début de la capture pour vous assurer que ces paramètres sont enregistrés après le début de la capture, afin de ne pas avoir à les définir à nouveau la prochaine fois que vous utiliserez l'interface (sauf si vous devez changer de canal).
- Cliquez sur Démarrer.
Si vos paramètres sont déjà enregistrés, commencez à renifler en sélectionnant l'interface matérielle et en cliquant sur l'icône Wireshark en haut à gauche.
Capturer à partir de plusieurs interfaces
Sélectionnez toutes les interfaces matérielles listées sur l'écran de capture, puis cliquez sur l'icône Wireshark en haut à gauche.
Utilisez ces champs pour identifier les sniffers individuels lors de la capture à partir de plusieurs interfaces:
- ID d'interface (frame.interface_id) : identifiant d'interface utilisé par Wireshark pour identifier une interface de capture
- Nom de l'interface (frame.interface_name) : nom de l'interface utilisé par Wireshark pour identifier une interface de capture.
- Canal (wpan-tap.ch_num) : canal de capture IEEE 802.15.4 (plage : 11 à 26)
Dépannage
Le sniffer OpenThread n'est pas listé comme interface Wireshark
- Si plusieurs interpréteurs Python sont installés, assurez-vous que l'interpréteur Python 3 est utilisé par le script extcap. Pyspinel n'est pas compatible avec Python 2.
- Vérifiez si le matériel est énuméré sur USB et si les pilotes sont chargés.
- Vérifiez que le micrologiciel approprié (NCP ou RCP) a été flashé sur le matériel.
- Vérifiez que le script Python situé dans le chemin d'accès extcap est exécutable.
- Pour OS X et Linux :
- Vérifiez que l'autorisation d'exécution est présente pour le fichier
extcap_ot.py
:ls -l extcap_ot.py
- Si l'autorisation d'exécution (x) est manquante, modifiez les autorisations :
chmod +x extcap_ot.py
- Vérifiez que l'interface est listée :
extcap_ot.py --extcap-interfaces
- Vérifiez que l'autorisation d'exécution est présente pour le fichier
- Pour Windows :
- Vérifiez que l'interface est listée :
extcap_ot.bat --extcap-interfaces
- Si l'opération se termine par une erreur Python, vérifiez que la version de Python est 3.x :
py -3 --version
- Vérifiez que l'interface est listée :
- Pour OS X et Linux :
Wireshark n'autorise que l'utilisateur racine à capturer des paquets
Lors de l'installation de Wireshark sur Ubuntu, l'utilisateur est invité à choisir l'une des options suivantes:
- Créez le groupe d'utilisateurs
wireshark
et autorisez tous les membres de ce groupe à capturer des paquets. - Autorisez uniquement l'utilisateur
root
à capturer des paquets.
L'utilisation de Wireshark en tant qu'utilisateur root
est fortement déconseillée. Si vous avez choisi cette option, modifiez le paramètre:
sudo dpkg-reconfigure wireshark-common
Si Wireshark a été configuré pour limiter la capture aux membres du groupe wireshark
, vous devrez peut-être ajouter l'utilisateur approprié au groupe:
sudo usermod -a -G wireshark user
Ajoutez également l'utilisateur approprié au groupe dialout
:
sudo usermod -a -G dialout user
Fermez et redémarrez Wireshark pour appliquer les nouveaux paramètres du groupe d'utilisateurs.
Erreur de format Wireshark lors de la capture sur plusieurs interfaces USB sous Windows
Il s'agit d'un problème connu pour certaines anciennes versions de Wireshark. Assurez-vous d'utiliser Wireshark 3.0.6 ou une version ultérieure.