redes

Significa: Domain Name System

O sistema de nomes distribuído e hierárquico que associa nomes como example.com a endereços e a outros dados tipados.

As aplicações chegam a ele pelo stub resolver do sistema operacional, que entrega as consultas a um recursive resolver; esse servidor responde do cache ou pergunta aos servidores autoritativos. Quando um nome resolve errado ou não resolve, a primeira pergunta útil é qual dessas camadas está segurando a resposta.

As RFCs 1034 e 1035 (novembro de 1987) descrevem três partes: um espaço de nomes em árvore com resource records ligados aos nomes, servidores de nomes que guardam os dados e resolvers que os extraem para os clientes. A autoridade se divide em zonas, cada uma atendida por servidores de nomes redundantes, e todo registro leva um tipo e uma classe, de modo que um nome pode guardar endereços, dados de e-mail e mais. Os objetivos de projeto pediam um banco de dados distribuído com cache local, já que uma cópia única e consistente do todo só ficaria mais cara.

Uma mensagem é um header seguido das seções question, answer, authority e additional. Os servidores escutam na porta 53, em UDP e TCP; uma resposta UDP fica limitada a 512 bytes e, quando maior, vem truncada com o bit TC ligado, o sinal para repetir em TCP, enquanto o EDNS permite que cliente e servidor combinem tamanhos maiores. Cada registro traz um TTL, o máximo de segundos que um cache pode guardá-lo, e a cópia em cache faz contagem regressiva.

A maioria das falhas é questão de camada. Um servidor autoritativo liga o bit AA nas respostas e a resposta vinda do cache de um resolver não liga, então perguntar com o dig à autoridade e ao resolver mostra se o erro está na zona ou num cache velho. Os resolvers também são onde mora a política: a RFC 9499 descreve policy-implementing resolvers, que alteram respostas, por exemplo para bloquear sites de malware, às vezes sem avisar o usuário.

Também conhecido como: dns, domain name system, name resolution

← Todos os verbetes do glossário