O que é DNS?
DNS (Sistema de Nomes de Domínio) é a lista telefônica da internet. Ele traduz nomes de domínio legíveis por pessoas, como "example.com", em endereços IP legíveis por máquinas, como "93.184.216.34", que os computadores usam para localizar uns aos outros e se comunicar. Sem DNS, você teria de memorizar endereços IP para visitar sites. Imagine digitar 142.250.80.46 em vez de google.com.
Como o DNS funciona
Quando você digita um nome de domínio no navegador, ocorre um processo complexo, mas extremamente rápido:
O processo de resolução do DNS
1. Verificação do cache local: primeiro, o navegador e o sistema operacional verificam o cache DNS local em busca de uma consulta recente do domínio.
2. Consulta ao resolvedor recursivo: se a resposta não estiver no cache, a consulta será enviada a um resolvedor DNS recursivo, normalmente operado pelo seu ISP ou por um serviço como Cloudflare em 1.1.1.1 ou Google em 8.8.8.8.
3. Consulta ao servidor raiz: o resolvedor consulta um servidor de nomes raiz, que o direciona ao servidor TLD apropriado.
4. Consulta ao servidor TLD: o servidor TLD, por exemplo, o de .com, fornece os servidores de nomes autoritativos do domínio específico.
5. Consulta ao servidor autoritativo: por fim, o servidor de nomes autoritativo retorna o endereço IP real do domínio.
6. Cache da resposta: o resultado é armazenado em cache em vários níveis com base nos valores de TTL (tempo de vida).
Todo esse processo normalmente é concluído em milissegundos.
Tipos de registros DNS
O DNS armazena vários tipos de registros, cada um com uma finalidade diferente:
| Tipo de registro | Finalidade | Exemplo |
|---|---|---|
| A | Associa o domínio a um endereço IPv4 | example.com → 93.184.216.34 |
| AAAA | Associa o domínio a um endereço IPv6 | example.com → 2606:2800:220:1:... |
| CNAME | Alias que aponta para outro domínio | www.example.com → example.com |
| MX | Especifica o servidor de e-mail | example.com → mail.example.com |
| TXT | Dados de texto (SPF, DKIM, verificação) | Várias strings de verificação |
| NS | Delegação do servidor de nomes | example.com → ns1.provider.com |
A hierarquia do DNS
O DNS funciona como um banco de dados hierárquico distribuído:
. (root)
├── com (TLD)
│ ├── example (SLD)
│ │ ├── www (subdomain)
│ │ └── mail (subdomain)
│ └── google
├── org (TLD)
└── io (TLD)
Essa hierarquia permite gerenciar de forma distribuída bilhões de nomes de domínio entre milhares de organizações.
DNS para desenvolvedores
Entender o DNS é essencial para o desenvolvimento web:
Tarefas comuns de desenvolvimento
Configuração do domínio: configurar registros A, registros CNAME para subdomínios e registros MX para e-mail exige conhecimento de DNS. Verificação de SSL/TLS: muitas autoridades certificadoras usam registros DNS (TXT ou CNAME) para verificar a propriedade do domínio. Configuração de CDN: as redes de distribuição de conteúdo frequentemente exigem registros CNAME para encaminhar o tráfego por seus servidores de borda. Entregabilidade de e-mail: os registros SPF, DKIM e DMARC são registros TXT do DNS essenciais para a autenticação de e-mail.Propagação do DNS
Quando você atualiza registros DNS, as mudanças não entram em vigor imediatamente. A propagação do DNS, ou seja, o tempo necessário para que as mudanças se espalhem pela infraestrutura global de DNS, pode levar de alguns minutos a 48 horas, dependendo das configurações de TTL e do comportamento do cache.
Considerações de segurança do DNS
O DNS tem implicações de segurança que os desenvolvedores devem compreender:
Falsificação de DNS: os invasores podem tentar retornar respostas DNS falsas para redirecionar usuários a sites maliciosos. O DNSSEC (Extensões de Segurança do DNS) ajuda a impedir isso por meio de assinaturas criptográficas. Vazamentos de DNS: usuários de VPN podem enviar consultas DNS acidentalmente para fora do túnel criptografado, revelando sua atividade de navegação. Amplificação DDoS: o DNS pode ser explorado em ataques de amplificação porque o protocolo consegue retornar respostas maiores que as solicitações.DNS e disponibilidade de domínios
O status da resolução DNS pode indicar a disponibilidade de um domínio. Se não houver registros DNS, o domínio talvez não esteja registrado. No entanto, consultas RDAP/WHOIS fornecem informações mais confiáveis sobre a disponibilidade, pois domínios registrados podem ainda não ter registros DNS configurados.