Dig
Objetivo
Inspecionar consultas e respostas DNS com controle do servidor, tipo, transporte, rastreamento e DNSSEC. Dig é preferível ao Nslookup quando flags, delegação, autoridade ou validação precisam ser preservadas como evidência.Estrutura da resposta
- HEADER: opcode, status (NOERROR, NXDOMAIN, SERVFAIL etc.), ID e contagens.
- flags: `qr` resposta; `aa` autoritativa; `rd` recursão desejada; `ra` disponível; `ad` dados autenticados pelo resolvedor; `cd` validação desabilitada pelo cliente.
- QUESTION: nome, classe e tipo consultados.
- ANSWER: registros que respondem à pergunta.
- AUTHORITY: servidores/ SOA relevantes para delegação ou resposta negativa.
- ADDITIONAL: dados auxiliares, como endereços de NS, e pseudo-seção OPT/EDNS.
Comandos essenciais
dig exemplo.com A
dig exemplo.com AAAA
dig exemplo.com MX
dig exemplo.com NS
dig exemplo.com TXT
dig www.exemplo.com CNAME
dig exemplo.com SOA
dig -x 192.0.2.10
dig @1.1.1.1 exemplo.com A
dig exemplo.com A +short
dig exemplo.com +trace
dig exemplo.com A +tcp
dig exemplo.com A +dnssec
dig @ns1.exemplo.com exemplo.com SOA +norecurse
Para PTR IPv6, `dig -x 2001:db8::10`. `@servidor` seleciona o DNS. `+short` é útil em scripts, mas omite status, flags e autoridade; preserve a saída completa em diagnóstico. `+tcp` testa TCP/53, necessário em respostas truncadas e operações DNS específicas. `+dnssec` solicita registros DNSSEC; a presença de RRSIG não prova, sozinha, validação local.`+trace`
`dig +trace` percorre delegações a partir da raiz usando consultas iterativas feitas pela máquina local. Ele não reproduz exatamente a visão do resolvedor recursivo e depende de acesso direto aos servidores autoritativos. Use-o para localizar delegação quebrada, NS/glue inconsistente e etapa que deixa de responder.Diagnóstico e erros
| Resultado | Hipóteses e ação |
| NOERROR com ANSWER | dado retornado; valide tipo, TTL, CNAME e IP efetivo |
| NOERROR sem ANSWER | nome pode existir sem aquele tipo; examine AUTHORITY |
| NXDOMAIN | nome inexistente segundo a autoridade/cache negativo; confira zona e digitação |
| SERVFAIL | falha de resolução; compare `+trace`, DNSSEC e autoritativos |
| REFUSED | política recusou a consulta/recursão |
| `tc` | resposta truncada em UDP; repita `+tcp` |
| timeout | rota, firewall, servidor ou transporte; compare servidor e captura |
Procedimento, evidências e limitações
Registre comando, versão, servidor, nome absoluto, tipo/classe, HEADER/flags, seções, query time, server, horário, tamanho, UDP/TCP e resultado de DNSSEC. Correlacione com TCPDump/Wireshark quando houver timeout, retransmissão ou resposta inesperada.Dig não testa a aplicação e `+trace` não representa cache/política do recursivo. Não limpe caches antes de preservar evidência; não trate TTL como prazo global de propagação; não publique TXT/PCAP com segredos.