En esta guía, se explica cómo configurar extcap para que Wireshark analice paquetes de una red Thread.
Para usar Pyspinel para el espionaje de paquetes sin extcap, consulta Espionaje de paquetes con Pyspinel.
Configura el entorno del sniffer
Antes de comenzar, completa los siguientes pasos:
- Revisa los requisitos de espionaje de paquetes.
- Instala y configura Wireshark.
- Instala Pyspinel y las dependencias con extcap.
Verificación
Esta guía se verificó con Zolertia Firefly (SoC CC2538 de Texas Instruments) en los siguientes sistemas host:
- Debian 4.19.37: Wireshark 3.0.4
- macOS Mojave 10.14.6: Wireshark 3.0.5
- Windows 10 de 64 bits, versión 17134: Wireshark 3.0.6
Compila y escribe en la memoria flash el sniffer
Las instrucciones de compilación y de restablecimiento varían según la plataforma.
Para obtener instrucciones sobre cómo compilar y escribir en la memoria flash el CC2538, consulta el archivo readme del ejemplo de CC2538 en GitHub.
Para obtener instrucciones generales de compilación, consulta Cómo compilar OpenThread.
Cómo usar el sniffer
La pantalla de captura de Wireshark se muestra cuando se inicia por primera vez. Debe listar las interfaces de hardware conectadas a un sniffer de OpenThread.
Captura desde una sola interfaz
Si es la primera vez que usas una interfaz, haz clic en el botón Options a la izquierda de la interfaz:
- Establece el canal en el valor deseado.
- Consulta IEEE 802.15.4 TAP para asegurarte de que la información del canal se incluya en el resultado de pcap y se pueda mostrar en la GUI de Wireshark.
- Marca la opción Guardar parámetros al inicio de la captura para asegurarte de que estos parámetros se guarden después del inicio de la captura y evitar tener que volver a configurarlos la próxima vez que uses la interfaz (a menos que necesites cambiar el canal).
- Haz clic en Iniciar.
Si los parámetros ya están guardados, selecciona la interfaz de hardware y haz clic en el ícono de Wireshark en la parte superior izquierda para comenzar a rastrear.
Captura desde varias interfaces
Selecciona todas las interfaces de hardware que aparecen en la pantalla de captura y haz clic en el ícono de Wireshark en la parte superior izquierda.
Usa estos campos para identificar sniffers individuales cuando captures desde varias interfaces:
- ID de interfaz (frame.interface_id): Es el identificador de interfaz que usa Wireshark para identificar una interfaz de captura.
- Nombre de la interfaz (frame.interface_name): Es el nombre de la interfaz que usa Wireshark para identificar una interfaz de captura.
- Canal (wpan-tap.ch_num): Es el canal de captura de IEEE 802.15.4 (rango: 11-26).
Solución de problemas
El sniffer de OpenThread no aparece como una interfaz de Wireshark.
- Si tienes varios intérpretes de Python instalados, asegúrate de que la secuencia de comandos extcap use el intérprete de Python 3. Pyspinel no es compatible con Python 2.
- Comprueba si el hardware se enumera en USB y si se cargaron los controladores.
- Verifica que se haya escrito el firmware correcto (NCP o RCP) en el hardware.
- Verifica que la secuencia de comandos de Python ubicada en la ruta de acceso de extcap se pueda ejecutar.
- Para OS X y Linux:
- Verifica que el permiso de ejecución esté presente para el archivo
extcap_ot.py
:ls -l extcap_ot.py
- Si falta el permiso de ejecución (x), modifica los permisos:
chmod +x extcap_ot.py
- Verifica que la interfaz aparezca en la lista:
extcap_ot.py --extcap-interfaces
- Verifica que el permiso de ejecución esté presente para el archivo
- Para Windows:
- Verifica que la interfaz aparezca en la lista:
extcap_ot.bat --extcap-interfaces
- Si se cierra con un error de Python, verifica que la versión de Python sea 3.x:
py -3 --version
- Verifica que la interfaz aparezca en la lista:
- Para OS X y Linux:
Wireshark solo permite que el usuario raíz capture paquetes.
Durante la instalación de Wireshark en Ubuntu, se le pedirá al usuario que elija una de las siguientes opciones:
- Crea el grupo de usuarios
wireshark
y permite que todos los miembros de ese grupo capturen paquetes. - Solo permite que el usuario
root
capture paquetes.
No se recomienda usar Wireshark como usuario de root
. Si elegiste esa opción, cambia el parámetro de configuración:
sudo dpkg-reconfigure wireshark-common
Si Wireshark se configuró para restringir la captura a los miembros del grupo wireshark
, es posible que debas agregar el usuario correcto al grupo:
sudo usermod -a -G wireshark user
También agrega el usuario correcto al grupo dialout
:
sudo usermod -a -G dialout user
Cierra y reinicia Wireshark para aplicar la nueva configuración del grupo de usuarios.
Error de formato de Wireshark cuando se captura en varias interfaces USB en Windows
Este es un problema conocido de algunas versiones anteriores de Wireshark. Asegúrate de usar Wireshark 3.0.6 o una versión posterior.