DNS é o que permite aos usuários se conectarem a sites usando nomes de domínio em vez de endereços de IP. Saiba como o DNS funciona.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
O Domain Name System (DNS) é a lista telefônica da internet. Os seres humanos acessam informações on-line por meio de nomes de domínio, como nytimes.com ou espn.com. Os navegadores web interagem por meio de endereços de Protocolo de internet (IP). O DNS converte os nomes de domínio em endereços de IP para que os navegadores possam carregar os recursos da internet.
Cada dispositivo conectado à internet tem um endereço de IP único que outras máquinas utilizam para localizar o dispositivo. Os servidores de DNS eliminam a necessidade de que humanos memorizem endereços de IP como 192.168.1.1 (no IPv4) ou endereços de IP alfanuméricos mais complexos mais recentes, como 2400:cb00:2048:1::c629:d7a2 (no IPv6).
O processo de resolução de DNS envolve a conversão de um hostname (como www.example.com) em um endereço de IP fácil de ser entendido por um computador (como 192.168.1.1). Um endereço de IP é fornecido para cada dispositivo na internet, e esse endereço é necessário para que o dispositivo de internet apropriado seja encontrado, como um endereço postal é usado para encontrar uma determinada casa. Quando um usuário deseja carregar uma página da internet, precisa haver uma tradução daquilo que o usuário digita no navegador web (example.com) para o endereço de máquina necessário para localizar a página do site example.com.
Para entender o processo por trás da resolução de DNS, é importante conhecer os diferentes componentes de hardware pelos quais uma consulta de DNS deve passar. Para o navegador da web, a busca pelo DNS ocorre "nos bastidores" e não exige nenhuma interação com o computador do usuário além da solicitação inicial.
Ambos os conceitos se referem a servidores (grupos de servidores) que são parte integrante da infraestrutura do DNS, mas cada um desempenha uma função diferente e fica em locais diferentes dentro do pipeline de uma consulta de DNS. Uma forma de se pensar sobre a diferença é que o resolvedor recursivo está no início da consulta de DNS e o nameserver autoritativo está no final.
O resolvedor recursivo é o computador que responde a uma solicitação recursiva de um cliente e dedica algum tempo a rastrear o registro de DNS. Isso é feito por meio de uma série de solicitações até chegar ao nameserver autoritativo de DNS do registro solicitado (ou atingir o limite de tempo ou retornar um erro se nenhum registro for encontrado). Felizmente, nem sempre os resolvedores de DNS recursivos precisam fazer diversas 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 encurtar o caminho das solicitações necessárias fornecendo o registro do recurso solicitado mais no início da pesquisa de DNS.
Em termos simples, um servidor de DNS autoritativo é o servidor que realmente mantém e é responsável pelos registros de recursos de DNS. Trata-se do servidor na parte inferior da cadeia de pesquisa de DNS, que responderá com o registro do recurso consultado, em última instância permitindo que o navegador da web faça a solicitação para alcançar o endereço de IP necessário para acessar um site ou outros recursos da web. Um nameserver autoritativo pode atender a consultas com seus próprios dados, sem precisar consultar outra fonte, já que se trata da fonte final da verdade para determinados registros de DNS.
Vale mencionar que, nos casos em que a consulta é para um subdomínio, como foo.example.com ou blog.cloudflare.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 os diversos serviços de DNS e aquele que a Cloudflare oferece. Diferentes resolvedores de DNS recursivos, como Google DNS, OpenDNS e provedores como a Comcast, mantêm instalações de data center com resolvedores de DNS recursivos. Esses resolvedores permitem consultas rápidas e fáceis por meio de clusters otimizados de sistemas de computadores otimizados para DNS, mas são fundamentalmente diferentes dos nameservers hospedados pela Cloudflare.
A Cloudflare mantém nameservers em nível de infraestrutura que são essenciais para o funcionamento da internet. Um exemplo importante é a rede de servidores raiz F, por cuja hospedagem a Cloudflare é parcialmente responsável. O raiz F é um dos componentes da infraestrutura de nameservers de DNS no nível raiz, responsável por bilhões de solicitações de internet por dia. Nossa rede Anycast nos coloca em uma posição única para lidar com grandes volumes de tráfego de DNS sem interrupção do serviço.
Na maioria das situações, o DNS se preocupa com a tradução de um nome de domínio para o endereço de IP apropriado. Para aprender como esse processo funciona, é útil seguir o caminho de uma pesquisa de DNS à medida que ela viaja, partindo de um navegador web, ao longo do processo de pesquisa de DNS e de volta à origem. Vamos examinar essas etapas.
Observação: muitas vezes, as informações da pesquisa de DNS são armazenadas em cache localmente dentro do computador de consulta ou remotamente na infraestrutura de DNS. De modo geral, uma pesquisa de DNS tem oito etapas. Quando as informações de DNS são armazenadas em cache, algumas etapas do processo de pesquisa de DNS são ignoradas, o que o torna mais rápido. O exemplo abaixo descreve todas as oito etapas, quando não há nada armazenado em cache.
Assim que as oito etapas da pesquisa de DNS tiverem retornado o endereço de IP para example.com, o navegador consegue fazer a solicitação da página web:
O resolvedor de DNS é a primeira parada da pesquisa de DNS 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 instância, leva à tradução de um URL para o endereço de IP necessário.
Observação: uma pesquisa típica de DNS não armazenada em cache envolverá consultas recursivas e iterativas.
É importante estabelecer a diferença entre uma consulta de DNS recursivo e um resolvedor de DNS recursivo. A consulta refere-se à solicitação feita a um resolvedor de DNS requerendo a resolução da consulta. Um resolvedor de DNS recursivo é o computador que aceita uma consulta recursiva e processa a resposta fazendo as solicitações necessárias.
Em uma pesquisa típica de DNS, ocorrem três tipos de consultas. Por meio do uso de uma combinação dessas consultas, um processo otimizado para a resolução do DNS pode resultar em uma redução da distância percorrida. Em uma situação ideal, os dados do registro armazenado em cache estarão disponíveis, permitindo que um nameserver de DNS retorne uma consulta não recursiva.
O objetivo do armazenamento em cache é armazenar dados temporariamente em um local que resulte em um aumento de desempenho e de confiabilidade para as solicitações de dados. O armazenamento em cache de DNS envolve o armazenamento de dados mais perto do cliente que os solicita, para que a consulta de DNS possa ser resolvida mais cedo e consultas adicionais mais à frente na cadeia de pesquisa de DNS possam ser evitadas, reduzindo os tempos de carregamento e o consumo de largura de banda/CPU. Os dados de DNS podem ser armazenados em cache em diversos locais, cada um dos quais irá armazenar registros de DNS por um período de tempo definido, determinado por um tempo vida (TTL).
Os navegadores web modernos são projetados por padrão para armazenar os registros de DNS em cache por um período de tempo definido. O objetivo aqui é óbvio: quanto mais próximo do navegador web o armazenamento em cache de DNS ocorrer, menos etapas de processamento precisarão ser realizadas para verificar o cache e fazer as solicitações corretas para um endereço de IP. Quando uma solicitação de um registro de DNS é feita, o cache do navegador é o primeiro local verificado na busca do registro solicitado.
No Chrome, você pode ver o status do seu cache de DNS acessando chrome://net-internals/#dns.
O resolvedor de DNS no nível do sistema operacional é a segunda e última parada local antes que uma consulta de DNS saia da sua máquina. O processo dentro do seu sistema operacional projetado para lidar com essa consulta geralmente é chamado de "resolvedor de stub" ou cliente de DNS. Quando recebe uma solicitação de um aplicativo, um resolvedor de stub primeiro verifica seu próprio cache para ver se tem o registro. Caso contrário, envia uma consulta de DNS (com um sinalizador recursivo definido) para fora da rede local, para um resolvedor de DNS recursivo dentro do provedor de internet (ISP).
Como ocorre em todas as etapas anteriores, quando recebe uma consulta de DNS o resolvedor recursivo dentro do provedor de internet também verifica se a tradução do host em endereço de IP solicitada já está armazenada dentro de sua camada de persistência local.
O resolvedor recursivo também apresenta uma funcionalidade adicional, dependendo dos tipos de registros que estão em seu cache:
Saiba mais sobre o que diferencia o DNS da Cloudflare de outros provedores de DNS.