Sistema de Nomes de Domínio
O Sistema de Nomes de Domínio é o diretório distribuído da Internet, traduzindo nomes de domínio legíveis por humanos em endereços IP que a rede necessita, através de uma hierarquia de servidores autoritativos delegados e de cache generalizada.
Definition
O Sistema de Nomes de Domínio é um serviço de nomes hierárquico e distribuído que mapeia nomes de domínio para endereços IP e outros registros, implementado por uma rede de servidores de nomes autoritativos delegados e resolvedores de cache.
Scope
Este tópico abrange o DNS: seu espaço de nomes hierárquico e zonas; os papéis dos servidores raiz, de domínio de nível superior e de nomes autoritativos; resolução recursiva e iterativa; registros de recursos (como A, AAAA, NS, MX e CNAME); valores de cache e tempo de vida que tornam o sistema escalável; e a dependência do DNS no UDP para a maioria das consultas. Também aborda o papel do DNS além da simples pesquisa, como na distribuição de carga e redirecionamento de CDN. Exclui os protocolos de aplicação e os sistemas de entrega de conteúdo que dependem dele.
Core questions
- Por que a Internet precisa de um sistema de nomes separado dos endereços IP?
- Como o espaço de nomes do DNS é organizado hierarquicamente em zonas e delegações?
- Como as consultas recursivas e iterativas resolvem um nome para um endereço?
- Como o cache e os valores de tempo de vida tornam o DNS escalável e rápido?
- Quais tipos de registro de recurso o DNS usa e o que cada um representa?
Key concepts
- hierarquia de nomes de domínio
- zonas e delegação
- servidores raiz, TLD e autoritativos
- resolução recursiva e iterativa
- registros de recurso (A, AAAA, NS, MX, CNAME)
- cache e tempo de vida (TTL)
- DNS sobre UDP
- distribuição de carga baseada em DNS
Key theories
- Nomenclatura hierárquica e delegada
- O DNS particiona o espaço de nomes em uma árvore de domínios e delega a autoridade para subárvores aos servidores de nomes de diferentes organizações, de modo que nenhuma entidade única precise conhecer todos os nomes e a administração seja distribuída.
- Resolução e cache
- Um resolvedor responde a uma consulta seguindo a hierarquia desde a raiz até os servidores autoritativos, então armazena o resultado em cache pelo seu tempo de vida; o cache agressivo significa que a maioria das pesquisas nunca atinge os servidores autoritativos, o que é essencial para a escalabilidade do DNS.
Clinical relevance
O DNS é uma dependência crítica de quase todas as interações online: navegação na web, e-mail e conexões de aplicativos começam com uma pesquisa de nome, portanto, o desempenho e a disponibilidade do DNS moldam a experiência do usuário, e as interrupções do DNS se propagam por todos os serviços. O DNS também é usado para direcionar usuários a servidores próximos para entrega de conteúdo e balanceamento de carga, e sua segurança (via DNSSEC e DNS criptografado) é uma preocupação ativa.
History
Antes do DNS, os nomes de host eram mapeados para endereços por um único arquivo compartilhado que não era escalável. Paul Mockapetris projetou o Sistema de Nomes de Domínio em meados da década de 1980 (RFCs 1034 e 1035, 1987) como uma alternativa distribuída e hierárquica. Desde então, o DNS cresceu enormemente, adicionando tipos de registro, nomes internacionalizados, extensões de segurança (DNSSEC) e transporte criptografado, mantendo-se arquitetonicamente fiel ao seu design original.
Debates
- DNS criptografado versus visibilidade operacional
- A criptografia de consultas DNS (DNS sobre HTTPS/TLS) protege a privacidade do usuário de observadores no caminho, mas também reduz a visibilidade dos operadores de rede usada para filtragem e solução de problemas e pode centralizar a resolução em alguns grandes provedores; o equilíbrio entre privacidade e controle é debatido.
Key figures
- Paul Mockapetris
- James F. Kurose
- Keith W. Ross
Related topics
Seminal works
- rfc1034
- rfc1035
- kurose2021
Frequently asked questions
- O que o DNS faz?
- O DNS traduz um nome amigável para humanos, como example.com, no endereço IP que a rede precisa para rotear pacotes para o servidor correto. É a "lista telefônica" da Internet, e faz essa pesquisa através de uma hierarquia distribuída de servidores com intenso cache para que seja escalável para toda a Internet.
- Por que o DNS é distribuído em vez de um único servidor grande?
- Um único servidor não conseguiria lidar com o volume de consultas, seria um ponto único de falha e não poderia ser administrado por todas as organizações do mundo. O DNS, em vez disso, delega a autoridade sobre partes do espaço de nomes a muitos servidores e armazena os resultados em cache amplamente, de modo que a carga e o controle são distribuídos e o sistema é resiliente.