Afficher le code source sur GitHub
Ce guide explique comment configurer Extcap pour que Wireshark puisse détecter les paquets provenant d'un réseau Thread.
Si vous souhaitez utiliser Pyspinel pour renifler des paquets sans empiéter, reportez-vous à la section Sniffing de paquets avec Pyspinel.
Configurer l'environnement de détection
Avant de commencer, procédez comme suit:
- Consultez les exigences relatives à la détection des paquets.
- Installez et configurez Wireshark.
- Installer Pyspinel et les dépendances avec extcap
Validation
Ce guide a été vérifié par la société Zolertia Firefly (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 version 17134 64 bits : Wireshark 3.0.6
Créer et faire clignoter le sniffer
Les instructions de création et de clignotement dépendent de la plate-forme.
Pour obtenir des instructions sur la création et le flashage de CC2538, consultez l'exemple CC2538 sur GitHub.
Pour obtenir des instructions de compilation générales, consultez Comment créer OpenThread.
Utiliser le sniffer
L'écran de capture Wireshark s'affiche au premier lancement. Il doit lister les interfaces matérielles connectées à un outil de détection OpenThread.
Capturer depuis une seule interface
Si vous utilisez une interface pour la première fois, cliquez sur le bouton Options à gauche de l'interface:
- Définissez le canal sur la valeur souhaitée.
- Consultez la norme IEEE 802.15.4 TAP pour vous assurer que les informations du canal sont incluses dans la sortie pcap et qu'elles peuvent être affichées dans l'IUG Wireshark.
- Vérifiez les paramètres d'enregistrement au début de la capture pour vous assurer qu'ils sont enregistrés après le début de la capture, et ainsi vous éviter de les définir à nouveau la prochaine fois que vous utilisez l'interface (sauf si vous devez modifier le 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 depuis plusieurs interfaces
Sélectionnez toutes les interfaces matérielles listées sur l'écran de capture et cliquez sur l'icône Wireshark en haut à gauche.
Utilisez ces champs pour identifier les renifleurs individuels lorsque vous capturez à 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 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 outil de détection OpenThread ne figure pas dans la liste des interfaces Wireshark.
- Si plusieurs interpréteurs Python sont installés, assurez-vous que le script extcap est utilisé par l'interpréteur Python 3. 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 bon micrologiciel (NCP ou RCP) a été flashé sur le matériel.
- Vérifiez que le script Python situé dans le chemin 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 répertorié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 répertoriée :
extcap_ot.bat --extcap-interfaces
- Si l'erreur se termine par une erreur Python, vérifiez que vous utilisez la version 3.x :
py -3 --version
- Vérifiez que l'interface est répertoriée :
- Pour OS X et Linux :
Wireshark permet uniquement à l'utilisateur racine de capturer des paquets
Lors de l'installation de Wireshark sur Ubuntu, l'utilisateur sera 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. - Autoriser uniquement l'utilisateur
root
à capturer des paquets.
Nous vous déconseillons vivement d'utiliser Wireshark en tant qu'utilisateur root
. 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 de groupe d'utilisateurs.
Erreur de format Wireshark lors de la capture sur plusieurs interfaces USB sous Windows
C'est un problème connu pour certaines anciennes versions de Wireshark. Assurez-vous d'utiliser Wireshark 3.0.6 ou version ultérieure.