Prévia do material em texto
<p>1</p><p>LABORATÓRIO WIRESHARK: DNS – DOMAIN NAME SYSTEM</p><p>Texto escrito com base no documento original em inglês de J. F. Kurose e</p><p>K. W. Ross, de livre distribuição para acompanhamento do livro “Computer</p><p>Networking: A Top-Down Approach, 6th ed., J.F. Kurose and K.W. Ross”, e</p><p>adaptado para a versão mais nova do software Wireshark.</p><p>O DNS (Domain Name System) converte nomes de host em endereços IP, cumprindo uma função crítica</p><p>na infraestrutura da Internet. Neste laboratório, veremos mais de perto o lado do cliente do DNS. Lembre-</p><p>se de que a função do cliente no DNS é relativamente simples: um cliente envia uma consulta ao servidor</p><p>DNS local e recebe uma resposta de volta. Muita coisa pode ficar oculta para os clientes DNS, pois os</p><p>servidores hierárquicos do DNS se comunicam entre si para resolver de forma recursiva ou iterativa a</p><p>consulta DNS do cliente. Do ponto de vista do cliente DNS, no entanto, o protocolo é bastante simples -</p><p>uma consulta é formulada para o servidor DNS local e uma resposta é recebida desse servidor.</p><p>nslookup</p><p>Neste laboratório, faremos uso extensivo da ferramenta nslookup, que está disponível na maioria das</p><p>plataformas Linux/Unix e Microsoft. Para executar o nslookup no Linux/Unix, basta digitar o comando</p><p>nslookup na linha de comando. Para executá-lo no Windows, abra o prompt de comando e execute o</p><p>nslookup na linha de comando.</p><p>Em sua operação básica, a ferramenta nslookup permite que o host consulte qualquer servidor DNS</p><p>especificado para um registro DNS. O servidor DNS consultado pode ser um servidor DNS raiz, um servidor</p><p>DNS de domínio de nível superior, um servidor DNS autoritativo ou um servidor DNS intermediário. Para</p><p>realizar essa tarefa, o nslookup envia uma consulta DNS ao servidor DNS especificado, recebe uma</p><p>resposta do DNS do mesmo servidor e exibe o resultado.</p><p>ipconfig</p><p>ipconfig (para Windows) e ifconfig (para Linux / Unix) estão entre os pequenos utilitários mais úteis em</p><p>seu host, especialmente para depurar problemas de rede. Aqui, descrevemos apenas as informações de</p><p>TCP / IP, incluindo seu endereço, endereços de servidor DNS, tipo de adaptador e assim por diante. Por</p><p>exemplo, se você tiver todas essas informações sobre seu host simplesmente digitando</p><p>ipconfig \ all</p><p>no Prompt de Comando, conforme mostrado na captura de tela a seguir.</p><p>2</p><p>Figura 1: Comandos nslookup em um prompt de comando.</p><p>A captura de tela acima mostra os resultados de três comandos nslookup independentes (exibidos</p><p>no prompt de comando do Windows). Neste exemplo, o host do cliente está localizado no campus da</p><p>Polytechnic University no Brooklyn, onde o servidor DNS local padrão é dns-prime.poly.edu. Ao executar</p><p>o nslookup, se nenhum servidor DNS for especificado, o nslookup enviará a consulta para o servidor DNS</p><p>padrão, que neste caso é o dns prime.poly.edu. Considere o primeiro comando:</p><p>nslookup www.mit.edu</p><p>Em palavras, este comando está dizendo “por favor me envie o endereço IP para o host www.mit.edu”.</p><p>Conforme mostrado na captura de tela, a resposta desse comando fornece duas informações: (1) o nome</p><p>e o endereço IP do servidor DNS que fornece a resposta; e (2) a resposta em si, que é o nome do host e</p><p>o endereço IP de www.mit.edu.</p><p>Agora considere o segundo comando:</p><p>nslookup -type=NS mit.edu</p><p>Neste exemplo, fornecemos a opção “-type=NS” e o domínio “mit.edu”. Isso faz com que o nslookup</p><p>envie uma consulta para um registro do tipo NS para o servidor DNS local padrão. Em palavras, a</p><p>consulta está dizendo: “por favor, envie-me os nomes de host do DNS autoritativo para mit.edu”.</p><p>(Quando a opção -type não é usada, o nslookup usa o padrão, que é consultar os registros do tipo A).</p><p>A resposta, exibida na captura de tela acima, primeiro indica o servidor DNS que está fornecendo a</p><p>resposta (que é o servidor DNS padrão) junto com três servidores de nomes do MIT. Cada um desses</p><p>servidores é de fato um servidor DNS autoritativo para os hosts no campus do MIT. No entanto, o</p><p>nslookup também indica que a resposta é “não autoritativa”, o que significa que essa resposta veio</p><p>3</p><p>do cache de algum servidor, e não de um servidor DNS autoritativo do MIT. Finalmente, a resposta</p><p>também inclui os endereços IP dos servidores DNS autoritativos no MIT. Embora a consulta type-NS</p><p>gerada pelo nslookup não solicitasse explicitamente os endereços IP, o servidor DNS local retornou</p><p>estes “gratuitamente” e o nslookup exibe o resultado.</p><p>Agora considere o terceiro comando:</p><p>nslookup www.aiit.or.kr bitsy.mit.edu</p><p>Neste exemplo, indicamos que queremos a consulta enviada ao servidor DNS bitsy.mit.edu em vez de ao</p><p>servidor DNS padrão (dns prime.poly.edu). Assim, a transação de consulta e resposta ocorre diretamente</p><p>entre nosso host de consulta e bitsy.mit.edu. Neste exemplo, o servidor DNS bitsy.mit.edu fornece o</p><p>endereço IP do host www.aiit.or.kr, que é um servidor da web no Instituto Avançado de Tecnologia da</p><p>Informação (na Coréia).</p><p>Agora que vimos alguns exemplos ilustrativos, talvez você esteja se perguntando sobre a sintaxe geral</p><p>dos comandos do nslookup. A sintaxe é:</p><p>nslookup -opção1 -opção2 host-a-encontrar servidor-dns</p><p>Em geral, o nslookup pode ser executado com zero, uma, duas ou mais opções. E, como vimos nos</p><p>exemplos acima, o dns-server também é opcional. Se não for fornecido, a consulta é enviada ao servidor</p><p>DNS local padrão.</p><p>Agora que fornecemos uma visão geral do nslookup, é hora de testar você mesmo. Faça o seguinte (e</p><p>anote os resultados):</p><p>1. Execute o nslookup para obter o endereço IP de um servidor da Web na Ásia. Qual é o endereço IP</p><p>desse servidor?</p><p>2. Execute o nslookup para determinar os servidores DNS autoritativos de uma universidade na Europa.</p><p>3. Execute o nslookup para que um dos servidores DNS obtidos na pergunta 2 seja consultado para os</p><p>servidores de correio do Yahoo! enviar. Qual é o seu endereço IP?</p><p>ipconfig</p><p>ipconfig (para Windows) e ifconfig (para Linux/Unix) estão entre os utilitários mais úteis em seu host,</p><p>especialmente para depurar problemas de rede. Aqui, descrevemos apenas o ipconfig. O ipconfig pode</p><p>ser utilizado para mostrar suas informações correntes do TCP/IP, incluindo seu endereço, endereços de</p><p>servidor DNS, tipo de adaptador e assim por diante. Você pode obter todas essas informações sobre seu</p><p>host simplesmente digitando</p><p>ipconfig /all</p><p>no Prompt de Comando, conforme mostrado na captura de tela a seguir.</p><p>4</p><p>Figura 2: Comandos “ipconfig /all”.</p><p>O ipconfig também é muito útil para gerenciar as informações do DNS armazenadas no seu host. Um</p><p>host pode armazenar em cache os registros DNS obtidos recentemente. Para ver esses registros em</p><p>cache, após o prompt C: \>, forneça o seguinte comando:</p><p>ipconfig /displaydns</p><p>Cada entrada mostra o tempo de vida restante (TTL) em segundos. Para limpar o cache, digite</p><p>ipconfig /flushdns</p><p>Limpar o cache DNS limpa todas as entradas e recarrega as entradas do arquivo de hosts.</p><p>Rastreando o DNS com o Wireshark</p><p>Agora que estamos familiarizados com o nslookup e o ipconfig, estamos prontos para começar. Primeiro</p><p>vamos capturar os pacotes DNS gerados pela atividade comum de navegação na Web.</p><p>• Use o ipconfig para esvaziar o cache do DNS em seu host.</p><p>• Abra o navegador e esvazie o cache do navegador. (Com o Internet Explorer, vá para o menu</p><p>“Ferramentas” e selecione “Opções da Internet”. Em seguida, na guia “Geral” sob “Histórico de</p><p>navegação”, selecione “Excluir...”.</p><p>5</p><p>• Abra o Wireshark e digite “ip.addr == seu_endereço_IP” no filtro, onde você obtém seu_endereço_IP</p><p>com ipconfig. Este filtro remove todos os pacotes que não originam nem são destinados ao seu host.</p><p>• Iniciar captura de pacotes no Wireshark.</p><p>• Com o seu navegador, visite a página da Web: http://www.ietf.org</p><p>• Pare a captura de pacotes.</p><p>Se você não conseguir executar o Wireshark em uma conexão de rede ativa, solicite uma captura a seu</p><p>professor. Responda as seguintes questões. Sempre que possível, ao responder uma pergunta abaixo,</p><p>você deve indicar o(s) pacote(s) dentro do rastreamento que você usou para</p><p>responder à pergunta.</p><p>4. Localize as mensagens de consulta e resposta do DNS. São então enviados por UDP ou TCP?</p><p>5. Qual é a porta de destino para a mensagem de consulta DNS? Qual é a porta de origem da mensagem</p><p>de resposta do DNS?</p><p>6. Para qual endereço IP a mensagem de consulta DNS é enviada? Use ipconfig para determinar o</p><p>endereço IP do seu servidor DNS local. Esses dois endereços IP são iguais?</p><p>7. Examine a mensagem de consulta do DNS. Qual tipo de consulta DNS é? A mensagem de consulta</p><p>contém alguma resposta?</p><p>8. Examine a mensagem de resposta do DNS. Quantas “respostas” são fornecidas? O que cada uma</p><p>dessas respostas contém?</p><p>9. Considere o pacote TCP SYN subsequente enviado pelo seu host. O endereço IP de destino do pacote</p><p>SYN corresponde a algum dos endereços IP fornecidos na mensagem de resposta do DNS?</p><p>10. Esta página da web contém imagens. Antes de recuperar cada imagem, seu host emite novas</p><p>consultas DNS?</p>