Prévia do material em texto
<p>Laboratório Wireshark:</p><p>DNS v8.1</p><p>Suplemento para redes de computadores: uma abordagem de cima para baixo, 8ª</p><p>ed</p><p>., JF</p><p>Kurose e KW Ross</p><p>“Diga-me e eu esqueço. Mostre-me e eu me lembrarei. Envolva-me e eu entenderei.” provérbio chinês</p><p>© 2005-2021, JF Kurose e KW Ross, Todos os direitos reservados</p><p>Conforme descrito na Seção 2.4 do texto</p><p>1</p><p>, o Sistema de Nomes de Domínio (DNS) traduz nomes de host em endereços IP, cumprindo um papel crítico na</p><p>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 é</p><p>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</p><p>2.20 do livro, muita coisa pode acontecer “nos bastidores”, invisível para um cliente DNS, à medida que os servidores DNS hierárquicos se comunicam</p><p>entre si para resolver de forma recursiva ou iterativa a consulta DNS do cliente. Do ponto de vista do cliente DNS, entretanto, o protocolo é bastante</p><p>simples – uma consulta é formulada ao servidor DNS local e uma resposta é recebida desse servidor.</p><p>Antes de iniciar este laboratório, você provavelmente desejará revisar o DNS lendo a Seção 2.4 do texto. Em particular, você pode querer revisar o</p><p>material sobre servidores DNS locais , cache DNS , registros e mensagens DNS e o campo TYPE no registro DNS.</p><p>1. pesquisa</p><p>Vamos começar nossa investigação do DNS examinando o nslookup comando, que invocará os serviços DNS subjacentes para implementar sua</p><p>funcionalidade. O comando nslookup está disponível na maioria dos sistemas operacionais Microsoft, Apple IOS e Linux. Para executar o nslookup,</p><p>basta digitar o comando nslookup na linha de comando em uma janela DOS, janela de terminal Mac IOS ou shell Linux.</p><p>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</p><p>registro DNS. O servidor DNS consultado pode ser um servidor DNS raiz, um servidor DNS de domínio de nível superior (TLD), um servidor DNS</p><p>autoritativo ou um servidor DNS intermediário (consulte o livro para obter as definições desses termos). Por exemplo, nslookup pode ser usado para</p><p>recuperar um registro DNS “Tipo=A” que mapeia um nome de host (por exemplo, www.nyu.edu) para seu endereço IP. Para realizar esta tarefa, o</p><p>nslookup envia uma consulta DNS ao servidor DNS especificado (ou ao servidor DNS local padrão para o host no qual o nslookup é executado, se</p><p>nenhum servidor DNS específico for especificado), recebe uma resposta DNS desse servidor DNS e exibe o resultado.</p><p>Vamos dar uma olhada no nslookup sair para dar uma volta! Primeiro executaremos o nslookup na linha de comando do Linux no host</p><p>newworld.cs.umass.edu localizado no Departamento de CS do campus da Universidade de Massachusetts (UMass), onde o servidor de nomes local é</p><p>denominado primo.cs.umass.edu ( que possui um endereço IP 128.119.240.1). Vamos tentar o nslookup em sua forma mais simples:</p><p>Figura 1: o comando nslookup básico</p><p>Neste exemplo, o comando nslookup recebe um argumento, um nome de host (www.nyu.edu). Em palavras, este comando diz “envie-me o endereço IP</p><p>do host www.nyu.edu”. Conforme mostrado na captura de tela, a resposta deste comando fornece duas informações: (1) o nome e endereço IP do servidor</p><p>1 As referências às figuras e seções referem-se à 8ª</p><p>edição</p><p>do nosso texto, Computer Networks, A Top-down Approach, 8</p><p>h</p><p>ed., JF Kurose e KW Ross, Addison-Wesley/Pearson, 2020.</p><p>Nosso site para este livro é http ://gaia.cs.umass.edu/kurose_ross Você encontrará muito material aberto interessante lá.</p><p>http://gaia.cs.umass.edu/kurose_ross</p><p>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</p><p>www.nyu.edu. Você deve ter notado que existem dois pares nome/endereço fornecidos para www.nyu.edu . O primeiro ( 216.165.47.12 ) é um</p><p>endereço IPv4 na familiar notação decimal pontilhada; o segundo ( 2607:f600:1002:6113::100 ) é um endereço IPv6 mais longo e complicado.</p><p>Aprenderemos sobre IPv4 e IPv6 e seus dois esquemas de endereçamento diferentes posteriormente no Capítulo 4. Por enquanto, vamos nos concentrar</p><p>apenas em nosso mundo IPv4 mais confortável (e comum)</p><p>2</p><p>.</p><p>Embora a resposta tenha vindo do servidor DNS local (com endereço IP 128.119.240.1 ) na UMass, é bem possível que este servidor DNS local tenha</p><p>contatado iterativamente vários outros servidores DNS para obter a resposta, conforme descrito na Seção 2.4 do livro.</p><p>Além de usar nslookup para consultar um registro DNS “Type=A”, também podemos usar nslookup to nslookup para consultar um registro</p><p>“TYPE=NS”, que retorna o nome 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</p><p>do servidor autoritativo.</p><p>Figura 2: usando nslookup para encontrar os servidores de nomes autorizados para o domínio nyu.edu</p><p>No exemplo da Figura 2, invocamos nslookup com a opção “-type=NS” e o domínio “nyu.edu”. Isso faz com que o nslookup envie uma consulta para</p><p>um registro do tipo NS ao servidor DNS local padrão. Em palavras, a consulta diz: “envie-me os nomes de host do DNS oficial para nyu.edu”. (Quando a</p><p>opção –type não é usada, o nslookup usa o padrão, que é consultar registros do tipo A.) A resposta, exibida na captura de tela acima, primeiro indica o</p><p>servidor DNS que está fornecendo a resposta (que é o servidor local padrão Servidor DNS UMass com endereço 128.119.240.1) junto com três servidores</p><p>de nomes DNS da NYU. Cada um desses servidores é de fato um servidor DNS oficial para os hosts no campus da NYU. No entanto, nslookup também</p><p>indica que a resposta é “não autoritativa”, o que significa que esta resposta veio do cache de algum servidor, e não de um servidor DNS autoritativo da</p><p>NYU. Finalmente, a resposta também inclui os endereços IP dos servidores DNS oficiais da NYU. (Mesmo que a consulta tipo NS gerada pelo nslookup</p><p>não tenha solicitado explicitamente os endereços IP, o servidor DNS local os retornou “de graça” e o nslookup exibe o resultado.)</p><p>nslookup tem uma série de opções adicionais além de “-type=NS” que você pode querer explorar. Aqui está um site com capturas de tela de dez</p><p>nslookup populares usa: https://www.cloudns.net/blog/10-most-used-nslookup-commands/ e aqui</p><p>estão as “páginas de manual” para nslookup: https://linux.die.net/man/1/nslookup .</p><p>Por último, às vezes podemos estar interessados em descobrir o nome do host associado a um determinado endereço IP, ou seja, o inverso da pesquisa</p><p>mostrada na Figura 1 (onde o nome do host era conhecido/especificado e o endereço IP do host era retornado). O nslookup também pode ser usado para</p><p>realizar a chamada “pesquisa reversa de DNS”. Na Figura 3, por exemplo, especificamos um endereço IP como argumento nslookup ( 128.119.245.12</p><p>neste exemplo) e nslookup retorna o nome do host com esse endereço (gaia.cs.umass.edu neste exemplo)</p><p>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.</p><p>Em seguida, selecione o menu suspenso Configurar IPv6 e defina-o como “Somente link local” ou “Desligado”.</p><p>https://linux.die.net/man/1/nslookup</p><p>https://www.cloudns.net/blog/10-most-used-nslookup-commands/</p><p>http://www.nyu.edu/</p><p>Figura 3: usando nslookup para realizar uma “pesquisa reversa de DNS”</p><p>Agora que fornecemos uma visão geral do nslookup , é hora de você mesmo testá-lo. Faça o seguinte (e anote os resultados</p><p>3</p><p>). Se você estiver fazendo</p><p>este laboratório como parte da aula, seu professor fornecerá detalhes sobre como entregar as tarefas, sejam elas escritas ou em um LMS. Se você não</p><p>conseguir executar o comando nslookup ou estiver respondendo a esta pergunta usando um LMS, a Figura 4 mostra uma captura de tela da execução</p><p>dos nslookup s nas perguntas 1 e 4, que permitirá que você</p><p>responda às perguntas abaixo.</p><p>1. Execute nslookup para obter o endereço IP do servidor web do Instituto Indiano de Tecnologia em Bombaim, Índia: www.iitb.ac.in. Qual</p><p>é o endereço IP de www.iitb.ac.in</p><p>2. Qual é o endereço IP do servidor DNS que forneceu a resposta ao seu comando nslookup na pergunta 1 acima?</p><p>3. A resposta para o seu nslookup O comando da pergunta 1 acima vem de um servidor autoritativo ou não?</p><p>4. Use o nslookup comando para determinar o nome do servidor de nomes autoritativo para o domínio iit.ac.in. Qual é esse nome? (Se houver</p><p>mais de um servidor autoritativo, qual é o nome do primeiro servidor autoritativo retornado por nslookup )? Se você tivesse que encontrar o</p><p>endereço IP desse servidor de nomes oficial, como faria isso?</p><p>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</p><p>2. O cache DNS no seu computador</p><p>A partir da descrição da resolução de consulta DNS iterativa e recursiva (Figuras 2.19 e 2.20) em nosso livro, você pode pensar que o servidor DNS local</p><p>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!</p><p>A maioria dos hosts (por exemplo, seu computador pessoal) mantém um cache de registros DNS recuperados recentemente (às vezes chamado de cache</p><p>do resolvedor DNS ), assim como muitos navegadores da Web mantêm um cache de objetos recuperados recentemente por HTTP. Quando os serviços</p><p>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</p><p>encontrado, o host nem se preocupará em entrar em contato com o servidor DNS local e, em vez disso, usará esse registro DNS armazenado em cache. Um</p><p>registro DNS em um cache do resolvedor eventualmente atingirá o tempo limite e será removido do cache do resolvedor, assim como os registros</p><p>armazenados em cache em um servidor DNS local (veja as Figuras 2.19, 2.20) atingirão o tempo limite.</p><p>Você também pode limpar explicitamente os registros do cache DNS. Não há mal nenhum em fazer isso – significa apenas que seu computador precisará</p><p>invocar o serviço DNS distribuído na próxima vez que precisar usar o serviço de resolução de nomes DNS, já que não encontrará registros no cache. Em</p><p>um computador Mac, você pode inserir o seguinte comando em uma janela de terminal para limpar o cache do resolvedor DNS:</p><p>sudo killall -HUP mDNSResponder</p><p>3</p><p>Para a aula do autor, ao responder às seguintes perguntas com tarefas entregues, os alunos às vezes precisam imprimir pacotes específicos (veja o laboratório introdutório do Wireshark</p><p>para uma explicação de como fazer isso) e indicar onde no pacote eles encontraram o informações que respondem a uma pergunta. Eles fazem isso marcando as cópias em papel com</p><p>uma caneta ou anotando as cópias eletrônicas com texto em fonte colorida. Existem também módulos de sistema de gerenciamento de aprendizagem (LMS) para professores que</p><p>permitem aos alunos responder a essas perguntas on-line e ter respostas avaliadas automaticamente para esses laboratórios Wireshark em</p><p>http://gaia.cs.umass.edu/kurose_ross/lms.htm</p><p>http://gaia.cs.umass.edu/kurose_ross/lms.htm</p><p>No computador Windows, você pode inserir o seguinte comando no prompt de comando:</p><p>ipconfig /flushdns</p><p>e em um computador Linux, digite:</p><p>sudo systemd-resolve --flush-caches</p><p>Para versões 22.04 e posteriores do Ubuntu Linux, digite:</p><p>sudo resolvectl flush-caches</p><p>3. Rastreando DNS com Wireshark</p><p>Agora que estamos familiarizados com o nslookup e com a limpeza do cache do resolvedor DNS, estamos prontos para começar a trabalhar seriamente.</p><p>Vamos primeiro capturar as mensagens DNS geradas pela atividade comum de navegação na Web.</p><p> Limpe o cache DNS do seu host, conforme descrito acima.</p><p> Abra seu navegador da Web e limpe o cache do navegador.</p><p> 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</p><p>computador</p><p>4</p><p>. Com este filtro, o Wireshark exibirá apenas pacotes originados ou destinados ao seu host.</p><p> Inicie a captura de pacotes no Wireshark.</p><p> Com seu navegador, visite a página da Web: http://gaia.cs.umass.edu/kurose_ross/</p><p> Pare a captura de pacotes.</p><p>Se você não conseguir executar o Wireshark em uma conexão de rede ativa, você pode baixar um arquivo de rastreamento de pacotes que foi capturado</p><p>seguindo as etapas acima em um dos computadores do autor</p><p>5</p><p>. Responda as seguintes questões.</p><p>5. Localize a primeira mensagem de consulta DNS resolvendo o nome gaia.cs.umass.edu. Qual é o número do pacote</p><p>6</p><p>no rastreamento da</p><p>mensagem de consulta DNS? Esta mensagem de consulta é enviada por UDP ou TCP?</p><p>6. Agora localize a resposta DNS correspondente à consulta DNS inicial. Qual é o número do pacote no rastreamento da mensagem de resposta</p><p>DNS? Esta mensagem de resposta é recebida via UDP ou TCP?</p><p>7. Qual é a porta de destino da mensagem de consulta DNS? Qual é a porta de origem da mensagem de resposta DNS?</p><p>8. Para qual endereço IP a mensagem de consulta DNS é enviada?</p><p>9. Examine a mensagem de consulta DNS. Quantas “perguntas” esta mensagem DNS contém? Quantas “respostas” ele contém?</p><p>10. Examine a mensagem de resposta do DNS à mensagem de consulta inicial. Quantas “perguntas” esta mensagem DNS contém? Quantas</p><p>“respostas” ele contém?</p><p>11. A página da web para o arquivo base http://gaia.cs.umass.edu/kurose_ross/ faz referência ao objeto de imagem</p><p>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</p><p>número do pacote no rastreamento da solicitação HTTP GET inicial para o arquivo base http://gaia.cs.umass.edu/kurose_ross/? Qual é o</p><p>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</p><p>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</p><p>pacote no rastreamento da solicitação HTTP GET para o objeto de imagem</p><p>http://gaia.cs.umass.edu/kurose_ross/header_graphic_book_8E2.jpg? Qual é o número do pacote na consulta DNS feita para resolver</p><p>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</p><p>DNS afeta a resposta a esta última pergunta.</p><p>Agora vamos brincar com nslooku p</p><p>7</p><p>.</p><p>4 Se não tiver certeza de como encontrar o endereço IP do seu computador, você pode pesquisar na Web artigos sobre o seu sistema operacional. As informações do Windows 10 estão</p><p>aqui ; As informações do Mac estão aqui ; Informações sobre Linux estão aqui</p><p>5</p><p>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-</p><p>wireshark-trace1-1. Esses arquivos de rastreamento podem ser usados para responder a essas perguntas do laboratório Wireshark sem realmente capturar pacotes por conta própria. Cada</p><p>rastreamento foi feito usando o Wireshark rodando em um dos computadores do autor, executando os passos indicados no laboratório do Wireshark. Depois de baixar um arquivo de</p><p>rastreamento, você pode carregá-lo no Wireshark e visualizar o rastreamento usando o menu suspenso Arquivo , escolhendo Abrir e selecionando o nome do arquivo de rastreamento.</p><p>6 Lembre-se de que este “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.</p><p>7 Se você não conseguir executar o Wireshark e capturar um arquivo de rastreamento ou estiver usando um LMS, use o arquivo de rastreamento dns-wireshark-trace-2 no arquivo zip de</p><p>rastreamentos na nota de rodapé acima para responder às perguntas 12 a 16 abaixo.</p><p>http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces-8.1.zip</p><p>https://www.linuxtrainingacademy.com/determine-public-ip-address-command-line-curl/</p><p>https://www.hellotech.com/guide/for/how-to-find-ip-address-on-mac</p><p>Em palavras, este comando diz “envie-me o endereço IP do host www.nyu.edu”. Conforme mostrado na captura de tela, a resposta deste comando fornece duas informações: (1) o nome e 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 existem dois pares nome/endereço fornecidos para www.nyu.edu . O primeiro ( 216.165.47.12 ) é um endereço IPv4 na familiar notação decimal pontilhada; o segundo ( 2607:f600:1002:6113::100 ) é um endereço IPv6 mais longo e complicado. Aprenderemos sobre IPv4 e IPv6 e seus dois esquemas de endereçamento diferentes posteriormente no Capítulo 4. Por enquanto, vamos nos concentrar apenas em nosso mundo IPv4 mais confortável (e comum) .</p><p>Embora a resposta tenha vindo do servidor DNS local (com endereço IP 128.119.240.1 ) na UMass, é bem possível que este servidor DNS local tenha contatado iterativamente vários outros servidores DNS para obter a resposta, conforme descrito na Seção 2.4 do livro.</p><p>Além de usar nslookup para consultar um registro DNS “Type=A”, também podemos usar nslookup to nslookup para consultar um registro “TYPE=NS”, que retorna o nome 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.</p><p>Figura 2: usando nslookup para encontrar os servidores de nomes autorizados para o domínio nyu.edu</p><p>No exemplo da Figura 2, invocamos 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 ao servidor DNS local padrão. Em palavras, a consulta diz: “envie-me os nomes de host do DNS oficial para nyu.edu”. (Quando a opção –type não é usada, o 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 servidor local padrão Servidor DNS UMass com endereço 128.119.240.1) junto com três servidores de nomes DNS da NYU. Cada um desses servidores é de fato um servidor DNS oficial para os hosts no campus da NYU. No entanto, nslookup também indica que a resposta é “não autoritativa”, o que significa que esta resposta veio do cache de algum servidor, e não de um servidor DNS autoritativo da NYU. Finalmente, a resposta também inclui os endereços IP dos servidores DNS oficiais da NYU. (Mesmo que a consulta 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.)</p><p>nslookup tem uma série de opções adicionais além de “-type=NS” que você pode querer explorar. Aqui está um site com capturas de tela de dez nslookup populares usa: https://www.cloudns.net/blog/10-most-used-nslookup-commands/ e aqui estão as “páginas de manual” para nslookup: https://linux.die.net/man/1/nslookup .</p><p>Por último, à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 era retornado). O nslookup também pode ser usado para realizar a chamada “pesquisa reversa de DNS”. 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)</p><p>Figura 3: usando nslookup para realizar uma “pesquisa reversa de DNS”</p><p>Agora que fornecemos uma visão geral do nslookup , é hora de você mesmo testá-lo. Faça o seguinte (e anote os resultados ). Se você estiver fazendo este laboratório como parte da aula, seu professor fornecerá detalhes sobre como entregar as tarefas, sejam elas escritas ou em um LMS. Se você não conseguir executar o comando nslookup ou estiver respondendo a esta pergunta usando um LMS, a Figura 4 mostra uma captura de tela da execução dos nslookup s nas perguntas 1 e 4, que permitirá que você responda às perguntas abaixo.</p><p>1. Execute nslookup para obter o endereço IP do servidor web do Instituto Indiano de Tecnologia em Bombaim, Índia: www.iitb.ac.in. Qual é o endereço IP de www.iitb.ac.in</p><p>2. Qual é o endereço IP do servidor DNS que forneceu a resposta ao seu comando nslookup na pergunta 1 acima?</p><p>3. A resposta para o seu nslookup O comando da pergunta 1 acima vem de um servidor autoritativo ou não?</p><p>4. Use o nslookup comando para determinar o nome do servidor de nomes autoritativo 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 por nslookup )? Se você tivesse que encontrar o endereço IP desse servidor de nomes oficial, como faria isso?</p><p>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</p><p>2. O cache DNS no seu computador</p><p>A partir da descrição da resolução de consulta DNS iterativa e recursiva (Figuras 2.19 e 2.20) em nosso livro, 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!</p><p>A maioria dos hosts (por exemplo, seu computador pessoal) mantém um cache de registros DNS recuperados recentemente (às vezes chamado de cache do resolvedor 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 entrar em contato com o servidor DNS local e, em vez disso, usará esse registro DNS armazenado em cache. Um registro DNS em um cache do resolvedor eventualmente atingirá o tempo limite e será removido do cache do resolvedor, assim como os registros armazenados em cache em um servidor DNS local (veja as Figuras 2.19, 2.20) atingirão o tempo limite.</p><p>Você também pode limpar explicitamente os registros do 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, já que 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 DNS:</p><p>sudo killall -HUP mDNSResponder</p><p>No computador Windows, você pode inserir o seguinte comando no prompt de comando:</p><p>ipconfig /flushdns</p><p>e em um computador Linux, digite:</p><p>sudo systemd-resolve --flush-caches</p><p>Para versões 22.04 e posteriores do Ubuntu Linux, digite:</p><p>sudo resolvectl flush-caches</p><p>3. Rastreando DNS com Wireshark</p><p>Agora que estamos familiarizados com o nslookup e com a limpeza do cache do resolvedor DNS, estamos prontos para começar a trabalhar seriamente. Vamos primeiro capturar as mensagens DNS geradas pela atividade comum de navegação na Web.</p><p>Limpe o cache DNS do seu host, conforme descrito acima.</p><p>Abra seu navegador da Web e limpe o cache do navegador.</p><p>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 computador . Com este filtro, o Wireshark exibirá apenas pacotes originados ou destinados ao seu host.</p><p>Inicie a captura de pacotes no Wireshark.</p><p>Com seu navegador, visite a página da Web: http://gaia.cs.umass.edu/kurose_ross/</p><p>Pare a captura de pacotes.</p><p>Se você não conseguir executar o Wireshark em uma conexão de rede ativa, você pode baixar um arquivo de rastreamento de pacotes que foi capturado seguindo as etapas acima em um dos computadores do autor . Responda as seguintes questões.</p><p>5. Localize a primeira mensagem de consulta DNS resolvendo o nome gaia.cs.umass.edu. Qual é o número do pacote no rastreamento da mensagem de consulta DNS? Esta mensagem de consulta é enviada por</p>Em palavras, este comando diz “envie-me o endereço IP do host www.nyu.edu”. Conforme mostrado na captura de tela, a resposta deste comando fornece duas informações: (1) o nome e 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 existem dois pares nome/endereço fornecidos para www.nyu.edu . O primeiro ( 216.165.47.12 ) é um endereço IPv4 na familiar notação decimal pontilhada; o segundo ( 2607:f600:1002:6113::100 ) é um endereço IPv6 mais longo e complicado. Aprenderemos sobre IPv4 e IPv6 e seus dois esquemas de endereçamento diferentes posteriormente no Capítulo 4. Por enquanto, vamos nos concentrar apenas em nosso mundo IPv4 mais confortável (e comum) . Embora a resposta tenha vindo do servidor DNS local (com endereço IP 128.119.240.1 ) na UMass, é bem possível que este 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 to nslookup para consultar um registro “TYPE=NS”, que retorna o nome 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 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 ao servidor DNS local padrão. Em palavras, a consulta diz: “envie-me os nomes de host do DNS oficial para nyu.edu”. (Quando a opção –type não é usada, o 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 servidor local padrão Servidor DNS UMass com endereço 128.119.240.1) junto com três servidores de nomes DNS da NYU. Cada um desses servidores é de fato um servidor DNS oficial para os hosts no campus da NYU. No entanto, nslookup também indica que a resposta é “não autoritativa”, o que significa que esta resposta veio do cache de algum servidor, e não de um servidor DNS autoritativo da NYU. Finalmente, a resposta também inclui os endereços IP dos servidores DNS oficiais da NYU. (Mesmo que a consulta 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 uma série de opções adicionais além de “-type=NS” que você pode querer explorar. Aqui está um site com capturas de tela de dez nslookup populares usa: https://www.cloudns.net/blog/10-most-used-nslookup-commands/ e aqui estão as “páginas de manual” para nslookup: https://linux.die.net/man/1/nslookup . Por último, à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 era retornado). O nslookup também pode ser usado para realizar a chamada “pesquisa reversa de DNS”. 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 reversa de DNS” Agora que fornecemos uma visão geral do nslookup , é hora de você mesmo testá-lo. Faça o seguinte (e anote os resultados ). Se você estiver fazendo este laboratório como parte da aula, seu professor fornecerá detalhes sobre como entregar as tarefas, sejam elas escritas ou em um LMS. Se você não conseguir executar o comando nslookup ou estiver respondendo a esta pergunta usando um LMS, a Figura 4 mostra uma captura de tela da execução dos nslookup s nas perguntas 1 e 4, que permitirá que você responda às perguntas abaixo. 1. Execute nslookup para obter o endereço IP do servidor 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 para o seu nslookup O comando da pergunta 1 acima vem de um servidor autoritativo ou não? 4. Use o nslookup comando para determinar o nome do servidor de nomes autoritativo 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 por nslookup )? Se você tivesse que encontrar o endereço IP desse servidor de nomes oficial, 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, 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! A maioria dos hosts (por exemplo, seu computador pessoal) mantém um cache de registros DNS recuperados recentemente (às vezes chamado de cache do resolvedor 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 entrar em contato com o servidor DNS local e, em vez disso, usará esse registro DNS armazenado em cache. Um registro DNS em um cache do resolvedor eventualmente atingirá o tempo limite e será removido do cache do resolvedor, assim como os registros armazenados em cache em um servidor DNS local (veja as Figuras 2.19, 2.20) atingirão o tempo limite. Você também pode limpar explicitamente os registros do 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, já que 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 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 Para versões 22.04 e posteriores do Ubuntu Linux, digite: sudo resolvectl flush-caches 3. Rastreando DNS com Wireshark Agora que estamos familiarizados com o nslookup e com a limpeza do cache do resolvedor DNS, estamos prontos para começar a trabalhar seriamente. Vamos primeiro capturar as mensagens DNS geradas pela atividade comum de navegação na Web. Limpe o cache DNS do seu host, conforme descrito acima. Abra seu 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 computador . Com este filtro, o Wireshark exibirá apenas pacotes originados ou 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. Se você não conseguir executar o Wireshark em uma conexão de rede ativa, você pode baixar um arquivo de rastreamento de pacotes que foi capturado seguindo as etapas acima em um dos computadores do autor . 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 pacote no rastreamento da mensagem de consulta DNS? Esta mensagem de consulta é enviada porUDP ou TCP? 6. Agora localize a resposta DNS correspondente à consulta DNS inicial. Qual é o número do pacote no rastreamento da mensagem de resposta DNS? Esta mensagem de resposta é recebida via UDP ou TCP? 7. Qual é a porta de destino da mensagem de consulta DNS? Qual é a porta de origem da mensagem de resposta DNS? 8. Para qual endereço IP a mensagem de consulta DNS é enviada? 9. Examine a mensagem de consulta DNS. Quantas “perguntas” esta mensagem DNS contém? Quantas “respostas” ele contém? 10. Examine a mensagem de resposta do DNS à mensagem de consulta inicial. Quantas “perguntas” esta mensagem DNS contém? Quantas “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 da 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 da 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 DNS afeta a resposta a esta última pergunta. Agora vamos brincar com nslooku p . 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 da mensagem de consulta DNS? Qual é a porta de origem da mensagem de resposta 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. Que “tipo” de consulta DNS é esse? A mensagem de consulta contém alguma “resposta”? 15. Examine a mensagem de resposta do DNS à mensagem de consulta. Quantas “perguntas” esta mensagem de resposta DNS contém? 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 às seguintes questões : 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 a consulta tem? A mensagem de consulta contém alguma “resposta”? 18. Examine a mensagem de resposta DNS (em particular a mensagem de resposta DNS que possui o tipo “NS”). Quantas respostas a resposta tem? Que informações estão contidas nas respostas? Quantos registros de recursos adicionais são retornados? Que informações adicionais estão incluídas nesses registros de recursos adicionais (se informações adicionais forem retornadas)?