---
codigo: DOC-TEL-RED-DIA-006
tipo: conhecimento
dominio: Telecom
area: Redes
trilha: Diagnóstico de Redes
nivel_tecnico: Avançado
tempo_medio: 15-25 min
status: validado
---

# 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.

O TTL de cada registro é tempo de cache remanescente naquela resposta, não latência. Em cache, pode diminuir entre consultas.

## Comandos essenciais

```bash
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 |

Compare o resolvedor do cliente, o recursivo do ISP e autoritativos. A, AAAA e CNAME podem variar por CDN/anycast/geografia. Se A funciona e AAAA leva a falha da aplicação, valide conectividade IPv6 antes de culpar DNS.

## 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.

## Diferença para Nslookup

Nslookup é conveniente e amplamente disponível. Dig oferece saída mais estruturada e controles operacionais adequados a delegação, DNSSEC, TCP e automação.

## Conclusão

Dig transforma “DNS não funciona” em evidências sobre servidor, transporte, status, autoridade e cadeia de delegação.

## Documentos Relacionados

- [Nslookup](./05 - Nslookup.md)
- [TCPDump](./10 - TCPDump.md)
- [Wireshark](./11 - Wireshark.md)
- [Captura de Pacotes](./12 - Captura de Pacotes.md)
- [Fluxo de Diagnóstico de Conectividade](./13 - Fluxo de Diagnóstico de Conectividade.md)
