Este guia mostra como configurar o extcap para o Wireshark para detectar pacotes de uma rede Thread.
Para usar o Pyspinel para detectar o pacote sem limite, consulte Como detectar o pacote com o Pyspinel.
Configurar o ambiente detector
Antes de começar, siga estas etapas:
- Leia os Requisitos de detecção de pacote.
- Instale e configure o Wireshark.
- Instale o Pyspinel e as dependências com extcap.
Verificação
Este guia foi verificado com o Zolertia Firefly (Texas Instruments CC2538 SoC) nos seguintes sistemas host:
- Debian 4.19.37 — Wireshark 3.0.4
- macOS Mojave 10.14.6 — Wireshark 3.0.5
- Windows 10 de 64 bits versão 17134 — Wireshark 3.0.6
Criar e atualizar o flash
As instruções de criação e atualização variam de acordo com a plataforma.
Para instruções sobre como criar e atualizar o CC2538, consulte o README de exemplo do CC2538 (em inglês) no GitHub.
Para ver instruções gerais de compilação, consulte Como criar a OpenThread.
Usar o detector
A tela de captura do Wireshark será exibida quando o Wireshark for iniciado. Ela precisa listar as interfaces de hardware conectadas a um detector do OpenThread.
Capturar em uma única interface
Se esta for a primeira vez que você usa uma interface, clique no botão Opções à esquerda da interface:
- Defina o Canal com o valor desejado.
- Verifique o IEEE 802.15.4 TAP para garantir que as informações do canal sejam incluídas na saída do pcap e possam ser exibidas na GUI do Wireshark
- Marque Salvar parâmetros no início da captura para garantir que esses parâmetros sejam salvos após o início da captura para evitar a necessidade de configurá-los novamente na próxima vez que você usar a interface, a menos que seja necessário mudar o canal.
- Clique em Iniciar.
Se os parâmetros já estiverem salvos, selecione a interface de hardware e clique no ícone do Wireshark no canto superior esquerdo para iniciar a detecção.
Captura de várias interfaces
Selecione todas as interfaces de hardware listadas na tela de captura e clique no ícone do Wireshark na parte superior esquerda.
Use estes campos para identificar drawables individuais ao capturar a partir de várias interfaces:
- ID da interface (frame.interface_id): identificador de interface usado pelo Wireshark para identificar uma interface de captura
- Nome da interface (frame.interface_name): nome de interface usado pelo Wireshark para identificar uma interface de captura.
- Canal (wpan-tap.ch_num) — canal de captura IEEE 802.15.4 (intervalo: 11 a 26)
Solucionar problemas
O AndroidX OpenThread não está listado como uma interface Wireshark
- Se você tiver vários intérpretes de Python instalados, verifique se o interpretador do Python 3 é usado pelo script de saída. O Pyspinel não é compatível com o Python 2.
- Verifique se o hardware é enumerado no USB e se os drivers estão carregados.
- Verifique se o firmware correto (NCP ou RCP) foi atualizado no hardware.
- Verifique se o script Python localizado no caminho de saída é executável.
- Para OS X e Linux:
- Verifique se a permissão de execução está presente no arquivo
extcap_ot.py
:ls -l extcap_ot.py
- Se a permissão de execução (x) estiver ausente, modifique as permissões:
chmod +x extcap_ot.py
- Verifique se a interface está listada:
extcap_ot.py --extcap-interfaces
- Verifique se a permissão de execução está presente no arquivo
- No Windows:
- Verifique se a interface está listada:
extcap_ot.bat --extcap-interfaces
- Se isso sair com um erro do Python, verifique se a versão é 3.x:
py -3 --version
- Verifique se a interface está listada:
- Para OS X e Linux:
O Wireshark só permite que o usuário raiz capture pacotes
Durante a instalação do Wireshark no Ubuntu, o usuário precisará escolher uma das seguintes opções:
- Crie o grupo de usuários
wireshark
e permita que todos os membros desse grupo capturem pacotes. - Permita que apenas o usuário
root
capture pacotes.
Não recomendamos usar o Wireshark como usuário root
. Se você escolheu
essa opção, altere a configuração:
sudo dpkg-reconfigure wireshark-common
Se o Wireshark tiver sido configurado para restringir a captura a membros do
grupo wireshark
, talvez seja necessário adicionar o usuário correto ao grupo:
sudo usermod -a -G wireshark user
Adicione também o usuário correto ao grupo dialout
:
sudo usermod -a -G dialout user
Feche e reinicie o Wireshark para aplicar as novas configurações de grupo de usuários.
Erro de formato do Wireshark durante a captura em várias interfaces USB no Windows
Esse é um problema conhecido (link em inglês) de algumas versões antigas do Wireshark Verifique se você está usando o Wireshark 3.0.6 ou mais recente.