Instalar e configurar o Wireshark

Ver código-fonte no GitHub

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:

  1. Desmarque a opção Derive ID according to RFC 4944.
  2. Atualize o Contexto 0 com o prefixo local de malha para a rede Thread de destino.

OT Sniffer Wireshark 6LoWPAN

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:

  1. Defina 802.15.4 Ethertype (em hexadecimal) como "0x809a".
  2. Defina a Suíte de segurança como "Criptografia AES-128, proteção de integridade de 32 bits".
  3. 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.

    1. Clique em + para adicionar uma chave de descriptografia.
    2. Insira a chave mestra da rede Thread na coluna Chave de descriptografia.
    3. Insira "1" como o índice da chave de descriptografia.
    4. Selecione Hash de thread na caixa de seleção de coluna Hash de chave.

      OT Sniffer Wireshark IEEE 802.15.4

    5. 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:

  1. No Wireshark, acesse Analyze e clique em Enabled Protocols.
  2. Desmarque os seguintes protocolos:

    1. LwMesh
    2. ZigBee
    3. ZigBee Green Power

Configurar o RSSI do Wireshark

Para mostrar o RSSI no Wireshark:

  1. Selecione Preferences... e expanda a seção Protocols. Em seguida, clique em IEEE 802.15.4.
  2. 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.
  3. Clique em OK para salvar e retornar ao menu Preferences.

  4. Em Preferências, selecione Aparência e Colunas.

  5. Adicione uma nova entrada:

    • Title: RSSI
    • Tipo: personalizado
    • Campos: wpan.rssi

OT Sniffer Wireshark RSSI