Ponctuation du paquet à l'aide d'Extcap

Afficher la source sur GitHub

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:

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:

Capture Extcap Wireshark du sniffeur OT

  1. Définissez Channel (Chaîne) sur la valeur souhaitée.
  2. 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.
  3. 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).
  4. Cliquez sur Démarrer.

Options Extcap du sniffeur OT Wireshark

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)

Reniflage OT des paquets Extcap Wireshark

Dépannage

Le sniffer OpenThread n'est pas listé comme interface Wireshark

  1. 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.
  2. Vérifiez si le matériel est énuméré sur USB et si les pilotes sont chargés.
  3. Vérifiez que le micrologiciel approprié (NCP ou RCP) a été flashé sur le matériel.
  4. Vérifiez que le script Python situé dans le chemin d'accès 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 listée :
        extcap_ot.py --extcap-interfaces
        
    • Pour Windows :
      1. Vérifiez que l'interface est listée :
        extcap_ot.bat --extcap-interfaces
        
      2. Si l'opération se termine par une erreur Python, vérifiez que la version de Python est 3.x :
        py -3 --version
        

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:

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