Voltar ao blog

Troubleshooting DNS: nslookup, dig, DoH

· 7 min de leitura

Em resumo: Os problemas DNS estão entre as causas mais frequentes e difíceis de diagnosticar de quedas - porque "o DNS funciona para mim" não significa que funciona para os teus clientes. Aqui está um resumo de ferramentas e procedimentos práticos.

Em resumo: Os problemas DNS estão entre as causas mais frequentes e difíceis de diagnosticar de quedas - porque "o DNS funciona para mim" não significa que funciona para os teus clientes. Aqui está um resumo de ferramentas e procedimentos práticos.

Problemas DNS mais comuns

  • Registo do domínio expirado - todo o DNS deixa de funcionar.
  • Registo A/AAAA incorreto - após migração do servidor esqueceram de atualizar.
  • CNAME / MX em falta - o email não funciona, enquanto o site sim.
  • TTL não preparado para mudanças rápidas - caches dos providers ainda servem dados antigos.
  • Erro DNSSEC - os validadores rejeitam registos não assinados ou mal assinados.
  • Falha Geo-DNS - o resolver de uma região específica recebe resposta errada.

nslookup: o comando mais simples

Disponível em todos os OS sem instalação. Usa o servidor DNS por defeito do sistema, mas pode ser explicitamente especificado como segundo argumento.

$ nslookup epulz.io
Server:    127.0.0.53
Address:   127.0.0.53#53

Non-authoritative answer:
Name:      epulz.io
Address:   87.197.115.180

# Usar explicitamente Cloudflare DNS
$ nslookup epulz.io 1.1.1.1

# Tipo específico de registo
$ nslookup -type=MX gmail.com 8.8.8.8
$ nslookup -type=TXT _dmarc.epulz.io 1.1.1.1

dig: consulta DNS detalhada para Unix

O dig (Domain Information Groper) é significativamente mais detalhado e flexível. Parte do pacote bind-utils ou dnsutils.

$ dig epulz.io

;; QUESTION SECTION:
;epulz.io.                      IN      A

;; ANSWER SECTION:
epulz.io.               300     IN      A       87.197.115.180

;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: ...

Campos chave:

  • TTL (300) = segundos em que o resolver pode cachear a resposta.
  • ANSWER SECTION = o resultado.
  • SERVER = qual resolver DNS respondeu.
  • Query time = duração - útil ao depurar DNS lento.

Comandos práticos

# Resposta breve (apenas IP)
$ dig +short epulz.io
87.197.115.180

# Todos os registos
$ dig epulz.io ANY

# Trace de toda a hierarquia DNS (dos root nameservers)
$ dig +trace epulz.io

# Reverse lookup
$ dig -x 87.197.115.180

# Resolver específico
$ dig @8.8.8.8 epulz.io
$ dig @1.1.1.1 epulz.io
$ dig @9.9.9.9 epulz.io

# Validação DNSSEC
$ dig +dnssec epulz.io

DNS-over-HTTPS (DoH): quando não tens UDP/53

Nalgumas redes (firewalls corporativos, dados móveis com bloqueio) a porta DNS tradicional 53 está bloqueada. DoH empacota consultas DNS em pedidos HTTPS - passam em todo o lado onde 443 funciona.

# Endpoint DoH da Cloudflare
$ curl -s "https://cloudflare-dns.com/dns-query?name=epulz.io&type=A" \
       -H "Accept: application/dns-json" | jq

# Google DoH
$ curl -s "https://dns.google/resolve?name=epulz.io&type=MX" | jq

Um cliente DoH online com bonita UI também temos em - sem instalação.

Procedimento para "o domínio não funciona"

  1. Verifica o registo. whois yourdomain.com ou via o registrador. Se expirou, nada mais pode ser reparado.
  2. Verifica os registos NS. dig NS yourdomain.com @8.8.8.8. São devolvidos os nameservers responsáveis pelo domínio? Coincidem com os do painel do registrador?
  3. Verifica o registo A. dig yourdomain.com @8.8.8.8. Devolve o IP correto?
  4. Testa de rede externa (dados móveis, VPN, ferramenta online). Tu próprio podes ter dados antigos em cache.
  5. Verifica o TTL. Se acabaste de mudar um registo, espera pelo menos o TTL original (por defeito 1-24 horas).
  6. Verifica DNSSEC. Se o usas, a cadeia de assinaturas pode estar partida. dig +dnssec yourdomain.com mostra a flag ad em caso de sucesso.

Propagação DNS: quanto tempo demora?

"Propagação DNS" é um termo ligeiramente enganador. O DNS não se propaga em direção a ti - os teus resolvers baixam a resposta e cacham-na conforme o TTL. Só após expiração do TTL tentam uma nova consulta.

Consequências práticas:

  • Planeias uma migração? Baixa o TTL para 60-300 segundos pelo menos 48 horas antes.
  • O IP antigo permanecerá válido para alguns clientes muito após a mudança. Não desligues o servidor antigo imediatamente.
  • Os cloud providers (Cloudflare, AWS Route 53) têm TTL rápido e cache invalidation, mas o cliente final ainda tem de esperar o TTL do seu próprio resolver.

Conclusão

O DNS é a cola de infraestrutura que todos tomam como garantida - até deixar de funcionar. Monitorização regular de registos DNS (A, NS, MX, o seu TTL e validação DNSSEC) revela o problema antes de um cliente reportar por telefone.

Monitorização DNS e expiração WHOIS

O ePulz.io segue registos A/AAAA/MX/NS e a expiração do registo do domínio. 7 dias grátis.

Iniciar monitorização →


Experimente o ePulz.io grátis - 7 dias sem cartão de crédito.

Criar conta