Introdução
O Wireshark é uma ferramenta open source utilizada para diagnosticar o tráfego de redes. Através dele, é possível monitorar todo o conteúdo dos pacotes de rede que trafegam pelo sistema. Neste documento, será mostrado como utilizá-lo para diagnosticar problemas de conexão com o License Controller, serviço usado pelos produtos legado da linha Datasul para efetuar a comunicação com o TOTVS License Server.
Instalação
Importante: a instalação do Wireshark deverá ser feita no servidor onde roda o License Controller!
Windows
Para instalar o Wireshark no Windows, basta baixar e executar o instalador adequado de acordo com a plataforma do sistema (32 ou 64 bits) na página http://www.wireshark.org/download.html. O processo de instalação é bem simples, basta aceitar todas as opções padrão até a conclusão do instalador.
Nota: no Windows, o instalador do Wireshark também executa a instalação da ferramenta WinPcap, que possui um instalador separado que é executado automaticamente pelo instalador do Wireshark.
Linux
Em distribuições Linux, normalmente o Wireshark já se encontra disponível nos repositórios de pacotes do sistema. Para instalá-lo, basta executar no terminal o comando apropriado para realizar a instalação do pacote:
- Distribuições baseadas em Debian (p. ex. Ubuntu):
sudo apt-get install wireshark
- Distribuições baseadas no Fedora (p. ex. Red Hat, CentOS):
su -c 'yum install wireshark-gnome'
Executando uma captura
Para executar uma captura (monitoramento dos pacotes de rede) do tráfego referente ao License Controller, execute os seguintes passos:
- Inicie o Wireshark
- Clique no botão List available capture interfaces..., localizado na barra de ferramentas:
- Na janela Wireshark: Capture Interfaces, clique no botão Options:
- Na janela Wireshark: Capture options, clique duas vezes na interface de rede usada pelo LC. Se houver mais de uma interface de rede listada, confira através do endereço IP qual é a interface utilizada pelo License Controller:
- Na janela Edit Interface Settings:
- Desmarque a opção Capture packets in promiscuous mode
- Digite no campo Capture Filter o texto
tcp port <porta do lc>
. No exemplo abaixo, a porta do LC é 6555:
Se o fundo do campo ficar verde, significa que o filtro foi corretamente digitado e reconhecido pelo Wireshark. - Clique no botão OK para confirmar
- De volta à janela Wireshark: Capture options, certifique-se que a interface de rede que você acabou de configurar para a captura esteja com o checkbox na coluna Capture marcado. Clique então no botão Start para iniciar a captura dos pacotes:
- O Wireshark iniciará então a captura dos pacotes filtrada para considerar apenas os pacotes que trafegam na porta configurada:
Como interpretar a captura
A janela de captura do Wireshark é dividida em três áreas:
- A primeira área é uma lista de todos os pacotes capturados
- A segunda área mostra o conteúdo de cada camada OSI do pacote
- A terceira área mostra o conteúdo cru do pacote, tanto em bytes apresentados no formato hexadecimal quanto na sua representação em texto ASCII
Na lista de pacotes capturados, temos as seguintes colunas:
- No.: número sequencial do pacote na captura
- Time: tempo decorrido desde o início da captura até a transmissão do pacote
- Source: endereço IP da origem do pacote
- Destination: endereço IP do destino do pacote
- Protocol: protocolo de transmissão. No caso do LC, será sempre TCP
- Length: tamanho em bytes do pacote
- Info: resumo das informações do pacote
Para identificar se o pacote se refere a um comando enviado do EMS ao LC ou se é um pacote de resposta do LC ao EMS, verifique os campos Source e Destination e Info. Caso o pacote tenha sido recebido pelo LC (um comando enviado pelo ERP, no caso), o campo Source conterá o endereço IP da máquina onde o ERP está rodando. Caso seja um pacote de retorno, o campo Source conterá o endereço IP do servidor onde roda o LC. No campo Info, constam as portas utilizadas na transmissão do pacote, no formato porta origem > porta destino. Nesse campo, os pacotes recebidos pelo LC ficam no formato porta client > porta LC, e os pacotes retornados pelo LC ao ERP ficam no formato porta LC > porta client.
Identificando perdas de conexão
As perdas repentinas de conexão são identificadas através da informação [RST] no campo Info. Isso indica que a conexão entre o LC e o ERP foi interrompida anormalmente, através de um reset no pacote TCP. O Wireshark destaca esses pacotes com um fundo vermelho escuro, conforme exemplo abaixo:
Neste exemplo, a conexão foi interrompida por iniciativa do client, conforme podemos identificar através do campo Source e da porta de origem no campo Info. Se a desconexão tivesse sido interrompida do lado do servidor do LC, os valores dos campos Source e Destination estariam invertidos entre si e no campo Info a porta do LC apareceria à esquerda do caractere ">".
Exportando a captura para um arquivo
É possível exportar a captura realizada para um arquivo que poderá ser lido numa outra sessão do Wireshark. Para fazer isto:
- Interrompa a captura clicando no botão Stop the running live capture:
- Clique no botão Save this capture file:
- Escolha um nome e um local para o arquivo de captura. O arquivo será gerado com a extensão
.pcapng
:
O arquivo gerado poderá ser aberto em qualquer instalação do Wireshark.