O Wireshark é uma ferramenta de código aberto que pode decodificar protocolos de rede na pilha Thread, como IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Mesh Link Establishment), UDP e CoAP.
A ferramenta de detecção de pacotes Pyspinel se conecta a um dispositivo Thread NCP ou RCP e o converte em um sniffer de pacotes promíscuo, gerando um stream pcap (captura de pacotes) para ser salvo ou canalizado diretamente para o Wireshark.
Para usar o Wireshark com o Pyspinel, consulte as recomendações de instalação na próxima etapa. Você também vai precisar configurar o Wireshark para mostrar corretamente os pacotes da Thread e receber medições de RSSI.
Instalar o Wireshark
Linux
Abra um terminal e execute os seguintes comandos para fazer o download e instalar o Wireshark:
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark
Recomendamos executar o Wireshark como um usuário não root
. Para isso, reconfigure o pacote:
sudo dpkg-reconfigure wireshark-common
Quando a caixa de diálogo "Should non-superusers be able to capture packets?" aparecer,
selecione Yes, adicione o usuário wireshark
e atualize as permissões do arquivo:
sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap
macOS e Windows
Faça o download e instale o Wireshark. Para otimizar a segurança do seu sistema operacional, consulte Wireshark: informações específicas da plataforma sobre privilégios de captura.
Configurar protocolos do Wireshark
Para configurar protocolos, selecione Preferences... no Wireshark e abra a seção Protocols.
6LoWPAN
Selecione 6LoWPAN na lista de protocolos e verifique ou mude as seguintes configurações:
- Desmarque a opção Derive ID according to RFC 4944.
- Atualize o Contexto 0 com o prefixo local de malha para a rede Thread de destino.
O Wireshark usa configurações de contexto para analisar o endereço IPv6 compactado e exibir os endereços de origem e destino IPv6 corretamente.
Para mostrar os endereços de outros prefixos na malha configurados no gateway, atualize outros IDs de contexto com esses prefixos.
Para receber o ID de contexto de um prefixo específico na malha, confira o TLV de dados da rede Thread em qualquer mensagem de resposta de dados MLE. Exemplo:
Context 1: fd00:7d03:7d03:7d03::/64
CoAP
Selecione CoAP na lista de protocolos e defina Porta UDP do CoAP como 61631. Isso garante que as mensagens de TMF (como solicitação de endereço) sejam exibidas.
IEEE 802.15.4
Selecione IEEE 802.15.4 na lista de protocolos e verifique ou mude as seguintes configurações:
- Defina 802.15.4 Ethertype (em hexadecimal) como "0x809a".
- Defina a Suíte de segurança como "Criptografia AES-128, proteção de integridade de 32 bits".
Clique no botão Editar... ao lado de Chaves de descriptografia, que é onde você adiciona a chave mestra da rede Thread para descriptografia de pacotes.
- Clique em + para adicionar uma chave de descriptografia.
- Insira a chave mestra da rede Thread na coluna Chave de descriptografia.
- Insira "1" como o índice da chave de descriptografia.
Selecione Hash de thread na caixa de seleção de coluna Hash de chave.
Clique em OK para salvar a chave de descriptografia.
Conversa
Selecione Thread na lista de protocolos e verifique ou mude as seguintes configurações:
- Digite "00000000" para o contador de sequência de linhas.
- Desmarque a opção Usar o ID PAN como os dois primeiros octetos da chave mestra.
- Marque a opção Adquirir automaticamente o contador de sequência de linhas.
Clique no botão OK para salvar as mudanças no protocolo.
Parte do tráfego do Thread pode ser analisado como o protocolo ZigBee. Para mostrar corretamente esses dois protocolos, edite os protocolos ativados no Wireshark:
- No Wireshark, acesse Analyze e clique em Enabled Protocols.
Desmarque os seguintes protocolos:
- LwMesh
- ZigBee
- ZigBee Green Power
Configurar o RSSI do Wireshark
Para mostrar o RSSI no Wireshark:
- Selecione Preferences... e expanda a seção Protocols. Em seguida, clique em IEEE 802.15.4.
Defina o Formato FCS:
- Se o IEEE 802.15.4 TAP estiver desativado: Metadados TI CC24xx.
- Se o IEEE 802.15.4 TAP estiver ativado: ITU-T CRC-16. Se você estiver seguindo
o guia de sniffing de pacotes para o DK nRF52840 da Nordic Semiconductor, consulte a flag
--tap
para mais informações.
Clique em OK para salvar e retornar ao menu Preferences.
Em Preferências, selecione Aparência e Colunas.
Adicione uma nova entrada:
- Title: RSSI
- Tipo: personalizado
- Campos: wpan.rssi