Ponctuation du paquet à l'aide d'Extcap

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:

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:

OT Sniffer Wireshark Extcap Capture

  1. Définissez le canal sur la valeur souhaitée.
  2. 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.
  3. 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).
  4. Cliquez sur Démarrer.

Options Extcap de sniffer avec Winshark d'OT

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)

OTN Sniffer Wireshark Extcap Packets

Dépannage

Le outil de détection OpenThread ne figure pas dans la liste des interfaces Wireshark.

  1. 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.
  2. Vérifiez si le matériel est énuméré sur USB et si les pilotes sont chargés.
  3. Vérifiez que le bon micrologiciel (NCP ou RCP) a été flashé sur le matériel.
  4. Vérifiez que le script Python situé dans le chemin extcap est exécutable.
    • Pour OS X et Linux :
      1. Vérifiez que l'autorisation d'exécution est présente pour le fichier extcap_ot.py :
        ls -l extcap_ot.py
        
      2. Si l'autorisation d'exécution (x) est manquante, modifiez les autorisations :
        chmod +x extcap_ot.py
        
      3. Vérifiez que l'interface est répertoriée :
        extcap_ot.py --extcap-interfaces
        
    • Pour Windows :
      1. Vérifiez que l'interface est répertoriée :
        extcap_ot.bat --extcap-interfaces
        
      2. Si l'erreur se termine par une erreur Python, vérifiez que vous utilisez la version 3.x :
        py -3 --version
        

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:

  1. Créez le groupe d'utilisateurs wireshark et autorisez tous les membres de ce groupe à capturer des paquets.
  2. 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.