Usando um analisador de pacote para troubleshooting de rede - parte I

Por que minha rede está lenta ?
Por que não posso acessar meu email ?
Por que não posso compartilhar um drive ?

Todas essas perguntas e muitas outras serão feitas quando algo estranho acontece na sua rede e um milhão de coisas diferentes podem dar errado em uma rede em um dado momento do dia - de uma simples infecção por um spyware, a um erro complexo de configuração no seu router - e é literalmente impossível resolver todos os problemas imediatamente. O melhor que podemos esperar fazer é estar totalmente preparados com o conhecimento e ferramentas que podem responder a esses tipos de casos. Resumindo : pró-ativos 24 horas.
Todos os problemas das redes resultam do nível de pacote, onde até mesmo aplicações que parecem estar rodando corretamente, podem revelar implementações horríveis e protocolos confiáveis podem se provar serem maliosos.
Para melhor entender e resolver problemas na rede, vamos olhar no nível de pacote onde nada está escondido, e onde nada está obscurecido por estruturas de menu mal feitas, olhos capturando gráficos ou funcionários não confiáveis. Aqui, não existem segredos, e quanto mais podemos fazer ao nível de pacote, mais podemos ter controle da nossa rede e resolver seus problemas. Então, prepare-se para entrar….
… no mundo dos analisadores de pacote ou sniffers.
Neste artigo, vou mostrar como vocês podem efetivamente usar um analisador de pacote, ou, um sniffer, para isolar e resolver problemas na sua rede.
Mas, antes, uma curiosidade:
Sniffer é diferente de sniffer. Sim, é diferente.
Sniffer, com a primeira letra maiúscula, é uma marca proprietária da NetScout (já foi da Network General). Já, sniffer é um termo genérico usado pela indústria para definir um programa que monitora e analisa o tráfego de rede, detectando gargalos na rede e outros problemas.
Aqui está o link da definição feita no Search Networking.
Bem, esse é o primeiro artigo de uma série 5 ou 6 . E não é nossa intenção esgotar o assunto. Não. Nem pensar. Apenas vamos “resvalar” no tema que convenhamos é vasto. ok?

I - Como os sniffers de pacote funcionam

Um analisador de pacote é um programa utilizado para capturar e analisar pacotes na sua rede. Estes pacotes são os blocos fundamentais de construção das comunicações de rede.
O processo de sniffing de pacote envolve três passos fundamentais : coleta, conversão e analisar.
No primeiro passo, o sniffer de pacote comuta a interface da placa de rede do seu computador onde está sendo executado para o modo promíscuo. Neste modo, uma placa de rede pode ouvir todo tráfego de rede neste segmento em particular. O sniffer utiliza este recurso para capturar dados binários brutos fluindo através deste hardware de rede, a placa. Uma vez que esteja completa, o processo de conversão se inicia e os dados binários capturados são convertidos em um formato legível.
Tudo que tem de ser feito agora neste ponto é a análise destes pacotes capturados. É agora que o sniffer captura o pacote e converte os dados e verifica qual protocolo está dentro dele. Os vários recursos destes protocolos são então avaliados pelo sniffer e exibido para o usuário em um formato que seja fácilmente lido.
Existem alguns sniffers de pacote disponíveis. Os mais populares incluem o OmnipeekTCPDump e Wireshark (ex-Ethereal). Qual deles você vai usar, só vai depender da sua preferência pessoal. Eu prefiro o Wireshark, devido a grande comunidade de suporte e ao fácil uso da sua interface, de modo que é sobre ele que vamos usar por todo este artigo.

As 5 partes

Um analizador de rede é uma combinação de hardware e software. Embora existam diferenças em cada produto, um analizador de rede é composto de 5 partes básicas:
Hardware – A maioria dos analisadores de rede são baseados em software e funcionam com os SO’s padrão e placas de redes. Entretanto, alguns analisadores de rede oferecem benefícios adicionais tais como, análise de falhas de hardware (por exemplo, erros de CRC), problemas de voltagem, problemas de cabeamento, jitter, jabber, erros de negociação, e assim por diante. Alguns analisadores de rede somente suportam adaptadores Ethernet ou wireless, enquanto outros suportam adaptadores múltiplos e permite que usuários customizem suas configurações. Dependendo da situação, você pode também precisar de um hub ou de um cabo tap para conectar ao cabo existente.
Drive de captura – Esta é parte do analizador de rede que é responsável pela captura bruta do tráfego de rede do cabo. Ele filtra a saída do tráfego que você quer pegar e guardar para capturar o dado no buffer. Este é a “alma” de um analizador de rede – você não pode capturar dados sem ele.
Buffer – Este componente armazena os dados capturados. O dado pode então ser armazenado no buffer até ele estiver cheio, ou, dentro de um método de rotação (por exemplo, um “round robin”), onde o dado mais novo substitue o dado mais antigo. Buffers podem ser baseados em disco ou baseados em memória.
Análise real-time – Esta característica analisa o dado conforme ele chega no cabo. Alguns analisadores de rede utilizam-o para encontrar problemas na performance da rede, e IDS’s (Intrusion Detection Systems) utilizam-o para olhar os sinais de atividade de invasão.
Decodificação – Este componente exibe o conteúdo (com descrições) do tráfego de rede de modo a que ele seja legível. Decodificadores são específicos para cada protocolo, dessa forma os analisadores de protocolo variam em número de decodificadores que eles suportam atualmente. Entretanto, novos decodes são constantemente adicionados aos analisadores de rede.

Capturando pacotes com o Wireshark

O programa Wireshark é distribuído livremente e pode ser feito o download no site da Wireshark. Instalar o software é bastante fácil, então não vou falar sobre isso, embora seja importante observar que este soft conta com a instalação do driver WinPcap que já vem incluído no pacote.
Bom, uma vez que você instale o Wireshark com o driver WinPcap, você deverá estar pronto para mergulhar de cabeça nele. A primeira coisa que vamos fazer é simplesmente… adivinhe ? Capturar pacotes. Sim !! E para fazer isto, você primeiro precisa selecionar sobre qual interface de rede ele irá fazer a captura, ao clicar no botão “List available capture interfaces” do lado esquerdo da barra de ferramentas principal.
 wireshark02.jpg
Feito isso, você será presenteado com uma janela listando todas as suas interfaces de rede onde a captura está disponível. Clique no botão “Start” próximo a interface que você deseja utilizar para dar inicío a captura de pacotes desta conexão. Espere por alguns minutos até que uma quantidade significativa de pacotes tenha sido coletada e então clique no botão “Stop“.
Simples assim. :)
wireshark01.jpg
Você deverá então retornar a tela principal com um monte de dados novos e ….
Congratulations !!! 
Você acabou de completar sua primeira captura de pacotes com sucesso !
Agora, você pode começar a se perguntar: Como irei interpretar esta captura de dados ?!?
Mas ainda não estamos prontos para isso. Precisamos ver como o nosso sniffer funciona, mas isso é para o próximo artigo.
Sds,
Márcia Guimarães

Vamos aguardar a continuação.

©2007-2010 jairtiago.blogspot.com. Tecnologia do Blogger.