Instalar e configurar o Wireshark

Veja o código-fonte no GitHub

O Wireshark é uma ferramenta de código aberto que decodifica protocolos de rede na pilha Thread, como IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Estabelecimento de links de malha), UDP e CoAP.

A ferramenta MapReduce do Pyspinel se conecta a um dispositivo RCP ou RCP do Thread e os converte em um detector de pacotes promíscuo, gerando um stream pcap (captura de pacotes) para ser salvo ou canalizado diretamente no Wireshark.

Para usar o Wireshark com o Pyspinel, consulte as recomendações de instalação na próxima etapa. Também será necessário configurar o Wireshark para exibir corretamente os pacotes Thread e receber medições 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 que não seja root. Para fazer isso, reconfigure o pacote:

sudo dpkg-reconfigure wireshark-common

Quando a caixa de diálogo perguntando "Quem não é superadministrador conseguir capturar pacotes?", selecione Sim, 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 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 expanda a seção Protocolos.

6LoWPAN

Selecione 6LoWPAN na lista de protocolos e verifique ou altere as seguintes configurações:

  1. Desmarque Derivar ID de acordo com a RFC 4944.
  2. Atualize o Context 0 com o prefixo local da malha para a rede Thread de destino.

OTN Sniffer Wireshark 6LoWPAN

O Wireshark usa as configurações de contexto para analisar o endereço IPv6 compactado e exibir corretamente os endereços IPv6 de origem e destino.

Para mostrar os endereços de outros prefixos de malha configurados no gateway, atualize outros IDs de contexto com esses prefixos.

Para receber o ID do contexto de um prefixo de malha específico, visualize 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 a Porta UDP CoAP como 61631. Isso garante que as mensagens do TMF (como "solicitar endereço") sejam exibidas.

IEEE 802.15.4

Selecione IEEE 802.15.4 na lista de protocolos e verifique ou altere as seguintes configurações:

  1. Defina Ethertype 802.15.4 (em hexadecimal) como "0x809a".
  2. Defina o Pacote 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. Digite "1" como o índice da chave de descriptografia.
    4. Selecione Hash da linha de execução na caixa de listagem da coluna Hash da chave.

      OTS 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 altere as seguintes configurações:

  • Digite "00000000" no Contador da sequência de linhas de execução.
  • Desmarque Usar o ID do PAN como os dois primeiros octetos da chave mestra.
  • Marque a opção Adquirir automaticamente o contador de sequência da linha de execução.

Clique no botão OK para salvar as alterações do protocolo.

Parte do tráfego Thread pode ser analisado como o protocolo ZigBee. Para exibir 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 (em inglês)
    2. ZigBee (link em inglês)
    3. Energia verde no ZigBee

Configurar RSSI do Wireshark

Para exibir RSSI no Wireshark:

  1. Selecione Preferências..., abra a seção Protocolos e clique em IEEE 802.15.4.
  2. Defina o formato FCS:

    • Se o IEEE 802.15.4 TAP estiver desativado: metadados TI2 CC24xx.
    • Se o IEEE 802.15.4 TAP estiver ativado: ITU-T CRC-16. Se você estiver seguindo o guia Pacote de detecção para o Nordic Semiconductor nRF52840 DK, consulte a sinalização --tap para mais informações.
  3. Clique em OK para salvar e voltar ao menu Preferences.

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

  5. Adicionar uma nova entrada:

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

RSSI Sniffer Wireshark