Prévia do material em texto
PROJETOS DE REDES I – ANÁLISE DE DESEMPENHO DE REDE AULA 3 Prof. Luis José Rohling 2 CONVERSA INICIAL Para analisar o desempenho das redes e as ferramentas de simulação – que podem ser empregadas ainda na etapa de projeto para simular o comportamento esperado da rede –, temos também as ferramentas de análise do tráfego da rede, que poderão ser aplicadas após sua implementação, avaliando o desempenho real das redes. Uma das ferramentas de simulação de redes é o NS-3 (visto anteriormente), que pode criar os projetos de rede no ambiente de simulação, avaliando o comportamento do tráfego na rede e analisando o resultado da execução dos programas de emulação. Porém, a análise será feita normalmente com base nos arquivos gerados como resultado da execução da simulação. O NS-3 pode ser empregado também como emulador, com a conexão do ambiente de simulação à rede real, gerando e recebendo tráfego. Nesse caso, podemos utilizar também os arquivos gerados pelo NS-3 para analisar o tráfego enviado e o tráfego recebido. No projeto e no gerenciamento das redes, outra ferramenta bastante utilizada é o Packet Tracer, que simula o ambiente de rede, incluindo as configurações dos equipamentos de redes da Cisco, como roteadores e switches. Para isso, temos dois modos de execução do Packet Tracer: tempo real e simulação. No primeiro, executamos todos os protocolos implementados, podendo-se avaliar o desempenho da rede com base no resultado obtido pelos serviços de rede. Por exemplo: para avaliar o desempenho dos protocolos de roteamento, devemos verificar o resultado final, que são as tabelas de roteamento criadas em cada roteador, além da conectividade entre os equipamentos terminais da rede. No modo de simulação, podemos acompanhar a execução dos protocolos, obtendo-se informações sobre os pacotes trafegados na rede e, assim, avaliamos o desempenho da rede, por exemplo, já na convergência dos protocolos de roteamento. Portanto, para utilizar o Packet Tracer de maneira mais eficiente na análise do desempenho da rede, estudaremos o modo de simulação com mais detalhes nesta aula. Além do ambiente de simulação, é necessário analisar também o desempenho das redes no mundo real, sendo necessário capturar e analisar o 3 tráfego. Dessa forma, para analisar os pacotes trafegados na rede, verificando os detalhes dos protocolos, temos diversas ferramentas de análise, e uma das mais utilizadas é o Wireshark, que também veremos em detalhes. TEMA 1 – SIMULAÇÃO DO PACKET TRACER Conforme vimos, podemos utilizar o Packet Tracer da Cisco para analisar pacotes trafegados no ambiente de simulação, o que permite detectar problemas de desempenho associados aos protocolos de rede ou dos serviços de rede. O Packet Tracer tem dois modos distintos: tempo real – em que executamos as aplicações e os protocolos de rede como num ambiente real – e modo de simulação – que permite acompanhar serviços e protocolos passo a passo. Podemos escolher um dos dois clicando no modo desejado, na parte inferior direita da tela principal do software, conforme a Figura 1. Figura 1 – Modos de execução do Packet Tracer Fonte: Rohling, 2021. O Packet Tracer captura os pacotes e analisa as informações de protocolo, conseguindo mais detalhes do tráfego e identificando possíveis problemas de desempenho da rede que possam se associar aos protocolos. 1.1 Elaboração da topologia A primeira etapa será elaborar a topologia da rede a ser simulada, inserindo elementos na elaboração do projeto, incluindo então as conexões entre os elementos que compõem a rede. 4 Assim, como exemplo, utilizaremos uma topologia básica de rede, com uma rede LAN com um cliente e um servidor, e um servidor para simular a rede WAN, conforme a Figura 2. Figura 2 – Topologia de simulação Fonte: Rohling, 2021. Para configurar o ambiente, endereçaremos as redes LAN e WAN, cujos endereços atribuídos aos dispositivos podem ser vistos se posicionarmos o mouse sobre eles (Figura 3). Figura 3 – Visualizando as configurações Fonte: Rohling, 2021. Conectado e configurado o endereçamento dos equipamentos, diversos protocolos de rede já estão sendo executados. Porém, nesse modo-padrão, podemos apenas verificar o resultado da operação desses protocolos ao solicitar algum serviço da rede, como no mundo real. 1.2 Utilizando o modo de simulação Para visualizar os detalhes dos pacotes que trafegam na rede, devemos mudar o modo de execução do Packet Tracer para o modo de simulação, 5 clicando sobre o ícone identificado como “Simulation” no canto direito inferior da tela (Figura 4). Figura 4 – Acionando o modo de simulação Fonte: Rohling, 2021. Ao clicarmos no ícone, veremos um painel de simulação ao lado direito do ambiente do simulador, em que temos a lista de eventos, o controle de execução da simulação e o filtro de eventos que serão visualizados, conforme a Figura 5. Figura 5 – Painel de simulação Fonte: Rohling, 2021. 6 Por padrão, todos os protocolos podem ser visualizados, mas isso gera uma grande quantidade de informações, dificultando uma análise mais efetiva do tráfego capturado. Assim, uma primeira ação será a aplicação do filtro, selecionando-se apenas os protocolos que efetivamente queremos analisar. 1.3 Aplicando os filtros Considerando-se nossa topologia anterior, vamos utilizar como exemplo a análise dos pacotes e o encaminhamento do tráfego gerado pelo teste de ping entre o PC alocado na rede LAN e o servidor WWW alocado na rede WAN. Nesse caso, como o comando de ping se baseia no protocolo ICMP, devemos alterar o filtro para visualizar os pacotes apenas para esse protocolo. Para isso, devemos clicar sobre o ícone “Show all/none”, que removerá todos os protocolos listados para rastrear os pacotes. Após clicar no ícone, verificando-se que todos os protocolos foram removidos da lista, devemos então clicar sobre o ícone “Edit filters”, que abrirá a lista de protocolos que podem ser selecionados para rastreamento e análise. Nesse exemplo, vamos selecionar o protocolo ICMP do protocolo IPv4, conforme a Figura 6. Figura 6 – Seleção do ICMP Fonte: Rohling, 2021. 7 Além da seleção do protocolo, podemos acrescentar uma regra de filtragem do tráfego a ser capturado, criando uma lista de controle de acesso – a ACL –, clicando no ícone “Edit ACL filters”. Essa possiblidade de filtragem do tráfego, numa ferramenta de captura e análise do tráfego de uma rede, é essencial para um processo mais eficiente, pois temos muitos serviços e protocolos de rede executados simultaneamente, o que gera uma quantidade de tráfego muito grande e dificulta a localização dos pacotes de interesse para a análise desejada. TEMA 2 – ANÁLISE DE TRÁFEGO NO PACKET TRACER Configurada a topologia da rede a simular, a próxima etapa é a mudança para o modo de simulação e a aplicação dos filtros, limitando a captura dos pacotes realmente necessários para avaliar o processo desejado. No exemplo anterior, definimos como protocolo de teste o ICMP, para verificar o caminho percorrido pelas mensagens por meio da rede, e para capturar e analisar os pacotes. Portanto, as próximas etapas serão a execução do protocolo (com a captura dos pacotes) e a análise dos pacotes capturados, visualizando e avaliando o conteúdo deles. Para isso, devemos comparar o conteúdo dos pacotes capturados em relação ao conteúdo esperado para as diversas camadas de protocolos envolvidos na comunicação. 2.1 Capturando pacotes Para capturar pacotes, é necessário fazer o teste de conectividade, executando o comando de ping no PC. Para isso, devemos clicar no PC e selecionar a aba “Desktop”, em que temos a simulação dos aplicativos executáveis no host, selecionando-se o “Command prompt”, que abrirá a tela de comandos.Ao digitarmos o comando “ping 10.10.10.100” – que é o endereço do servidor WWW –, veremos a montagem de um primeiro pacote ICMP, indicado no painel de simulação, conforme a Figura 7. 8 Figura 7 – Montagem do pacote ICMP Fonte: Rohling, 2021. Porém, o comando não será efetivamente executado enquanto não se iniciar a simulação, feita ao clicarmos sobre o ícone de “Play”, localizado na área do painel de simulação identificada como “Play controls”, em que, além do botão de executar a simulação, temos os botões de avanço e retrocesso, utilizados para navegar nos pacotes capturados após o término da simulação. Assim, após clicarmos no botão da simulação, veremos a simulação gráfica do envio do pacote do PC ao switch, que o encaminha para o roteador, é enviado ao switch da WAN e, finalmente, ao servidor WWW. Também veremos o envio do pacote de resposta do servidor ao PC, seguindo o caminho inverso. Como o comando de ping consiste em três mensagens de echo request enviadas à medida que as respostas de echo reply são recebidas, quatro pacotes do PC serão enviados ao servidor WWW, e quatro pacotes de resposta serão enviados do servidor WWW ao PC. Ao terminar a simulação dessa comunicação via protocolo ICMP, teremos todos os pacotes, enviados entre cada um dos dispositivos da rede, listados no painel de simulação e identificados como do tipo ICMP, na sessão “Event list”. Na tela de simulação do “Command prompt” do PC, veremos as quatro respostas do servidor WWW da mesma forma como seriam vistas num computador real após a execução de um comando de ping. 9 2.2 Analisando os pacotes Para visualizar o conteúdo dos pacotes, basta clicar no ícone do pacote desejado, conforme listados na aba “Event list”. Inicialmente, vamos analisar o pacote da mensagem ICMP, gerado pelo comando de ping gerado pelo PC, que é o primeiro pacote da lista. Ao clicarmos nesse pacote, veremos as informações dos protocolos, das diversas camadas, conforme a Figura 8. Figura 8 – O pacote ICMP inicial Fonte: Rohling, 2021. Podemos verificar a informação básica em relação ao protocolo de camada 3 (o endereçamento de origem do pacote), que corresponde ao endereço do PC (192.168.10.10), e o endereço de destino, que é o endereço do servidor WWW (10.10.10.100), especificado no comando de ping. 10 Ao selecionarmos a aba identificada como “Outbound PDU details”, poderemos visualizar a estrutura e o conteúdo dos cabeçalhos dos protocolos envolvidos na comunicação, conforme a Figura 9. Figura 9 – Informação dos protocolos IP e ICMP Fonte: Rohling, 2021. Vemos aqui os detalhes do protocolo IP, incluindo os endereços já mostrados na aba anterior, mas agora incluindo os demais campos, como a versão, que é o IPv4, e o campo de tempo de vida do pacote, que é o TTL, nesse caso igual a 128. No cabeçalho do protocolo ICMP, vemos o identificador do tipo da mensagem, que contém o valor 0×08, que corresponde à mensagem de echo, como define a RFC 792, do IETF, que descreve o protocolo ICMP. Conforme o 11 padrão do protocolo ICMP, na resposta enviada pelo destinatário da mensagem de echo, devemos ter o valor 0×00 para o campo “Type”. TEMA 3 – WIRESHARK Para capturar no ambiente real de modo semelhante ao que fizemos com o Packet Tracer, precisamos utilizar uma ferramenta que capture pacotes e permita analisar seu conteúdo com a instalação de um software no PC real. Uma das ferramentas mais empregadas nas redes para esse processo é o Wireshark, cujo logotipo é bastante conhecido por profissionais de rede. Figura 10 – Logotipo do Wireshark Fonte: About…, 2014. Trata-se de uma ferramenta gratuita, com versões para plataformas Windows, de 32 e 64 bits, Unix e Linux, e também para o sistema macOS. É um analisador de pacotes de rede que apresenta os dados capturados com o máximo possível de detalhes, permitindo avaliar o desempenho da rede com uma análise detalhada do tráfego. No início, as ferramentas de análise de rede eram muito caras e normalmente proprietárias, porém, com o Wireshark, tivemos uma grande mudança nesse cenário por ser gratuito, tornando-se uma ferramenta de código aberto e um dos melhores analisadores de pacotes disponíveis atualmente. Por ser um software de código aberto, ele é distribuído sob o licenciamento general public license (GPL), podendo ser utilizado gratuitamente em qualquer computador, sem precisar de chaves de licença ou custos de licenciamento. Além disso, como o código-fonte está livremente disponível, é possível adicionar novos protocolos ao Wireshark, seja por plugins ou aqueles incluídos no próprio código-fonte. Temos diversos cenários para aplicar o Wireshark: 12 • Resolver problemas de rede; • Identificar problemas de segurança; • Avaliar a qualidade dos aplicativos de rede; • Depurar implementações de protocolo; • Estudar protocolos utilizados na rede. O Wireshark pode capturar o tráfego de diversos tipos de interface física de rede, como as interfaces ethernet, a wireless lan, bluetooth, USB e outras. Os tipos de mídia específicos suportados podem ser limitados por vários fatores, incluindo o hardware e o sistema operacional utilizado. O Wireshark também pode analisar o tráfego capturado por outras ferramentas, como o tcpdump, Snort, Nmap e outros, que geram os arquivos no formato pcap ou pela sua extensão mais atual, o pcapng, além de diversos outros formatos de arquivos de captura. 3.1 Plataforma para o Wireshark Para instalar o Wireshark, a quantidade de recursos necessários depende do ambiente e do tamanho do arquivo de captura analisado. Na sequência veremos alguns requisitos, considerando a geração de arquivos de captura de pequeno a médio porte que não tenham mais do que algumas centenas de MB, dado que arquivos maiores exigem mais memória e espaço em disco. Porém, se capturarmos numa rede com grande taxa de ocupação, poderemos ter também grandes arquivos. Assim, uma captura numa rede de 100 Mbps poderá produzir centenas de megabytes de dados de captura em pouco tempo. Portanto, um computador com um processador rápido e com muita memória e espaço em disco é sempre uma boa opção, pois, se durante a execução do Wireshark o sistema ficar sem memória, ele irá “travar”. Embora o Wireshark use um processo separado para capturar pacotes, eles são analisados num único processo, não se beneficiando de sistemas com múltiplos núcleos, do tipo “multi-core”. O Wireshark pode ser instalado em qualquer versão do Windows dentro de sua vida útil (ou seja, com suporte da Microsoft, incluindo o Windows 10, 8.1, Server 2019, Server 2016, Server 2012 R2 e Server 2012). Para executar o Wireshark, é necessário instalar o Universal C Runtime, incluído no Windows 10 13 e no Windows Server 2019, o que é feito automaticamente nas versões anteriores se o Microsoft Windows Update estiver ativado. Também pode ser executado em qualquer processador AMD64/×86-64 ou ×86 mais moderno, de 64 bits, necessitando de 500 MB de RAM disponível. Porém, para arquivos de captura maiores, será necessário um espaço maior de memória RAM. Devemos ter um espaço em disco disponível de 500 MB, pois os arquivos de captura exigem espaço adicional em disco para seu armazenamento. Para visualizar as telas do programa, é recomendado um vídeo com resolução de 1280×1024 ou superior, sendo também interessante utilizar vários monitores para analisar o tráfego. Para capturar o tráfego, deve-se utilizar uma placa de rede suportada pelo Wireshark. Para as redes ethernet, qualquer interface suportada pelo Windows serve e, para resolver problemas na captura, podemos consultar as páginas de wiki do Wireshark. Nas redes wireless, no padrão 802.11, para a captura, é necessário utilizar equipamentos especiais. Para as versões anteriores do Windows, não teremos o suporteaos novos recursos incluídos nas versões mais atuais do Wireshark. A seguir, a evolução das versões do Wireshark: • O Wireshark 3.2 foi a última versão a suportar oficialmente o Windows 7 e o Windows Server 2008 R2; • O Wireshark 2.2 foi a última versão a suportar o Windows Vista e o Windows Server 2008 sans R2; • O Wireshark 1.12 foi a última versão a suportar o Windows Server 2003; • O Wireshark 1.10 foi a última versão a suportar o Windows XP. Podemos obter a última versão do Wireshark na sua página1, que deverá indicar automaticamente o download apropriado para a plataforma utilizada e direcioná-lo ao repositório mais próximo (os instaladores oficiais para Windows e macOS são assinados pela Wireshark Foundation). Uma nova versão do Wireshark é disponibilizada a cada seis semanas. Cada versão inclui uma lista de assinaturas, que são os hashes de arquivo, enviados para a lista de discussão de novas versões e colocados num arquivo chamado SIGNATURES-x.y.z.txt2. Dessa forma, é possível que você também 1 Disponível em: <https://www.wireshark.org/download.html>. Acesso em: 12 jul. 2021. 2 Disponível em: <https://www.wireshark.org/download/src/all-versions/>. Acesso em: 12 jul. 2021. 14 verifique a versão baixada para Windows macOS, utilizando esses recursos de validação de assinatura de código. O Wireshark foi inicialmente desenvolvido por Gerald Combs, mas o desenvolvimento contínuo e a manutenção do aplicativo são feitos por profissionais que corrigem as falhas e desenvolvem novas funcionalidades, contando também com um grande número de desenvolvedores que contribuíram com os módulos de análise e depuração de protocolos para o Wireshark. A lista de colaboradores que contribuíram com o código pode ser encontrada na página dos autores no site. 3.2 Instalação do Wireshark Conforme vimos, podemos obter as versões e os códigos no site da Wireshark, selecionando o endereço e o arquivo binário ou o pacote com a versão desejada. Porém, para construir o Wireshark com base no código-fonte, é necessário também baixar outras dependências. Os nomes dos instaladores para a plataforma Windows contêm a identificação da plataforma e sua versão. Por exemplo, o Wireshark-win64- 3.5.0.exe instala o Wireshark 3.5.0 para o Windows de 64 bits. Além disso, o instalador inclui também o “npcap”, ferramenta necessária para capturar pacotes. Assim, a forma mais prática e fácil de instalar o Wireshark é baixar e executar o arquivo baixado. Podemos também instalar os vários componentes opcionais e selecionar a localização do pacote instalado, mas as configurações- padrão são as mais recomendadas para a maioria dos usuários. Além do Wireshark, temos também o TShark, um analisador de protocolo de rede utilizado pela linha de comando. Assim, os profissionais de rede mais habituados podem usar ferramentas em linha de comando, sendo uma excelente opção. Também temos os componentes adicionais disponíveis para instalação, identificados como plugins & extensions, que incluem recursos extras para analisar protocolos do Wireshark e do TShark: Dissector Plugins; Tree Statistics Plugins; Meta Analysis and Tracing Engine (Mate) e as MIBs para o SNMP. Temos algumas ferramentas adicionais que operam em linha de comando e nos auxiliam no trabalho com os arquivos capturados: 15 • Editcap: lê o arquivo de captura e grava alguns (ou todos os) pacotes em outro arquivo de captura; • Text2Pcap: lê um arquivo no padrão ASCII, hexadecimal, e grava os dados num arquivo de captura do tipo pcap; • Reordercap: reordena o arquivo de captura em função da data/hora (campo timestamp); • Mergecap: combina múltiplos arquivos de captura salvos num único arquivo de saída; • Capinfos: fornece informações no arquivo de captura; • Rawshark: filtra os pacotes. Também pode ser feita a instalação local do “User’s guide”, pois os botões de ajuda, na maioria dos diálogos, exigem conexão com a internet para mostrar as páginas de ajuda se esse guia não estiver instalado localmente. 3.3 Instalação nas plataformas Unix/Linux Para construir o Wireshark numa plataforma Unix ou Linux, é necessário ambiente adequado de construção, incluindo um compilador e muitas bibliotecas de suporte. Para identificar esses recursos, podemos consultar o guia do desenvolvedor3. A primeira etapa é descompactar o arquivo do tipo tar. Isso pode ser feito com o GNU tar pelo seguinte comando: tar xJf wireshark-2.9.0.tar.xz Porém, em outros casos, podem ser necessários os seguintes comandos: xz -d wireshark-2.9.0.tar.xz tar xf wireshark-2.9.0.tar A segunda etapa é criar um diretório para montar o Wireshark e entrar nele com os comandos: mkdir build cd build 3 Disponível em: <https://www.wireshark.org/docs/wsdg_html_chunked/>. Acesso em: 12 jul. 2021. 16 A terceira etapa é configurar a fonte para construir o Wireshark de acordo com a versão correta do Unix utilizada usando o comando: cmake ../wireshark-2.9.0 Se ocorrer alguma falha nessa etapa, devemos verificar os logs gerados para corrigir os problemas, executando novamente o comando “cmake”. Para resolver problemas, podemos consultar a página de ajuda e tutorial de instalação no site do Wireshark. A próxima etapa é construir os recursos com o comando: make Construído o Wireshark, podemos executar o aplicativo com o comando: run/wireshark Para instalar o destino final, devemos executar o comando: make install Instalado o Wireshark, podemos executá-lo pelo comando: wireshark TEMA 4 – CAPTURA E ANÁLISE Após a instalação do Wireshark e das ferramentas complementares, veremos a abertura do painel inicial, conforme a Figura 11. Figura 11 – Tela inicial do Wireshark Fonte: Rohling, 2021. 17 Caso tenha sido lançada alguma versão posterior à instalada, será mostrada uma mensagem de atualização, que será feita com a remoção da versão instalada e com a instalação completa da nova versão, incluindo os complementos. Na parte inferior da tela inicial, temos as diversas interfaces do computador reconhecidas pelo Wireshark, para então escolher quais delas serão monitoradas. Na Figura 12, identificamos a possibilidade de capturar o tráfego das interfaces bluetooth, WiFi, ethernet e USB. Figura 12 – Opções de interface para captura Fonte: Rohling, 2021. Para iniciar a captura, basta clicar na interface desejada com o botão direito do mouse, sendo mostrada a mensagem para iniciar a captura, descrita como “Start capture”, conforme a Figura 13. Figura 13 – Selecionando a interface para captura Fonte: Rohling, 2021. 18 4.1 Resultado da captura Ao clicarmos na opção de início de captura, uma nova tela será aberta e mostrará os pacotes capturados e as informações de protocolo, conforme a Figura 14. Figura 14 – Tela de exibição da captura Fonte: Rohling, 2021. Na parte superior da tela – em que temos os pacotes capturados –, observamos a divisão da tela em sete colunas. Na primeira coluna temos o número do pacote, que nesse caso marca o início de uma nova captura, com o valor 1. Se deixarmos o processo ser executado continuamente, podemos esgotar os recursos do computador. No exemplo mostrado, paramos a captura logo em seguida, o que é feito ao clicar no ícone “Stop”, representado por um quadrado vermelho na barra superior da tela. Ao pararmos a captura de tela, tivemos um total de 370 pacotes, o que pode ser verificado se rolarmos a tela que contém a lista de pacotes, conforme a Figura 15. 19 Figura 15 – Final da lista de pacotes capturados Fonte: Rohling, 2021. Na segunda coluna, temos a informação sobre o tempo em que o pacote foi capturado. No exemplo, o tempo é igual a zero para o primeiro pacote capturado (Figura 14) e igual a 17,389926 para o último pacote, que é o de número 370 (Figura 15). Ou seja, fizemosa captura por pouco mais de 17 segundos. As duas colunas seguintes contêm os endereços de origem, identificados na coluna “Source”, e o endereço de destino, identificado como “Destination”, dos pacotes capturados. Assim, no exemplo da Figura 15, verificamos que o pacote número 370 tem como origem o endereço 192.168.25.7 e como destino o endereço 192.168.25.255 (endereço de broadcast da rede). Na quinta coluna temos a informação sobre o protocolo (que no exemplo é o UDP) e, em seguida, o comprimento do pacote (que no exemplo do pacote 370 é de 62 bytes). A última coluna mostra algumas informações básicas sobre o pacote, porém as informações detalhadas de cada pacote capturado são mostradas nas telas posicionadas abaixo da lista de pacotes, conforme veremos. A captura poderá ser salva num arquivo para posterior análise, clicando- se no botão de salvar, na barra superior, conforme a Figura 16. Figura 16 – Salvando os pacotes capturados Fonte: Rohling, 2021. 20 4.2 Analisando os pacotes Na tela posicionada abaixo da lista de pacotes capturados, podemos visualizar os detalhes dos protocolos das diversas camadas, conforme a Figura 17. Figura 17 – Protocolos de pacotes capturados Fonte: Rohling, 2021. Podemos identificar no exemplo os dados das diversas camadas. Assim, na camada física, o pacote capturado continha um total de 496 bits, equivalentes a 62 bytes. Na camada 2 temos a identificação do protocolo ethernet, na versão II, que identifica os endereços MAC contidos no cabeçalho do quadro, identificando inclusive o fabricante da interface de rede – no caso, a Digibras. Verificamos também que o quadro foi enviado em broadcast para o endereço MAC (que é o ff:ff:ff:ff:ff:ff). Já na camada 3 temos as informações sobre o protocolo IP, que nesse caso utiliza a versão 4 – ou seja, é um pacote IPv4. Também podemos identificar os endereços de origem, o do computador (192.168.25.7), o de destino e o endereço de broadcast da rede: (192.168.25.255). O pacote capturado utiliza o protocolo de camada 4 (a camada de transporte), o protocolo UDP, usando a porta 2008 como porta de origem e destino. A última linha identifica apenas que temos um conteúdo de dados com um tamanho de 20 bytes, porém sem informações adicionais sobre o conteúdo. Em geral, para uma análise mais detalhada do tráfego, além das informações capturadas e depuradas pelo Wireshark, uma análise e uma pesquisa adicional ainda são necessárias. Assim, no exemplo, como a porta utilizada no pacote capturado pertence ao intervalo de portas registradas (compreendendo o intervalo de 1024 até 49151), é necessária uma pesquisa para identificar qual serviço de rede utiliza essa porta de conexão. 21 Feita a pesquisa, podemos identificar que as aplicações que utilizam essa porta são o serviço de configuração para o Teamspark 3 e do Nmap, porém com protocolo TCP, e o serviço identificado como terminaldb do Nmap utiliza a porta 2008 com o protocolo UDP. Portanto, a aplicação que enviou o pacote foi o Nmap, um dos componentes do próprio Wireshark. Para verificar o conteúdo dos dados do pacote (que corresponde à informação enviada pela aplicação), basta selecionar a linha identificada como “Data”, obtendo a informação mostrada na Figura 18. Figura 18 – Verificando os dados do pacote capturado Fonte: Rohling, 2021. Para verificar os detalhes do conteúdo de dados do pacote, podemos analisar as informações contidas na terceira tela, que, além dos códigos em hexadecimal, exibe também os dados do pacote no padrão ASCII, permitindo interpretar mais adequadamente o conteúdo do pacote. Assim, no exemplo, podemos verificar que o conteúdo da mensagem do pacote UDP contém o nome do host que envia a mensagem – que, no caso, é o host identificado como DESKTOP-SMH02MA. TEMA 5 – MENUS E OPÇÕES DO WIRESHARK Na parte superior da tela principal do Wireshark, temos o menu principal, conforme a Figura 19. 22 Figura 19 – Menu principal Fonte: Rohling, 2021. Temos as seguintes opções: • File: abre e mescla, salva, imprime ou exporta arquivos de captura no todo ou em parte; também é por onde saímos do Wireshark; • Edit: encontra um pacote, uma referência de tempo ou marca um ou mais pacotes, manuseia os perfis de configuração e define preferências; • View: controla a exibição dos dados capturados, incluindo a coloração dos pacotes, o zoom da fonte, mostrando um pacote numa janela separada, expandindo e colapsando árvores com os detalhes dos pacotes; • Go: vai diretamente a um pacote específico; • Capture: permite iniciar e parar o processo de captura, permitindo também a edição de filtros de captura; • Analyze: manipula os filtros de exibição, ativação ou desativação da análise dos protocolos, configurando decodificadores especificados pelo usuário e seguindo determinado fluxo TCP; • Statistics: exibe várias janelas estatísticas, incluindo um resumo dos pacotes capturados, estatísticas de hierarquia de protocolo e muitas outras opções; • Telephony: exibe várias janelas estatísticas relacionadas à telefonia, incluindo uma análise de mídia, diagramas de fluxo, estatísticas de hierarquia de protocolo de exibição e muitas outras; • Wireless: exibe as estatísticas sobre as redes sem fio do tipo bluetooth e padrão IEEE 802.11; • Tools: contém várias ferramentas disponíveis no Wireshark, como as regras de filtragem de firewall – as “ACL rules”; • Help: auxilia o usuário a acessar alguma ajuda básica, as páginas dos manuais das várias ferramentas de linha de comando, bem como o acesso online a algumas das páginas da web, além do acesso à caixa de diálogo de ajuda habitual. 23 5.1 Menu de arquivos O primeiro menu da barra superior contém as opções para manusear arquivos. Conforme a Figura 20, temos diversas opões, que veremos em detalhes a seguir. Figura 20 – Menu de arquivos: File Fonte: Rohling, 2021. Para analisar um arquivo de captura salvo anteriormente, temos a opção de abertura de arquivo, clicando na opção “Open”. Na opção “Open recent”, visualizamos os arquivos utilizados recentemente, agilizando a busca. Com a opção “Merge…” é possível inserir um arquivo salvo no arquivo aberto. Assim, para determinada captura, poderíamos gravar diversos arquivos, filtrados, por exemplo, por protocolo. Posteriormente, para a análise, poderíamos misturar diversos arquivos com a opção “Merge”. Para misturar pacotes, temos três opções: 1. Adição dos pacotes do arquivo aberto antes dos pacotes já carregados; 2. Adição dos pacotes após os pacotes carregados; 3. Mistura dos pacotes em ordem cronológica. 24 As três opções podem ser vistas na Figura 21: Figura 21 – Opções de mistura: Merge Fonte: Rohling, 2021. Temos diversas opções para salvar os pacotes capturados, listadas como “Export” no menu da Figura 20. Assim, podemos salvar os pacotes desejados, selecionando-se aqueles com a opção “Export specified packets”. Outra opção é salvar a lista de pacotes, seus detalhes e conteúdo no formato desejado com a opção “Export packet dissections”. Podemos gerar um arquivo no formato de texto aberto, matriz binária compatível com o C, PSML, PDML, CSV e JSON. 5.2 Menu de edição No segundo menu da barra superior, temos as opções para editar o arquivo de captura, buscando, selecionando e marcando os pacotes na lista de captura em uso (Figura 22). 25 Figura 22 – Opções de mistura: Merge Fonte: Rohling, 2021. 5.3 Menu de captura Outro menu essencial para a captura é o “Capture”, com o qual criamos regras de captura na opção “Options” e visualizamos os filtros aplicados na opção “Capture filters…”, conforme a Figura 23. 26 Figura 23 – Menu de captura: Capture Fonte: Rohling, 2021. Ao selecionarmos “Capture filters…”, visualizamos as regras de filtragem já criadas por padrão,mas também podemos criar novas regras clicando no botão com o sinal “+”, conforme a Figura 24. Figura 24 – Filtros de captura Fonte: Rohling, 2021. Com base nos exemplos, podemos elaborar novos filtros de acordo com os critérios desejados. Por exemplo: para capturar apenas o tráfego gerado e destinado a determinado host, podemos utilizar como filtro o endereço IP desse 27 host com a expressão “host <ip>”, e o endereço IP do host deverá ser inserido no lugar do parâmetro <ip> indicado na sintaxe. Para capturar um tráfego que não corresponda a determinado critério, o parâmetro na expressão do filtro é o “not”. Assim, a expressão “not UDP”, por exemplo, captura o tráfego que pertence a todos os demais protocolos que não sejam o UDP. Como o volume de tráfego numa rede pode gerar uma grande quantidade de informações que pode esgotar o equipamento de captura, os filtros são fundamentais para evitar falhas no processo. FINALIZANDO A análise de desempenho da rede demanda diversas ferramentas, que devem se adequar a cada etapa do processo. Na etapa de projeto, podemos implementar a topologia da rede num simulador, como o Packet Tracer, e utilizar o modo de simulação, conforme vimos nesta aula. Ao executarmos o projeto no modo de simulação, visualizamos os pacotes trafegados na rede para avaliar, por exemplo, o desempenho dos processos de rede, como o roteamento e o ICMP, validando o resultado esperado do projeto. Nesse modo do Packet Tracer será necessário – assim como nas ferramentas de captura e monitoração da rede nas redes reais – aplicar corretamente os filtros de protocolo, caso contrário teremos um grande volume de informação gerada pela simulação e pelo registro dos pacotes, o que deixaria a análise inviável por causa do grande volume de informação. Além disso, essa grande quantidade de informação, com base na captura de todos os protocolos em execução, pode esgotar os recursos computacionais do nosso computador alocados pelo sistema operacional para executar o Packet Tracer, o que será indicado pela própria aplicação. Para capturar e analisar o tráfego nas redes reais, temos o Wireshark, uma das ferramentas mais utilizadas no ramo. Essa aplicação permite um processo semelhante ao que realizamos no ambiente de simulação, mas agora no ambiente real da rede, e não mais no virtual. Porém, no caso do simulador Packet Tracer, temos a captura de todo o tráfego na rede (ou seja, entre todos os nós da rede); na rede real, o computador em que usamos o Wireshark captura apenas o tráfego encaminhado exclusivamente para sua placa de rede, e não toda a rede. 28 Portanto, para utilizar o Wireshark numa rede e analisar o tráfego, é necessário configurar os switches para encaminhar uma cópia do tráfego à interface que conecta esse computador; assim poderemos capturar e analisar o tráfego da rede. Futuramente vamos estudar a configuração dos switches da rede e a análise do desempenho da rede com base nos arquivos de captura gerados, auxiliados pelo Wireshark para filtrar e analisar protocolos. 29 REFERÊNCIAS ABOUT Wireshark. Wireshark, [S.l.], 2014. Disponível em: <https://www.wireshark.org/>. Acesso em: 12 jul. 2021. DOWNLOAD Wireshark. Wireshark, 2014. Disponível em: <https://www.wireshark.org/download.html>. Acesso em: 12 jul. 2021. TANENBAUM, A. S. Redes de computadores: fundamentos e protocolos. 2. ed. São Paulo: Pearson Education do Brasil, 2011. WIRESHARK developer’s guide. Wireshark, [S.l.], 2008. Disponível em: <https://www.wireshark.org/docs/wsdg_html_chunked/>. Acesso em: 12 jul. 2021.