Você está na página 1de 8

Laboratório Wireshark:

TCP v8.1
Material complementar do livro Computer
Networking: A Top-Down Approach, 8th ed., J.F.
Kurose and K.W. Ross
“Diga-me e eu esqueço. Mostre-me e eu me lembro. Envolva-
me e eu entendo.” Provérbio chinês

© 2005-2021, J.F Kurose and K.W. Ross, All Rights Reserved

Conforme descrito na Seção 2.4 do texto1, o Domain Name System (DNS) traduz nomes
de host em endereços IP, cumprindo um papel crítico na infraestrutura da Internet. Neste
laboratório, veremos mais de perto o lado do cliente do DNS. Lembre-se de que a função
do cliente no DNS é relativamente simples – um cliente envia uma consulta ao seu
servidor DNS local e recebe uma resposta de volta. Conforme mostrado nas Figuras 2.19
e 2.20 no livro-texto, muita coisa pode acontecer “nos bastidores”, invisível para um
cliente DNS, pois os servidores DNS hierárquicos se comunicam entre si para resolver
recursiva ou iterativamente a consulta DNS do cliente. Do ponto de vista do cliente DNS,
no entanto, o protocolo é bastante simples – uma consulta é formulada ao servidor DNS
local e uma resposta é recebida desse servidor.

Antes de começar este laboratório, você provavelmente desejará revisar o DNS lendo a
Seção 2.4 do texto. Em particular, você pode querer revisar o material sobre servidores
DNS locais, cache DNS, registros e mensagens DNS e o campo TYPE no registro
DNS.

1. nslookup

Vamos começar nossa investigação do DNS examinando o comando nslookup, que


invocará os serviços DNS subjacentes para implementar sua funcionalidade. O comando
nslookup está disponível na maioria dos sistemas operacionais Microsoft, Apple IOS e
Linux. Para executar o nslookup, basta digitar o comando nslookup na linha de comando
em uma janela do DOS, janela de terminal do Mac IOS ou shell do Linux.

Em sua operação mais básica, o nslookup permite que o host que executa o nslookup
consulte qualquer servidor DNS especificado em busca de um registro DNS. O servidor
1
References to figures and sections are for the 8th edition of our text, Computer Networks, A Top-down
Approach, 8h ed., J.F. Kurose and K.W. Ross, Addison-Wesley/Pearson, 2020. Our website for this book is
http://gaia.cs.umass.edu/kurose_ross You’ll find lots of interesting open material there.
DNS consultado pode ser um servidor DNS raiz, um servidor DNS de domínio de nível
superior (TLD), um servidor DNS autoritativo ou um servidor DNS intermediário
(consulte o livro para obter as definições desses termos). Por exemplo, nslookup pode ser
usado para recuperar um registro DNS “Type=A” que mapeia um nome de host (por
exemplo, www.nyu.edu) para seu endereço IP. Para realizar esta tarefa, o nslookup envia
uma consulta DNS para o servidor DNS especificado (ou o servidor DNS local padrão
para o host no qual o nslookup é executado, se nenhum servidor DNS específico for
especificado), recebe uma resposta DNS desse servidor DNS e exibe o resultado.

Vamos dar uma olhada no nslookup! Primeiro, executaremos o nslookup na linha de


comando do Linux no host newworld.cs.umass.edu localizado no Departamento de CS do
campus da Universidade de Massachusetts (UMass), onde o servidor de nomes local é
denominado primo.cs.umass.edu (que tem um endereço IP 128.119.240.1). Vamos tentar
o nslookup em sua forma mais simples:

Figura 1: o comando nslookup básico

Neste exemplo, o comando nslookup recebe um argumento, um nome de host


(www.nyu.edu). Em palavras, este comando está dizendo “por favor, envie-me o
endereço IP do host www.nyu.edu”. Conforme mostrado na captura de tela, a resposta
desse comando fornece duas informações: (1) o nome e o endereço IP do servidor DNS
que fornece a resposta – neste caso, o servidor DNS local na UMass; e (2) a própria
resposta, que é o nome canônico do host e o endereço IP de www.nyu.edu. Você deve ter
notado que há dois pares de nome/endereço fornecidos para www.nyu.edu. O primeiro
(216.165.47.12) é um endereço IPv4 na conhecida notação decimal pontilhada; o segundo
(2607:f600:1002:6113::100) é um endereço IPv6 mais longo e de aparência mais
complicada. Aprenderemos sobre IPv4 e IPv6 e seus dois esquemas de endereçamento
diferentes mais adiante no Capítulo 4. Por enquanto, vamos nos concentrar apenas em
nosso mundo IPv4 mais confortável (e comum).2.

Embora a resposta tenha vindo do servidor DNS local (com endereço IP 128.119.240.1)
na UMass, é bem possível que esse servidor DNS local tenha contatado iterativamente
vários outros servidores DNS para obter a resposta, conforme descrito na Seção 2.4 do
livro.

Além de usar nslookup para consultar um registro DNS “Type=A”, também podemos
usar nslookup para nslookup para consultar um registro “TYPE=NS”, que retorna o nome
2
Para Mac OS, se você quiser trabalhar apenas no mundo IPv4: Preferências do sistema -> Rede. Em
seguida, selecione sua interface ativa (por exemplo, Wi-Fi) e Avançado->TCP/IP. Em seguida, selecione o
menu suspenso Configurar IPv6 e defina-o como “Somente link local” ou “Desativado”.
do host (e seu endereço IP) de um servidor DNS autoritativo que sabe como obter os
endereços IP dos hosts no domínio do servidor autoritativo.

Figura 2: usando nslookup para encontrar os servidores de nomes autorizados para o


domínio nyu.edu

No exemplo da Figura 2, invocamos o nslookup com a opção “-type=NS” e o domínio


“nyu.edu”. Isso faz com que o nslookup envie uma consulta para um registro do tipo NS
para o servidor DNS local padrão. Em palavras, a consulta está dizendo: “envie-me os
nomes de host do DNS autoritativo para nyu.edu”. (Quando a opção –type não é usada,
nslookup usa o padrão, que é consultar registros do tipo A.) A resposta, exibida na
captura de tela acima, primeiro indica o servidor DNS que está fornecendo a resposta
(que é o local padrão Servidor UMass DNS com endereço 128.119.240.1) juntamente
com três servidores de nomes DNS da NYU. Cada um desses servidores é de fato um
servidor DNS autorizado para os hosts no campus da NYU. No entanto, nslookup
também indica que a resposta é “não autoritativa”, o que significa que essa resposta veio
do cache de algum servidor, e não de um servidor DNS autoritativo da NYU. Por fim, a
resposta também inclui os endereços IP dos servidores DNS autorizados na NYU.
(Embora a consulta do tipo NS gerada pelo nslookup não tenha solicitado explicitamente
os endereços IP, o servidor DNS local os retornou “de graça” e o nslookup exibe o
resultado.)

nslookup tem várias opções adicionais além de “-type=NS” que você


pode querer explorar. Aqui está um site com capturas de tela de
dez usos populares do nslookup: https://www.cloudns.net/blog/10-
most-used-nslookup-commands/ e aqui estão as “man pages” do
nslookup: https://linux. die.net/man/1/nslookup.

Por fim, às vezes podemos estar interessados em descobrir o nome do host associado a
um determinado endereço IP, ou seja, o inverso da pesquisa mostrada na Figura 1 (onde o
nome do host era conhecido/especificado e o endereço IP do host retornado). O nslookup
também pode ser usado para executar a chamada “pesquisa DNS reversa”. Na Figura 3,
por exemplo, especificamos um endereço IP como argumento nslookup (128.119.245.12
neste exemplo) e nslookup retorna o nome do host com esse endereço (gaia.cs.umass.edu
neste exemplo)
Figura 3: usando nslookup para realizar uma “pesquisa DNS reversa”

Agora que fornecemos uma visão geral do nslookup, é hora de você mesmo testá-lo. Faça
o seguinte (e anote os resultados3). A Figura 4 mostra uma captura de tela da execução do
nslookups nas perguntas 1 e 4, que permitirá que você responda às perguntas abaixo.
1. Execute nslookup para obter o endereço IP do servidor da Web do Instituto
Indiano de Tecnologia em Bombaim, Índia: www.iitb.ac.in. Qual é o endereço IP
de www.iitb.ac.in
2. Qual é o endereço IP do servidor DNS que forneceu a resposta ao seu comando
nslookup na pergunta 1 acima?
3. A resposta ao seu comando nslookup na pergunta 1 acima veio de um servidor
autoritativo ou não autoritativo?
4. Use o comando nslookup para determinar o nome do servidor de nomes
autorizado para o domínio iit.ac.in. Qual é esse nome? (Se houver mais de um
servidor autoritativo, qual é o nome do primeiro servidor autoritativo retornado
pelo nslookup)? Se você tivesse que encontrar o endereço IP desse servidor de
nomes autorizado, como faria isso?

Figura 4: usando nslookup para encontrar o endereço IP de www.iitb.ac.in e os nomes dos


servidores de nomes autorizados para o domínio iitb.ac.in

2. O cache DNS no seu computador

A partir da descrição da resolução de consulta DNS iterativa e recursiva (Figuras 2.19 e


2.20) em nosso livro-texto, você pode pensar que o servidor DNS local deve ser
contatado sempre que um aplicativo precisar traduzir de um nome de host para um
endereço IP. Isso nem sempre é verdade na prática!

3
Consulte o laboratório introdutório do Wireshark para obter uma explicação de como fazer isso) e indique
onde no pacote eles encontraram as informações que respondem a uma pergunta.
A maioria dos hosts (por exemplo, seu computador pessoal) mantém um cache de
registros DNS recuperados recentemente (às vezes chamado de cache resolvedor de
DNS), assim como muitos navegadores da Web mantêm um cache de objetos
recuperados recentemente por HTTP. Quando os serviços DNS precisam ser invocados
por um host, esse host verificará primeiro se o registro DNS necessário reside no cache
DNS desse host; se o registro for encontrado, o host nem se preocupará em contatar o
servidor DNS local e, em vez disso, usará esse registro DNS em cache. Um registro DNS
em um cache do resolvedor eventualmente expirará e será removido do cache do
resolvedor, assim como os registros armazenados em cache em um servidor DNS local
(consulte as Figuras 2.19, 2.20) expirarão.

Você também pode limpar explicitamente os registros em seu cache DNS. Não há mal
nenhum em fazer isso – significa apenas que seu computador precisará invocar o serviço
DNS distribuído na próxima vez que precisar usar o serviço de resolução de nomes DNS,
pois não encontrará registros no cache. Em um computador Mac, você pode inserir o
seguinte comando em uma janela de terminal para limpar o cache do resolvedor de DNS:
sudo killall -HUP mDNSResponder
No computador Windows, você pode inserir o seguinte comando no prompt de comando:
ipconfig /flushdns
e em um computador Linux, digite:
sudo systemd-resolve --flush-caches

3. Rastreando DNS com Wireshark

Agora que estamos familiarizados com o nslookup e limpando o cache do resolvedor de


DNS, estamos prontos para começar a trabalhar seriamente. Vamos primeiro capturar as
mensagens DNS que são geradas pela atividade normal de navegação na Web.

● Limpe o cache DNS em seu host, conforme descrito acima.

● Abra o navegador da Web e limpe o cache do navegador.

● Abra o Wireshark e digite ip.addr == <seu_Endereço_IP> no filtro de exibição,


onde <seu_Endereço_IP> é o endereço IPv4 do seu computador4. Com este filtro,
o Wireshark exibirá apenas os pacotes que se originam ou são destinados ao seu
host.
● Inicie a captura de pacotes no Wireshark.

● Com seu navegador, visite a página da Web: http://gaia.cs.umass.edu/kurose_ross/

● Pare a captura de pacotes.

4
Se não tiver certeza de como encontrar o endereço IP do seu computador, você pode pesquisar na Web
por artigos para o seu sistema operacional. As informações do Windows 10 são aqui; As informações do
Mac estão here; E as informações do Linux estão aqui.
Se você não conseguir executar o Wireshark em uma conexão de rede ao vivo, você pode
baixar um arquivo de rastreamento de pacote que foi capturado seguindo as etapas acima
em um dos computadores do autor5. Responda as seguintes questões.

5. Localize a primeira mensagem de consulta DNS resolvendo o nome


gaia.cs.umass.edu. Qual é o número do pacote6 no rastreamento da mensagem de
consulta DNS? Esta mensagem de consulta é enviada por UDP ou TCP?
6. Agora localize a resposta DNS correspondente à consulta DNS inicial. Qual é o
número do pacote no rastreamento da mensagem de resposta do DNS? Esta
mensagem de resposta é recebida via UDP ou TCP?
7. Qual é a porta de destino para a mensagem de consulta DNS? Qual é a porta de
origem da mensagem de resposta do DNS?
8. Para qual endereço IP a mensagem de consulta DNS é enviada?
9. Examine a mensagem de consulta DNS. Quantas “perguntas” contém esta
mensagem de DNS? Quantas respostas "respostas" ele contém?
10. Examine a mensagem de resposta do DNS para a mensagem de consulta inicial.
Quantas “perguntas” contém esta mensagem de DNS? Quantas respostas
"respostas" ele contém?
11. A página da web para o arquivo base http://gaia.cs.umass.edu/kurose_ross/ faz
referência ao objeto de imagem
http://gaia.cs.umass.edu/kurose_ross/header_graphic_book_8E_2.jpg , que, como
a página da web base, está em gaia.cs.umass.edu. Qual é o número do pacote no
rastreamento para a solicitação HTTP GET inicial para o arquivo base
http://gaia.cs.umass.edu/kurose_ross/? Qual é o número do pacote no
rastreamento da consulta DNS feita para resolver gaia.cs.umass.edu para que essa
solicitação HTTP inicial possa ser enviada para o endereço IP gaia.cs.umass.edu?
Qual é o número do pacote no rastreamento da resposta DNS recebida? Qual é o
número do pacote no rastreamento para a solicitação HTTP GET para o objeto de
imagem http://gaia.cs.umass.edu/kurose_ross/header_graphic_book_8E2.jpg?
Qual é o número do pacote na consulta DNS feita para resolver gaia.cs.umass.edu
para que esta segunda solicitação HTTP possa ser enviada para o endereço IP
gaia.cs.umass.edu? Discuta como o cache do DNS afeta a resposta a esta última
pergunta.

Agora vamos brincar com o nslookup7.

5
Você pode baixar o arquivo zip http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces-8.1.zip e extrair
o arquivo de rastreamento dns-wireshark-trace1-1. Esses arquivos de rastreamento podem ser usados para
responder a essas perguntas de laboratório do Wireshark sem realmente capturar pacotes por conta própria.
Cada trace foi feito usando o Wireshark rodando em um dos computadores do autor, durante a execução
das etapas indicadas no laboratório Wireshark. Depois de baixar um arquivo de rastreamento, você pode
carregá-lo no Wireshark e visualizar o rastreamento usando o menu suspenso Arquivo, escolhendo Abrir e,
em seguida, selecionando o nome do arquivo de rastreamento.
6
Lembre-se de que esse “número de pacote” é atribuído pelo Wireshark apenas para fins de listagem; NÃO
é um número de pacote contido em nenhum cabeçalho de pacote real.
7
Se você não conseguir executar o Wireshark e capturar um arquivo de rastreamento, use o arquivo de
rastreamento dns-wireshark-trace-2 no arquivo zip de rastreamentos na nota de rodapé acima para
responder às perguntas 12-16 abaixo.
● Inicie a captura de pacotes.

● Faça um nslookup em www.cs.umass.edu

● Pare a captura de pacotes.

Você deve obter um rastreamento parecido com o seguinte na janela do Wireshark.


Vejamos a primeira consulta do tipo A (que é o pacote número 19 na figura abaixo e
indicado pelo "A" na coluna Informações desse pacote.

12. Qual é a porta de destino para a mensagem de consulta DNS? Qual é a porta de
origem da mensagem de resposta do DNS?
13. Para qual endereço IP a mensagem de consulta DNS é enviada? Este é o endereço
IP do seu servidor DNS local padrão?
14. Examine a mensagem de consulta DNS. Qual é o “tipo” de consulta de DNS? A
mensagem de consulta contém alguma “resposta”?
15. Examine a mensagem de resposta do DNS à mensagem de consulta. Quantas
“perguntas” contém esta mensagem de resposta do DNS? Quantas “respostas”?

Por último, vamos usar o nslookup para emitir um comando que retornará um registro
DNS do tipo NS, digite o seguinte comando:
nslookup –type=NS umass.edu
e depois responda as seguintes perguntas8 :

8
Se você não conseguir executar o Wireshark e capturar um arquivo de rastreamento, use o arquivo de
rastreamento dns-wireshark-trace-3 no arquivo zip de rastreamentos na nota de rodapé acima para
responder às perguntas 17-19 abaixo.
16. Para qual endereço IP a mensagem de consulta DNS é enviada? Este é o endereço
IP do seu servidor DNS local padrão?
17. Examine a mensagem de consulta DNS. Quantas perguntas tem a consulta? A
mensagem de consulta contém alguma “resposta”?
18. Examine a mensagem de resposta do DNS. Quantas respostas tem a resposta?
Que informações estão contidas nas respostas? Quantos registros de recursos
adicionais são retornados? Quais informações adicionais estão incluídas nesses
registros de recursos adicionais?

Você também pode gostar