Redes > Resolução de nomes e o Cache de DNS

1396 Views
Tempo de leitura: 6 Minutos 
Atualizado em:

Você já deve ter ouvido falar que a Internet é movida por números. É o DNS que provê nomes aos sites que acessamos. Você já se perguntou como esse processo de resolução de nomes em IP é feito? E se sim, será que sabe mesmo como a resolução de nomes funciona? Isso é importante no entendimento de alguns problemas pontuais que ocorrem com o DNS.

Este material é de 2008, mas decidi revisitá-lo para atualizá-lo. Nele explico como ocorre a resolução de nomes e como funciona o Cache de DNS.

O que é o processo de resolução de nomes

O processo de resolução de nomes consiste em identificar o IP do site ou sistema que queremos acessar. Essa resolução de nome é tão complexa que a leitura deste artigo pode ser cansativa, mas vale a pena dedicar alguns minutos para compreender como a resolução de nomes funciona.

Vamos imaginar que iremos acessar um site pela primeira vez, e esse site nunca foi acessado por outra pessoa; é um site novo. O endereço desse site é lavaimeusite.com.br.

O início da jornada: Consultando caches de DNS

Todo site acessado por um endereço DNS (lavaimeusite.com.br, por exemplo) gera um cache de DNS tanto na conexão do provedor de Internet (ISP), quanto na conexão local e quanto no sistema que fez esse acesso.

Desta forma, os próximos acessos ao mesmo registro de DNS serão mais rápidos, pois o IP do site/sistema estará armazenado no cache de DNS.

O Diagrama abaixo mostra as consultas que nosso sistema e conexão fazem em busca de cache de DNS:

O diagrama é autoexplicativo, mas para ficar claro, nossa requisição de acesso à um site ou sistema (tipo GET) gera a resolução de nome para o endereço lavaimeusite.com.br. Primeiro é consultado o cache do sistema, depois da conexão local e por fim do provedor. Se o IP do site não constar em nenhum dos caches, é feita a resolução de nomes consultando os Root Servers.

Conceitualmente falando, a resolução de nomes é a tarefa de identificar o IP dos registros DNS. O cache é um recurso das conexões para acelerar acesso aos sites. Portanto, somente quando constatado que não há nada nos caches é que a resolução ocorre.

The Roots Servers – As raízes da Internet Mundial

O processo de resolução de nomes começa pelos Roots Servers. Trata-se de uma infraestrutura inimaginavelmente parruda, robusta, quase indestrutível. Os Root Servers são tão importantes que se eles caírem, a Internet do mundo todo será afetada.

Os Root Servers não armazenam endereços de sites, mas indicam os Domain Registrars que podem informar os DNS Autoritativos usados nos sites que queremos acessar. No caso do lavaimeusite.com.br, são indicadas as empresas que registram domínios terminados com “.br”.

Ao contrário do que se pensa, endereços de sites são resolvidos de trás para frente. Ou seja, primeiro identifica-se o “.br”, depois o “.com” e por fim o “lavaimeusite”. Assim, os Roots Servers direcionam a requisição para o Brasil onde está a empresa que registrou o endereço do domínio. Essa, por sua vez, identifica o “.com” e por fim o “lavaimeusite”.

Todo esse fluxo envolve dois tipos de serviços DNS: DNS Recursivo e DNS Autoritativo.

DNS Recursivo vs DNS Autoritativo

Como já falado, existem esses dois tipos de DNS. A seguir veremos a diferença entre eles:

DNS Recursivo
DNS Autoritativo
É o DNS da nossa rede, o que usamos para navegar na Internet. Ele faz o processo de resolução de nomes identificando o IP dos sites que queremos acessar É o DNS usado pelos sites. Por meio de uma tabela com Entradas de DNS, registra os endereços IP utilizados pelo site.

O DNS Recursivo de nossas conexões de Internet identifica e consulta os servidores DNS Autoritativos dos sites que queremos acessar.

Não se perca! Vimos até aqui que, uma vez que o DNS Recursivo da operadora de Internet (ISP) não possui cache de DNS, e uma vez que recorreu aos Root Servers, e esses indicaram o Registrar do domínio lavaimeuteste.com.br que, por ser .br, foi registrado pela Registro.br, são obtidos os endereços de DNS Autoritativos junto ao Registrar (Registro.br) e esses são consultados para saber o IP do site.

O DNS Autoritativo, por sua vez, consulta uma Zona de DNS do domínio que é de controle do serviço de DNS autoritativo. É como uma tabela e nela existem entradas de DNS como “mail”, “pop”, “imap” e “www” que apontam para um IP ou para um outro registro da mesma Zona de DNS.

Portanto, é na Zona de DNS do serviço de DNS Autoritativo que está o IP do site/sistema que queremos acessar.

Com posse do IP, já estamos aptos a acessar o site, pois o processo de resolução está completo. Nosso sistema operacional faz uma requisição HTTP/HTTPS ao IP do site informando no cabeçalho do pacote TCP o endereço do site que queremos acessar. O servidor do site, por sua vez, recebe essa requisição e responde à requisição com o conteúdo do site que acessamos.

E se precisarmos acessar esse site mais tarde? Todo o processo de resolução será feito novamente? A resposta é: Depende.

Cache de DNS

O já mencionado Cache de DNS, que como o próprio nome sugere, é um recurso de rede que armazena informações de registros DNS que acessamos. Quando acessamos o site lavaimeusite.com.br e encontramos seu IP, fazendo todo o processo de resolução de nomes, armazenamos um cache em três locais diferentes:

  1. No Cache de DNS da operadora de Internet (ISP);
  2. No Cache de DNS da rede local;
  3. No Cache de DNS do sistema operacional.

Assim, para não repetir o processo de resolução todas às vezes que precisarmos acessar o mesmo site, faremos uso da informação guardada em Cache. Desta forma, ao invés de seguirmos todo o fluxo de resolução, faríamos acesso direto ao domínio a partir do cache de DNS.

Observe que o Cache de DNS nada tem a ver com o cache de conteúdo web. O cache de DNS é específico para resolução de nomes.

No entanto, existem situações em que o Cache de DNS pode atrapalhar a navegação. Isso ocorre, geralmente, quando há uma mudança de IP no DNS Autoritativo do site, pois todo registro de DNS é acompanhado por um TTL (Time to Live) que indica quanto tempo determinada informação deve ser mantida em cache.

Possível Problema causado pelo Cache de DNS:

Imaginemos que o site www.terra.com.br acabou de mudar seu IP. Seu vizinho possui “Virtua” e consegue acessar o site já no novo IP, mas você que possui “Speedy” não consegue acessar, pois ainda está tentando acessar o antigo IP.

Isso ocorre porque o Cache de DNS da sua conexão Speedy está desatualizado, ou melhor, a informação do novo IP ainda não foi propagada para a sua conexão, pois não superou o TTL.

A solução para esse problema pode ser a liberação do cache de DNS local. Pode não resolver, mas pode resolver, entendeu?

Nesse tipo de caso é válido tentar limpar o cache de DNS local, pois é tudo que estará ao seu alcance. Fora isso, caso não resolva, terá que aguardar a propagação.

Os comandos para isso, em cada plataforma, será esse:

No Windows:
ipconfig /flushdns
Em versões Linux mais antigas (System V)
/etc/rc.d/init.d/nscd restart
Em versões Linux atuais (Systemd)
systemctl restart nscd
No macOSx
lookupd -flushcache

Resumo

Tentei explicar de uma forma que fique claro para todos, dos mais experientes aos mais leigos. O importante aqui é estarmos alinhados, ok? Um grande abraço e até a próximo.

4 - 0

Thank You For Your Vote!

Sorry You have Already Voted!