Toda vez que você visita um site, está interagindo com o maior banco de dados distribuído do mundo. Esse banco de dados massivo é coletivamente conhecido como DNS ou Domain Name System (Sistema de Nomes de Domínio). Certamente, ele tem um papel muito importante, pois sem ele a internet não funcionaria.
Mas você deve estar se perguntando: o que é DNS? Vamos apresentá-lo para você. Então, sem enrolação, vamos começar.
O que é DNS?
O Domain Name System (DNS) funciona com uma lista telefônica da Internet. Assim, pessoas acessam informações online por meio de nomes de domínio, como (nome do nosso site) ou espn.com.
Os navegadores da Web interagem por meio de endereços IP (Internet Protocol). Dessa forma, o ele converte nomes de domínio em endereços IP para que os navegadores possam carregar recursos da Internet.
Cada dispositivo conectado à Internet possui um endereço IP exclusivo que outras máquinas usam para localizar o dispositivo.
Os servidores do Domain Name System eliminam a necessidade dos usuários de memorizarem endereços IP, como 192.168.1.1 (em IPv4), ou endereços IP alfanuméricos mais novos e complexos, como 2400:cb00:2048:1::c629:d7a2 (em IPv6).
Veja também:
Estrutura Básica Do HTML
Introdução rápida sobre CSS
Introdução rápida sobre Python
Introdução rápida sobre JavaScript
Como funciona o DNS?
O processo de resolução de Domain Name System envolve a conversão de um nome de host (como www.example.com) em um endereço IP compatível com o computador (como 192.168.1.1).
Cada dispositivo na internter precisa de um endereço IP. Desse modo esse endereço tem a função de encontrar o dispositivo de Internet. Só para exemplificar imagine que o endereço IP é com o endereço de uma rua que serve para localizar uma casa.
Quando um usuário deseja carregar uma página da Web, deve ocorrer uma tradução entre o que o usuário digita em seu navegador da Web (example.com). Assim o endereço amigável necessário para localizar a página da Web example.com.
Para entender o processo por trás da resolução do Domain Name System, é importante aprender sobre os diferentes componentes de hardware entre os quais uma consulta de DNS deve passar.
Para o navegador da Web, a pesquisa do Domain Name System ocorre “nos bastidores” e não requer interação do computador do usuário além da solicitação inicial
Existem 4 servidores DNS envolvidos no carregamento de uma página da web
1 Recursor DNS
O recursor, analogamente, é como um bibliotecário que serve para encontrar um livro específico em algum lugar da prateleira da biblioteca.
O recursor do Domain Name System é um servidor projetado para receber consultas de máquinas clientes por meio de aplicativos como navegadores da web.
Normalmente, o recursor é responsável por fazer solicitações adicionais para satisfazer a consulta do Domain Name System do cliente.
2 Servidor de nomes raiz (Root nameserver)
O servidor raiz é a primeira etapa na tradução (resolução) de nomes de host legíveis por humanos em endereços IP.
Analogamente é como um índice em uma biblioteca que aponta para diferentes prateleiras de livros – normalmente serve como referência para outros locais mais específicos.
3 Servidor de nomes TLD (TLD nameserver)
O servidor de domínio de nível superior (TLD – top level domain) pode ser considerado um rack específico de livros em uma biblioteca.
Esse servidor de nomes (nameserver) é o próximo passo na busca de um endereço IP específico. Dessa forma hospeda a última parte de um nome de host (em example.com, o servidor TLD é “com”).
4 Servidor de nomes autoritativo (Authoritative nameserver)
Este servidor de nomes autoritativo, analogamente, é como um dicionário em uma estante de livros, no qual um nome específico tem sua definição.
O servidor de nomes autoritativo é a última parada na consulta do servidor de nomes. Se o servidor de nomes autoritativo tiver acesso ao registro solicitado, ele retornará o endereço IP do nome de host solicitado ao Recursor do Domain Name SystemDNS (o bibliotecário) que fez a solicitação inicial.
Qual é a diferença entre um servidor DNS autoritativo e um resolvedor DNS recursivo?
Ambos os conceitos se referem a servidores (grupos de servidores) que são parte integrante da infraestrutura do Domain Name SystemDNS, mas cada um desempenha uma função diferente e reside em locais diferentes dentro do pipeline de uma consulta DNS.
Uma maneira de pensar sobre a diferença é que o resolvedor recursivo está no início da consulta do Domain Name System e o servidor de nomes autoritativo está no final.
Resolvedor de DNS recursivo
O resolvedor recursivo é o computador que responde a uma solicitação recursiva de um cliente e demora para rastrear o registro do Domain Name System.
Ele faz uma série de solicitações até chegar ao servidor de nomes DNS autoritativo para o registro solicitado (ou expirar, ou retornar um erro)
Felizmente, os resolvedores do Domain Name System recursivos nem sempre precisam fazer várias solicitações para rastrear os registros necessários para responder a um cliente; o armazenamento em cache é um processo de persistência de dados que ajuda a reduzir as solicitações necessárias, atendendo ao registro de recurso solicitado anteriormente na pesquisa de DNS.
Servidor DNS autoritativo
Simplificando, um servidor do Domain Name System autoritativo é um servidor que realmente mantém e é responsável pelos registros de recursos DNS.
Este é o servidor na parte inferior da cadeia de pesquisa do Domain Name System que responderá com o registro de recurso consultado, permitindo que o navegador da Web que faz a solicitação alcance o endereço IP necessário para acessar um site ou outros recursos da Web.
Um servidor de nomes autoritário pode atender a consultas de seus próprios dados sem precisar consultar outra fonte, pois é a fonte final da verdade para determinados registros do Domain Name System.
Vale ressaltar que nos casos em que a consulta for para um subdomínio como foo.example.com ou blog.exemplo.com, um nameserver adicional será adicionado à sequência após o nameserver autoritativo, que é responsável por armazenar o registro CNAME do subdomínio.
Há uma diferença fundamental entre muitos serviços do Domain Name System e o que a Cloudflare oferece. Diferentes resolvedores recursivos de DNS, como Google DNS, OpenDNS e provedores como Comcast, mantêm instalações de data center de resolvedores recursivos de DNS.
Esses resolvedores permitem consultas rápidas e fáceis por meio de clusters otimizados de sistemas de computador otimizados para o Domain Name System, mas são fundamentalmente diferentes dos servidores de nomes hospedados pela Cloudflare.
A Cloudflare mantém servidores de nomes ao nível de infraestrutura que são essenciais para o funcionamento da Internet.
Um exemplo importante é a rede de servidores f-root que a Cloudflare é parcialmente responsável pela hospedagem.
A raiz F é um dos componentes da infraestrutura do servidor de nomes DNS de nível raiz responsável pelos bilhões de solicitações da Internet por dia.
Nossa rede Anycast nos coloca em uma posição única para lidar com grandes volumes de tráfego do Domain Name System sem interrupção do serviço.
Quais são as etapas em uma pesquisa de DNS?
Na maioria das situações, o Domain Name System se preocupa com a tradução de um nome de domínio para o endereço IP apropriado.
Para saber como esse processo funciona, é útil seguir o caminho de uma pesquisa do Domain Name System à medida que ela passa de um navegador da Web, pelo processo de pesquisa do Domain Name System e vice-versa. Vamos dar uma olhada nas etapas.
Observação: muitas vezes, as informações de pesquisa do Domain Name System serão armazenadas em cache localmente dentro do computador de consulta ou remotamente na infraestrutura de DNS.
Normalmente, há 8 etapas em uma pesquisa do Domain Name System. Dessa forma as informações deles armazenam-se em cache. As etapas são ignoradas no processo de pesquisa de DNS, o que o torna mais rápido. O exemplo abaixo descreve todas as 8 etapas.
As 8 etapas em uma pesquisa:
- Um usuário digita ‘example.com’ em um navegador da Web e a consulta viaja para a Internet e é recebida por um resolvedor recursivo de DNS.
- O resolvedor então consulta um servidor de nomes raiz DNS (.).
- O servidor raiz responde ao resolvedor com o endereço de um servidor DNS de domínio de primeiro nível (TLD) (como .com ou .net), que armazena as informações de seus domínios. Ao pesquisar por example.com, nossa solicitação é direcionada para o TLD .com.
- O resolvedor então faz uma solicitação ao TLD .com.
- O servidor TLD então responde com o endereço IP do servidor de nomes do domínio, exemplo.com.
- Por fim, o resolvedor recursivo envia uma consulta ao servidor de nomes do domínio.
- O endereço IP de exemplo.com é então retornado ao resolvedor do servidor de nomes.
- O resolvedor de DNS responde ao navegador da Web com o endereço IP do domínio solicitado inicialmente.
Depois que as 8 etapas da pesquisa do Domain Name System retornarem o endereço IP de example.com, o navegador poderá fazer a solicitação da página da web:
- O navegador faz uma solicitação HTTP para o endereço IP.
- O servidor nesse IP retorna a página da Web a ser renderizada no navegador
O que é um resolvedor de DNS?
O resolvedor do Domain Name System é a primeira parada na pesquisa dele e é responsável por lidar com o cliente que fez a solicitação inicial.
O resolvedor inicia a sequência de consultas que, em última análise, leva à tradução de uma URL para o endereço IP necessário.
Observação: uma pesquisa típica de DNS sem cache envolverá consultas recursivas e iterativas.
É importante diferenciar entre uma consulta do Domain Name System recursiva e um resolvedor DNS recursivo. A consulta refere-se à solicitação feita a um resolvedor de DNS exigindo a resolução da consulta.
Um resolvedor recursivo de DNS é o computador que aceita uma consulta recursiva e processa a resposta fazendo as solicitações necessárias.
Quais são os tipos de consultas?
Em uma pesquisa do Domain Name System típica, ocorrem três tipos de consultas. Ao usar uma combinação dessas consultas, um processo otimizado
para resolução de DNS pode resultar em uma redução da distância percorrida. Em uma situação ideal, os dados de registro em cache estarão disponíveis, permitindo que um servidor de nomes DNS retorne uma consulta não recursiva.
3 tipos de consultas:
1 Consulta recursiva (Recursive query)
Em uma consulta recursiva, um cliente DNS requer que um servidor DNS (normalmente um resolvedor recursivo DNS) responda ao cliente com o registro de recurso solicitado ou uma mensagem de erro se o resolvedor não conseguir encontrar o registro.
2 Consulta iterativa (Iterative query)
Nesta situação, o cliente DNS permitirá que um servidor DNS retorne a melhor resposta possível. Se o servidor DNS consultado não corresponder ao nome da consulta, ele retornará uma referência a um servidor DNS autorizado para um nível inferior do namespace de domínio.
O cliente DNS fará uma consulta ao endereço de referência. Esse processo continua com servidores DNS adicionais na cadeia de consulta até que ocorra um erro ou tempo limite.
3 Consulta não recursiva (Non-recursive query)
Normalmente, isso ocorre quando um cliente de resolução de DNS consulta um servidor DNS por um registro ao qual ele tem acesso porque é autoritativo para o registro ou porque o registro existe dentro de seu cache.
Um servidor DNS armazenará em cache os registros DNS para evitar o consumo de largura de banda adicional e a carga em servidores upstream.
O que é cache de DNS? Onde ocorre o cache de DNS?
O objetivo do cache é armazenar dados temporariamente em um local que resulte em melhorias no desempenho e na confiabilidade das solicitações de dados.
O cache do Domain Name System envolve o armazenamento de dados mais próximo do cliente solicitante para que a consulta DNS possa ser resolvida mais cedo e consultas adicionais mais abaixo na cadeia de pesquisa DNS possam ser evitadas, melhorando assim os tempos de carregamento e reduzindo o consumo de largura de banda/CPU.
Os dados do Domain Name System podem ser armazenados em cache em vários locais, cada um dos quais armazenará registros DNS por um determinado período, ou seja, um tempo de vida (TTL).
Os navegadores da Web modernos são projetados por padrão para armazenar em cache os registros DNS por um determinado período.
O propósito aqui é óbvio; quanto mais próximo o cache DNS estiver do navegador da Web, menos etapas de processamento devem ser executadas para verificar o cache e fazer as solicitações corretas para um endereço IP.
Quando uma solicitação de registro DNS é feita, o cache do navegador é o primeiro local verificado para o registro solicitado.
No Chrome, você pode ver o status do seu cache DNS acessando chrome://net-internals/#dns.
Veja o primeiro artigo do Roadmap: Passo a passo de como funciona a internet
Cache DNS no nível do sistema operacional (SO)
O resolvedor de DNS no nível do sistema operacional é a segunda e última parada local antes que uma consulta de DNS saia de sua máquina.
O processo dentro do seu sistema operacional projetado para lidar com essa consulta é comumente chamado de “stub resolver” ou cliente DNS.
Quando um stub resolvedor recebe uma solicitação de um aplicativo, ele primeiro verifica seu próprio cache para ver se possui o registro.
Caso contrário, ele envia uma consulta DNS (com um sinalizador recursivo definido), fora da rede local, para um resolvedor recursivo DNS dentro do provedor de serviços de Internet (ISP).
Dessa forma, quando o resolvedor recursivo dentro do ISP recebe uma consulta DNS, como todas as etapas anteriores, ele também verificará se a tradução de host para endereço IP solicitada já está armazenada dentro de sua camada de persistência local.
O resolvedor recursivo também possui funcionalidades adicionais dependendo dos tipos de registros que possui em seu cache:
- Se o resolvedor não tiver os registros A, mas tiver os registros NS para os servidores de nomes autorizados, ele consultará esses servidores de nomes diretamente, ignorando várias etapas na consulta DNS. Esse atalho impede pesquisas dos servidores de nomes raiz e .com (em nossa pesquisa por: exemplo.com) e ajuda a resolução da consulta DNS a ocorrer mais rapidamente.
- Se o resolvedor não tiver os registros NS, ele enviará uma consulta aos servidores TLD (.com no nosso caso), ignorando o servidor raiz.
- No caso improvável de que o resolvedor não tenha registros apontando para os servidores TLD, ele consultará os servidores raiz. Esse evento geralmente ocorre após a limpeza de um cache DNS.
Então, é isso! Bons estudos e até a próximo artigo.
Perguntas frequentes
O Domain Name System (DNS) funciona com uma lista telefônica da Internet. Assim, pessoas acessam informações online por meio de nomes de domínio, como (nome do nosso site) ou espn.com.
1 Consulta recursiva (Recursive query)
2 Consulta iterativa (Iterative query)
3 Consulta não recursiva (Non-recursive query)