Wireshark es una herramienta de código abierto que puede decodificar protocolos de red en la pila de Thread, como IEEE 802.15.4, 6LoWPAN, IPv6, MLE (establecimiento de vínculos de malla), UDP y CoAP.
La herramienta de sniffer de Pyspinel se conecta a un dispositivo NCP o RCP de Thread y lo convierte en un sniffer de paquetes promiscuo, lo que genera un flujo de pcap (captura de paquetes) para guardarlo o canalizarlo directamente a Wireshark.
Para usar Wireshark con Pyspinel, consulta las recomendaciones de instalación en el siguiente paso. También deberás configurar Wireshark para que muestre correctamente los paquetes de Thread y reciba mediciones de 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
Te recomendamos que ejecutes Wireshark como un usuario que no sea root
. Para ello, vuelve a configurar el paquete:
sudo dpkg-reconfigure wireshark-common
Cuando aparezca el diálogo que pregunta "¿Debe permitirse que los usuarios que no sean superusuarios capturen paquetes?", selecciona Sí, agrega el usuario wireshark
y actualiza los permisos de los archivos:
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 protocolos, selecciona Preferences… en Wireshark y expande la sección Protocols.
6LoWPAN
Selecciona 6LoWPAN en la lista de protocolos y verifica o cambia la siguiente configuración:
- Desmarca la opción Derive ID according to RFC 4944.
- Actualiza el Contexto 0 con el prefijo local de malla para la red de Thread de destino.
Wireshark usa configuraciones de contexto para analizar la dirección IPv6 comprimida y mostrar las direcciones de origen y destino IPv6 correctamente.
Para mostrar las direcciones de otros prefijos en malla configurados en la puerta de enlace, actualiza otros IDs de contexto con esos prefijos.
Para obtener el ID de contexto de un prefijo en malla específico, consulta el TLV de datos de red de Thread en cualquier mensaje de respuesta de datos de MLE. Por ejemplo:
Context 1: fd00:7d03:7d03:7d03::/64
CoAP
Selecciona CoAP en la lista de protocolos y establece Puerto UDP de CoAP en 61631. Esto garantiza que se muestren los mensajes de 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:
- Establece 802.15.4 Ethertype (en hexadecimal) en "0x809a".
- Establece el Security Suite en “AES-128 Encryption, 32-bit Integrity Protection”.
Haz clic en el botón Editar… junto a Llaves de desencriptación, que es donde debes agregar la clave maestra de la red Thread para la desencriptación de paquetes.
- Haz clic en + para agregar una clave de desencriptación.
- Ingresa la clave maestra de la red Thread en la columna Clave de desencriptación.
- Ingresa "1" como el índice de clave de desencriptación.
Selecciona Hash de subproceso en el cuadro de lista de la columna Hash de clave.
Haz clic en Aceptar para guardar la clave de desencriptación.
Conversación
Selecciona Thread en la lista de protocolos y verifica o cambia la siguiente configuración:
- Ingresa “00000000” para el contador de secuencia de subprocesos.
- Desmarca la opción Usar el ID de PAN como los dos primeros octetos de la clave maestra.
- Marca Automatically acquire Thread sequence counter.
Haz clic en el botón Aceptar para guardar los cambios en el protocolo.
Es posible que parte del tráfico de Thread se analice como el protocolo ZigBee. Para mostrar correctamente estos dos protocolos, edita los protocolos habilitados en Wireshark:
- En Wireshark, ve a Analyze y, luego, haz clic en Enabled Protocols.
Desmarca los siguientes protocolos:
- LwMesh
- ZigBee
- ZigBee Green Power
Configura el RSSI de Wireshark
Para mostrar el RSSI en Wireshark, haz lo siguiente:
- Selecciona Preferences… y expande la sección Protocols. Luego, haz clic en IEEE 802.15.4.
Establece el Formato FCS:
- Si el TAP IEEE 802.15.4 está inhabilitado, usa los metadatos de TI CC24xx.
- Si está habilitado el TAP IEEE 802.15.4, usa ITU-T CRC-16. Si sigues la guía de detección de paquetes para el DK nRF52840 de Nordic Semiconductor, consulta la marca
--tap
para obtener más información.
Haz clic en Aceptar para guardar los cambios y volver al menú Preferencias.
En Preferencias, selecciona Diseño y, luego, Columnas.
Agrega una entrada nueva:
- Título: RSSI
- Tipo: personalizado
- Campos: wpan.rssi