MC822 -- Teleprocessamento e Redes -- Primeiro semestre -- 2009

Professor Nelson Fonseca

Laboratório I: ferramentas

Objetivo: familiarizar-se com ferramentas que fornecem informações e estatísticas a respeito da rede em um sistema Unix-like.

Obs.1: como a maioria dos programas, as ferramentas possuem páginas de manual que podem ser acessadas através do comando man nome_da_ferramenta.

Obs.2: em todos os exercícios em que deve ser realizado acesso a algum servidor web, deve-se limpar o cache do navegador antes do acesso para garantir que o conteúdo da página será transferido via rede.

Obs.3: para facilitar a execução de todos os programas, a variável de ambiente PATH deve conter os seguintes diretórios: /bin:/usr/bin:/sbin:/usr/sbin . Para modificar o PATH, execute no terminal: export PATH=$PATH:/bin:/usr/bin:/sbin:/usr/sbin

Exercícios:

ping: informa se um host na internet está alcançável ou não. Também fornece informações a respeito do tempo de ida e volta de um pacote (round-trip-time - RTT). Ele envia e recebe pacotes com mensagens do protocolo da camada de rede ICMP.

1-) Através da execução do comando ping -c 10 seguido dos parâmetros adequados, responda às seguintes questões:

[0,8] 1.1-) Qual a função do parâmetro -c? Quais foram os tempos de ida e volta mínimo, médio e máximo obtidos da sua máquina para o site do google no Brasil (www.google.com.br)?
[0,8] 1.2-) Quais foram os tempos de ida e volta mínimo, médio e máximo obtidos da sua máquina para o site do IC (www.ic.unicamp.br)? Os tempos foram menores ou maiores do que os obtidos na questão anterior? Explique o motivo da diferença.
[0,8] 1.3-) O host www.lrc.ic.unicamp.br é alcançável pelo ping? Verifique se é possível acessar o site contido neste host através do navegador (http://www.lrc.ic.unicamp.br). A partir do observado você considera que o ping, isoladamente, pode ser considerado como uma ferramenta para verificar a disponibilidade de um host na internet?

ifconfig: fornece e configura dados a cerca da configuração de rede do computador.
route: fornece e configura dados a cerca da configuração do roteamento no computador.

[0,8] 1-) Através da execução do comando ifconfig, responda às seguintes questões: quais os endereços IP da sua estação de trabalho? Quais interfaces de rede a sua estação possui? Quantos bytes foram enviados e quantos bytes foram recebidos por cada interface?

[0,8] 2-) Execute o comando route. Quantas rotas estão definidas na estação? Qual é a interface de rede padrão para a qual os pacotes seguem?

nslookup: fornece informações a respeito da resolução de nomes na internet. Ele envia e recebe pacotes com mensagens do protocolo da camada de aplicação DNS.

5-) Através da execução do comando nslookup seguido dos parâmetros adequados, responda às seguintes questões:

[0,8] 5.1-) Quais os endereços IP do site do google no Brasil? Qual a finalidade de haver mais de um endereço?
[0,8] 5.2-) Qual o nome relacionado com o endereço IP 127.0.0.1? O que há de especial neste endereço?

traceroute: fornece informações a respeito da rota entre dois hosts na internet. Ele interpreta pacotes com mensagens do protocolo da camada de rede ICMP.

6-) Através da execução do comando traceroute seguido dos parâmetros adequados, responda às seguintes questões:

[0,8] 6.1-) Quantos roteadores estão entre a sua estação e o host www.geant.net? Pelos nomes dos roteadores, quantos deles estão localizados no Brasil?
[0,8] 6.2-) Quantos roteadores estão entre a sua estação e o host home.pl? A rota contrária é feita pelos mesmos roteadores? (Utilize a página http://home.pl/test para responder a esta questão. Mais informações sobre essa página podem ser encontradas em http://www.traceroute.org/).
[0,8] 6.3-) Observando os valores de RTT na saída do comando da questão 6.1, os pacotes alcançam enlaces transatlânticos a partir de que hop? O que fez você chegar a essa conclusão?

wireshark: sniffer e analisador de pacotes com interface gráfica.

7-) Conecte, via ssh -X, na máquina proto.lab.ic.unicamp.br. Utilize o seu RA como usuário e seu primeiro nome, sem acentos, como senha. Todos os exercícios envolvendo o wireshark deverão ser realizados via ssh nesta máquina. Execute o wireshark através do comando sudo /usr/sbin/wireshark e siga os passos a seguir para tomar familiaridade com o programa:

- Na interface gráfica exibida, e semelhante àquela na Figura 1, configure as opções para capturar os pacotes clicando no menu 'Capture' e depois em 'Options'.

Wireshark -- Principal
Figura 1

- Na janela de opções (semelhante àquela da Figura 2), no campo 'interface', selecione a interface eth0. Uma vez selecionada a interface, escreva no campo destinado ao filtro de captura a string not (src host 143.106.73.136 and tcp src port 22) and not (dst host 143.106.73.136 and tcp dst port 22). Essa string tem o objetivo de facilitar a visualização dos protocolos a serem estudados através da exclusão dos pacotes SSH das capturas. Salve essa string pois ela deverá ser usada em todos os exercícios com o wireshark. Clique no botão 'Start' para que a captura de pacotes inicie.

Certifique-se de que as caixas das opções ``Update list of packets in real time'' e ``Hide capture info dialog'' estejam desmarcadas.

Wireshark -- Opções
Figura 2

- Durante a captura de pacotes, uma janela como a da Figura 3 é exibida. Execute firefox --no-remote & em proto.lab.ic.unicamp.br (o navegador tem que ser aberto na máquina proto! Não na estação que você está usando) e acesse o site do IC. Após o site estar completamente carregado, interrompa a captura de pacotes clicando no botão 'Stop' na janela do wireshark.

Wireshark -- Capturando
Figura 3

- Uma vez interrompida a captura de pacotes, a janela do wireshark será exibida com dados em vários campos. A Figura 4 identifica cada campo da janela.

Wireshark -- Descrição
Figura 4

Na lista de pacotes capturados tem-se, para cada pacote, um identificador (No.) o instante de tempo em que o mesmo foi capturado (Time) , o endereço IP fonte (Source), o endereço IP destino (Destination) e informações específicas do protocolo da camada de mais alto nível presente (Protocol e Info).

Nos detalhes do cabeçalho do pacote têm-se informações sobre protocolos das camadas de enlace, de rede, de transporte e de aplicação.

Uma vez tendo capturado os pacotes no wireshark, responda às seguintes questões:

Obs.: o trace dos pacotes capturados deve ser mantido em um diretório dentro do /tmp da máquina proto. Crie um diretório no /tmp e salve seus traces neste diretório para evitar sobrescrever arquivos dos demais usuários. A localização do trace deve ser informada no relatório. Todas as questões dos próximos laboratórios que tiverem um "*" precisam ter o trace mantido na máquina proto. Os traces são salvos pelo menu "File" na opção "Save". Respostas às questões com "*" que não tiverem a localização do trace no relatório receberão zero.

[1,2] * 7.1-) No filtro de visualização, escreva a seguinte expressão:

   ip.addr == www.ic.unicamp.br
   
e clique no botão 'Apply'.

Somente os pacotes enviados para, ou recebidos de, www.ic.unicamp.br serão exibidos. Quanto tempo foi gasto desde o pedido de conexão ao site do IC até o instante em que o último pacote foi recebido?
[0,8] 7.2-) Qual a versão do Zope instalado no servidor do IC? (Esta informação está presente no conteúdo da camada de aplicação dos primeiros pacotes HTTP recebidos do servidor do IC).