Cache de DNS

Protocolos e Padrões
Armazenamento temporário dos resultados de consultas DNS por resolvedores ou clientes para acelerar pesquisas repetidas.
← Voltar ao Glossário

O que é Cache de DNS?

O cache de DNS é o armazenamento temporário dos resultados de consultas de DNS por resolvedores, sistemas operacionais, navegadores e aplicações. Quando uma busca de DNS é realizada, o resultado é armazenado em cache por um período definido pelo TTL (Time To Live) do registro, permitindo que solicitações posteriores para o mesmo domínio sejam respondidas instantaneamente sem consultar os servidores autoritativos.

Por que o Cache de DNS é Importante

Sem cache, cada solicitação web única exigiria uma busca de DNS completa, adicionando latência e gerando tráfego de DNS massivo. O cache de DNS oferece:

Como Funciona o Cache de DNS

A Hierarquia de Cache

O cache de DNS ocorre em vários níveis:

Cache do Navegador (segundos para minutos)

Cache do SO (segundos para minutos)

Cache do Resolvedor Local (minutos para horas)

Cache do Resolvedor ISP (minutos para horas)

Servidor de Nome Autoritativo (fonte de verdade)

Processo de Consulta em Cache

1. Usuário solicita example.com

2. Navegador verifica seu cache

3. Se miss, SO verifica seu cache

4. Se miss, resolvedor verifica seu cache

5. Se miss, consulta recursiva aos servidores autoritativos

6. Resultado em cache em cada nível com base no TTL

7. Resposta retornada ao usuário

Expiração Baseada em TTL

Cada registro de DNS inclui um valor de TTL:

example.com.    300    IN    A    203.0.113.50

^^^

TTL em segundos (5 minutos)

Os caches armazenam este registro por 300 segundos e depois o descartam. A próxima consulta dispara uma busca atualizada.

Camadas de Cache de DNS

Cache do Navegador

Os navegadores modernos armazenam resultados de DNS independentemente:

Chrome: Usa seu próprio cache de DNS (chrome://net-internals/#dns) Firefox: Mantém cache interno (about:networking#dns) Safari: Usa resolvedor do sistema

TTL do cache típico do navegador: 60 segundos (independentemente do TTL de DNS)

Cache do Sistema Operacional

Windows: Serviço de Cliente DNS armazena em cache resultados
# Ver cache

ipconfig /displaydns

# Limpar cache

ipconfig /flushdns

macOS: mDNSResponder lida com cache
# Limpar cache (macOS 10.15+)

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux: Varia por sistema, frequentemente systemd-resolved
# Limpar cache systemd-resolved

sudo systemd-resolve --flush-caches

# Ver estatísticas

sudo systemd-resolve --statistics

Cache do Resolvedor

Resolvedores DNS recursivos (DNS ISP, 8.8.8.8, 1.1.1.1) mantêm caches grandes servindo milhões de usuários:

ResolvedorEstratégia de Cache
Google (8.8.8.8)Respeita TTL, cache global
Cloudflare (1.1.1.1)Respeita TTL, distribuído
Resolvedores ISPPodem ignorar TTLs baixos

Exemplos de Comportamento de Cache

Operação Normal

Consulta 1: example.com

→ Busca completa: 50ms

→ Em cache por 300s (TTL)

Consulta 2: example.com (1 minuto depois)

→ Hit em cache: 1ms

Consulta 3: example.com (10 minutos depois)

→ Cache expirado, busca completa: 50ms

→ Re-armazenado em cache por 300s

Atualização de Registro de DNS

Original: example.com → 203.0.113.50 (TTL: 300s)

Horário: 10:00 - DNS atualizado para 203.0.113.51

Cliente consulta às 10:02

→ Ainda em cache: 203.0.113.50 (expira 10:05)

Cliente consulta às 10:06

→ Cache expirado, nova busca: 203.0.113.51

→ Em cache até 10:11

Estratégia de TTL e Cache

Escolhendo Valores de TTL

Caso de UsoTTL RecomendadoMotivo
Infraestrutura estática3.600-86.400s (1-24 horas)Raramente muda, reduz carga de DNS
Website em produção300-1.800s (5-30 minutos)Equilibra desempenho e flexibilidade
Migração ativa60-300s (1-5 minutos)Propagação mais rápida durante mudanças
Balanceamento de carga60-120sFailover rápido quando servidores mudam

Redução de TTL Pré-Migração

Melhor prática ao planejar mudanças de DNS:

Dia -7: example.com TTL 3.600s (1 hora)

Dia -2: Reduzir para 300s (5 minutos)

Dia 0: Fazer mudança de DNS

→ Retenção máxima de cache 5 minutos

Dia +1: Restaurar TTL para 3.600s

Envenenamento de Cache e Segurança

Ataque de Envenenamento de Cache de DNS

Os atacantes tentam injetar registros de DNS falsos em caches:

1. Atacante inunda resolvedor com respostas falsas

2. Se uma corresponder a uma consulta pendente, é armazenada em cache

3. Usuários recebem IP malicioso para domínio legítimo

4. Cache envenenado fornecido a muitos usuários

Mitigações de Segurança

DNSSEC: Registros assinados criptograficamente previnem envenenamento
example.com.    IN    A      203.0.113.50

IN RRSIG A 8 2 300 ...

Randomização de Porta de Origem: Torna respostas mais difíceis de falsificar Codificação 0x20: Caso aleatório em consultas ajuda validação Segurança do Resolvedor: Use resolvedores reputados (Cloudflare, Google, Quad9)

Verificando Cache de DNS

Ver Conteúdo do Cache

Windows:
ipconfig /displaydns | more
macOS (informações limitadas):
sudo killall -INFO mDNSResponder

# Ver logs em Console.app

Linux (systemd-resolved):
sudo systemd-resolve --statistics

Testar Comportamento de Cache

# Primeira consulta (miss em cache)

time dig example.com

# Repetição imediata (hit em cache)

time dig example.com

# Comparar tempos

Problemas Relacionados a Cache

Cache Antigo Após Mudança de DNS

Problema: Registros DNS atualizados não refletem para usuários Solução:

1. Aguardar TTL expirar

2. Reduzir TTL antes de mudanças futuras

3. Pedir aos usuários para limpar cache local

Cache Excessivamente Agressivo

Alguns ISPs ignoram TTL e cache mais tempo:

Problema: Mudanças levam horas/dias para se propagarem Solução:

Cache Negativo

Buscas com falha (NXDOMAIN) também são armazenadas em cache:

Consulta: newsubdomain.example.com

Resposta: NXDOMAIN (não existe)

Armazenado em cache: 3.600s (TTL mínimo SOA)

Resultado: Novo subdomínio não será resolvido por 1 hora

Solução: Reduzir TTL mínimo de SOA antes de adicionar novos registros

Limpando Cache de DNS

Quando Limpar

Como Limpar

Windows:
ipconfig /flushdns
macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux (systemd-resolved):
sudo systemd-resolve --flush-caches
Chrome:
Navegar para: chrome://net-internals/#dns

Clic: "Clear host cache"

Firefox:
Alternar network.dnsCacheExpiration em about:config

Ou reiniciar navegador

Melhores Práticas

1. Definir TTLs apropriados: Equilibrar desempenho e velocidade de mudança

2. Reduzir TTL antes de mudanças: Reduzir 24-48 horas antes de atualizações de DNS

3. Monitorar propagação: Usar ferramentas para verificar resolução de DNS global

4. Documentar comportamento de cache: Compreender as camadas de cache da infraestrutura

5. Usar DNSSEC: Proteger contra envenenamento de cache

6. Testar completamente: Verificar que mudanças de DNS funcionam como esperado

7. Educar usuários: Fornecer instruções claras para limpeza de cache quando necessário

Conceitos Avançados de Cache

Prefetching

Navegadores e resolvedores podem prefetch DNS para links em uma página:

<!-- Sugestão ao navegador -->

<link rel="dns-prefetch" href="//cdn.example.com">

Aquecimento de Cache

Balanceadores de carga e CDNs podem pré-popular caches para registros críticos.

Anycast e Cache

DNS Anycast roteia consultas para servidor mais próximo, criando caches geograficamente distribuídos para desempenho ideal.

O cache de DNS é fundamental para o desempenho da internet — entender e configurar corretamente TTLs garante que mudanças de DNS se propaguem eficientemente enquanto mantém tempos de resolução rápidos.

Coloque este Conhecimento em Prática

Use a API DomScan para verificar disponibilidade de domínio, saúde e muito mais.