Instala y configura Wireshark

Ver código fuente en GitHub

Wireshark es una herramienta de código abierto que puede decodificar protocolos de red en la pila Thread, como IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Mesh Link Establishment), UDP y CoAP.

La herramienta de detector de Pyspinel se conecta a un dispositivo NCP o RCP de Thread y la convierte en un detector de paquetes promiscuo, lo que genera una transmisión de pcap (captura de paquetes) que se guarda o se canaliza directamente en Wireshark.

Para usar Wireshark con Pyspinel, consulta las recomendaciones de instalación en el paso siguiente. También deberás configurar Wireshark para mostrar correctamente los paquetes de Thread y recibir mediciones RSSI.

Instala Wireshark

Linux

Abre una terminal y ejecuta los siguientes comandos para descargar e instalar Wireshark:

sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark

Recomendamos ejecutar Wireshark como un usuario ajeno a root. Para ello, vuelve a configurar el paquete:

sudo dpkg-reconfigure wireshark-common

Cuando veas el diálogo "¿Deberían los usuarios que no son superusuarios poder capturar paquetes?", selecciona , agrega el usuario wireshark y actualiza los permisos del archivo:

sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap

macOS y Windows

Descarga e instala Wireshark. Para optimizar la seguridad de tu sistema operativo, consulta Wireshark: información específica de la plataforma sobre los privilegios de captura.

Configura los protocolos de Wireshark

Para configurar los protocolos, selecciona Preferencias... en Wireshark y expande la sección Protocolos.

6LoWPAN

Selecciona 6LoWPAN en la lista de protocolos y verifica o cambia la siguiente configuración:

  1. Desmarca la opción ID derivado de acuerdo con RFC 4944.
  2. Actualiza Context 0 con el prefijo local de malla para la red de subprocesos de destino.

OT Sniffer Wireshark 6LoWPAN

Wireshark usa configuraciones de contexto para analizar la dirección IPv6 comprimida y mostrar las direcciones IPv6 de origen y destino de forma correcta.

Para mostrar las direcciones de otros prefijos en la malla configurados en la puerta de enlace, actualiza otros ID de contexto con esos prefijos.

A fin de obtener el ID de contexto para un prefijo en malla específico, consulta el TLV de datos de la red Thread en cualquier mensaje de respuesta de datos MLE. Por ejemplo:

Context 1: fd00:7d03:7d03:7d03::/64

PAP

Selecciona CoAP de la lista de protocolos y establece CoAP UDP Port en 61631. Esto garantiza que se muestren los mensajes TMF (como la solicitud de dirección).

IEEE 802.15.4

Selecciona IEEE 802.15.4 en la lista de protocolos y verifica o cambia la siguiente configuración:

  1. Establece 802.15.4 Ethertype (en hexadecimal) en "0x809a".
  2. Configura el Paquete de seguridad como "Encriptación AES-128, protección de la integridad de 32 bits".
  3. Haz clic en el botón Edit... junto a Decryption Keys, que es donde agregas la clave maestra de la red de Thread para la desencriptación de paquetes.

    1. Haz clic en + para agregar una clave de desencriptación.
    2. Ingresa la clave maestra de la red de Thread en la columna Desencriptación de la clave.
    3. Ingresa “1” como el índice de la clave de desencriptación.
    4. Selecciona Hash de conversación en el cuadro de lista de la columna Hash de clave.

      OT Sniffer Wireshark IEEE 802.15.4

    5. Haz clic en Aceptar para guardar la clave de desencriptación.

Conversación

Selecciona Thread de la lista de protocolos y verifica o cambia la siguiente configuración:

  • Ingresa "00000000" en el Contador de secuencias de subprocesos.
  • Desmarca la opción Usar ID de PAN como los dos primeros octetos de la clave maestra.
  • Marca Adquirir automáticamente el contador de secuencias de subprocesos.

Haz clic en el botón Aceptar para guardar los cambios del protocolo.

Parte del tráfico de Thread podría analizarse como protocolo de ZigBee. Para mostrar estos dos protocolos de forma correcta, edita los protocolos habilitados en Wireshark:

  1. En Wireshark, ve a Analyze y luego haz clic en Enabled Protocols.
  2. Desmarca los siguientes protocolos:

    1. LwMesh
    2. ZigBee
    3. ZigBee Green Power

Configura Wireshark RSSI

Para mostrar RSSI en Wireshark:

  1. Selecciona Preferencias... y expande la sección Protocolos. Luego, haz clic en IEEE 802.15.4.
  2. Configura el Formato FCS:

    • Si se inhabilitó TAP IEEE 802.15.4: Metadatos de TI CC24xx.
    • Si IEEE 802.15.4 TAP está habilitado: ITU-T CRC-16. Si estás siguiendo la guía de Detección de paquetes para el semiconductor nórdico nRF52840 DK, consulta la marca --tap.
  3. Haz clic en Aceptar para guardar y volver al menú Preferencias.

  4. En Preferencias, selecciona Apariencia y, luego, Columnas.

  5. Agregar una entrada nueva:

    • Título: RSSI
    • Tipo: Personalizado
    • Campos: wpan.rssi

OT Sniffer Wireshark RSSI