Como capturar pacotes no Mikrotik
Introdução
Certos problemas de rede só podem ser identificados mais profundamente através da análise de uma captura de pacotes. Através desta captura podemos identificar excesso de retransmissões, falhas em consultas em DNS, emissão de pacotes com IP de origem incorreto e diversos outros problemas que dificilmente veríamos de forma tradicional.
Existem diversas formas de se capturar pacotes em uma rede. O método mais usado geralmente é através do utilitário tcpdump do Linux. O Mikrotik possui das formas de se analisar pacotes: torch e packet sniffer.
Apesar de o torch também ser um recurso válido, ele é relativamente limitado à alguns detalhes dos pacotes. Por este motivo, iremos demonstrar neste artigo como capturar os pacotes utilizando o packet sniffer, pois podemos visualizar a captura localmente em nossos computadores com o Wireshark.
Requisitos
- Um roteador Mikrotik;
- Wireshark;
- Winbox.
Salvando um arquivo de captura no Mikrotik
No Winbox, em Tools > Packet Sniffer, preencha da seguinte forma:
Guia General
- Memory Limit: a quantidade máxima de memória em KB que será usada para salvar a captura de pacotes. Geralmente 10000 KBs (10 MB) é suficiente para capturas normais.
- Only headers: caso queira salvar apenas os cabeçalhos dos pacotes, marque esta opção. Se tiver dúvidas do que precisa, deixe-a desmarcada.
- File name: nome do arquivo que será salvo no roteador. Utilize sempre a extensão .pcap para facilitar o reconhecimento do software padrão (Wireshark) no sistema operacional. Exemplo: ProblemasGoogle.pcap.
- File limit: este será o tamanho máximo do arquivo. Este tamanho dependerá do que você deseja analisar.
Guia Streaming
Como não iremos transmitir a captura em tempo real nesta seção, todos os campos desta guia podem ser deixados desmarcados e em branco.
Guia Filter
Esta guia é onde você configurará os filtros para selecionar o que exatamente deseja capturar.
Caso deseje utilizar mais de um filtro em um parâmetro específico, basta clicar na seta para baixo do lado direito do parâmetro. Para selecionar se o condicional será e ou ou, utilize o campo Filter Operation, explicado mais abaixo.
Os campos de Interfaces até CPU não são obrigatórios, portanto utilize apenas os filtros que te forem desejados. Caso não deseje filtrar nada específico, basta deixar todos esses campos em branco.
- Interfaces: De qual interface deseja coletar a captura.
- Mac Address: De qual endereço MAC de origem ou destino deseja coletar a captura.
- Mac Protocol: De qual protocolo de camada 2 deseja coletar a captura.
- IP Address: De qual IPv4 (obsoleto) de destino ou de origem deseja coletar a captura.
- IPv6 Address: De qual IPv6 de destino ou de origem deseja coletar a captura.
- IP Protocol: De qual protocolo de camada 4 deseja coletar a captura
- Port: De qual porta deseja coletar a captura
- CPU: De qual CPU deseja capturar os pacotes
- Direction: Baseado na interface selecionado, qual sentido deseja capturar pacotes: rx (download) ou tx (upload).
- Filter Operation: Quando um campo tiver mais de um parâmetro, a opção selecionada aqui decidirá se a condição será e ou ou. Exemplos:
- Caso você adicione dois IPs no campo IPv6 Address e a condição aqui seja or, a captura irá coletar pacotes que coincidam com qualquer um destes IPs;
- Caso você adicione dois IPs no campo IPv6 Address e a condição aqui seja and, a captura irá coletar apenas os pacotes que coincidam com os dois IPs ao mesmo tempo.
No Winbox, em Tools > Packet Sniffer, clique em start quando desejar iniciar a captura;
No Winbox, em Tools > Packet Sniffer, clique em stop quando desejar parar a captura. Após isso, o arquivo estará salvo no menu files no Mikrotik e poderá ser baixado localmente.
Transmitindo a captura em tempo real para o Wireshark
Em Tools > Packet Sniffer, preencha da seguinte forma:
Guia General
- Memory Limit: A quantidade máxima de memória em KB que será usada para salvar a captura de pacotes. Geralmente 10000 KBs (10 MB) é suficiente para capturas normais.
- Only headers: Caso queira capturar apenas os cabeçalhos dos pacotes, marque esta opção. Se tiver dúvidas do que precisa, deixe-a desmarcada.
- File name: Este campo não será preenchido, visto que iremos transmitir a captura em tempo real para o Wireshark.
- File limit: Este campo não será preenchido, visto que iremos transmitir a captura em tempo real para o Wireshark.
Guia Streaming
Esta guia é utilizada para configurar a transmissão remota para o computador local que está rodando o Wireshark. É aqui que configuraremos para que a captura seja lida em tempo real no Wireshark.
Para que este streaming funcione, é necessário que a porta UDP 37008 esteja liberada em sua rede.
- Streaming Enabled: Habilitar ou não a transmissão em tempo real.
- Server: IP do computador que irá rodar o wireshark para leitura em tempo real dos pacotes. Infelizmente este campo só suporta o antigo protocolo IPv4.
- Filter stream: Filtrar ou não que o tráfego de transmissão das capturas também seja capturado. Não faz sentido capturar este tráfego geralmente, então se tiver dúvidas, deixe a caixa sempre marcada.
Guia Filter
Esta guia é onde você configurará os filtros para selecionar o que exatamente deseja capturar.
Caso deseje utilizar mais de um filtro em um parâmetro específico, basta clicar na seta para baixo do lado direito do parâmetro, como indicado no campo x do screenshot abaixo. Para selecionar se o condicional será e ou ou, utilize o campo Filter Operation, explicado mais abaixo.
Os campos de Interfaces até CPU não são obrigatórios, portanto utilize apenas os filtros que te forem desejados. Caso não deseje filtrar nada específico, basta deixar todos esses campos em branco.
- Interfaces: De qual interface deseja coletar a captura.
- Mac Address: De qual endereço MAC de origem ou destino deseja coletar a captura.
- Mac Protocol: De qual protocolo de camada 2 deseja coletar a captura.
- IP Address: De qual IPv4 (obsoleto) de destino ou de origem deseja coletar a captura.
- IPv6 Address: De qual IPv6 de destino ou de origem deseja coletar a captura.
- IP Protocol: De qual protocolo de camada 4 deseja coletar a captura
- Port: De qual porta deseja coletar a captura
- CPU: De qual CPU deseja capturar os pacotes
- Direction: Baseado na interface selecionado, qual sentido deseja capturar pacotes: rx (download) ou tx (upload).
- Filter Operation: Quando um campo tiver mais de um parâmetro, a opção selecionada aqui decidirá se a condição será e ou ou. Exemplos:
- Caso você adicione dois IPs no campo IPv6 Address e a condição aqui seja or, a captura irá coletar pacotes que coincidam com qualquer um destes IPs;
- Caso você adicione dois IPs no campo IPv6 Address e a condição aqui seja and, a captura irá coletar apenas os pacotes que coincidam com os dois IPs ao mesmo tempo.
Lendo esta captura no Wireshark
- Abra o Wireshark como administrador;
- Caso não deseje ver todo o tráfego local de seu computador, utilize filtros no menu superior, como no exemplo do screenshot abaixo;
- Após isso, clique no botão azul para iniciar a captura, como indicado no screenshot abaixo:
Se tudo tiver dado certo, você já começará a ver os pacotes transmitidos à seu computador.
No Winbox, em Tools > Packet Sniffer, clique em start quando desejar iniciar a captura;
No Winbox, em Tools > Packet Sniffer, clique em stop quando desejar parar a captura.
Artigo original por Daniel Damito.