Consultas DNS com dig
O dig pergunta qualquer coisa ao DNS: endereços (A, AAAA), nome reverso (PTR), textos como o SPF (TXT) e servidores (NS).
O dig é a ferramenta de linha de comando para perguntar qualquer coisa ao DNS. A forma básica é dig <nome> <tipo>:
$ dig exemplo.org A +noall +answer
exemplo.org. 600 IN A 192.0.2.10
Cada linha de resposta traz o nome, o TTL (por quantos segundos a resposta pode ficar guardada em cache), a classe (IN, de internet), o tipo e o valor. Os tipos que mais aparecem quando se levanta a ficha de um servidor:
| Tipo | O que guarda | Consulta |
|---|---|---|
A |
Endereço IPv4 | dig exemplo.org A |
AAAA |
Endereço IPv6 | dig exemplo.org AAAA |
PTR |
O nome de um endereço (resolução reversa) | dig -x 192.0.2.10 |
TXT |
Texto livre, como o SPF | dig exemplo.org TXT |
NS |
Os servidores autoritativos de uma zona | dig exemplo.org NS |
MX |
O servidor de e-mail do domínio | dig exemplo.org MX |
Resolução reversa. O PTR de 192.0.2.10 fica no nome 10.2.0.192.in-addr.arpa: os quatro números de trás para frente. O de um IPv6 fica sob ip6.arpa, um dígito hexadecimal por rótulo, também de trás para frente. O dig -x monta esse nome sozinho. Quem configura o PTR é o dono do bloco de endereços (em geral, o provedor de hospedagem), e ele não precisa bater com o nome direto.
SPF. Um registro TXT que começa com v=spf1 lista quem pode mandar e-mail em nome do domínio: mx (os servidores do registro MX), a:nome (os endereços desse nome), ip4: e ip6: (endereços ou blocos). No fim vem o que fazer com o resto: -all (falha: não autorizado) ou ~all (falha leve: suspeito).
Lendo o cabeçalho. A linha status diz como foi: NOERROR, NXDOMAIN (o nome não existe), SERVFAIL (o resolvedor não conseguiu a resposta) ou REFUSED (o servidor não quis responder). A linha flags mostra os bits ligados: qr (é uma resposta), rd (recursão pedida), ra (recursão disponível), aa (resposta autoritativa) e ad (validada com DNSSEC).
Opções úteis: +short (só os valores), +noall +answer (só a seção de resposta), @servidor (pergunta a um servidor escolhido, em vez do resolvedor da rede) e -4 ou -6 (força IPv4 ou IPv6). No Windows, nslookup faz as consultas básicas. Sem terminal, o Dig do Google Admin Toolbox (abre em nova aba) consulta pelo navegador, e o DigWebInterface (abre em nova aba) deixa escolher o servidor.
Em Python, o pacote dnspython faz o mesmo: dns.resolver.resolve("exemplo.org", "AAAA").
Aparece nestes desafios
O endereço de c106
Infraestrutura da internet
O outro endereço de c106
Infraestrutura da internet
Quem é a fonte
Infraestrutura da internet
O caminho de volta
Infraestrutura da internet
Quem pode mandar e-mail
Infraestrutura da internet
O que o servidor diz de si
Infraestrutura da internet
A zona quad
Infraestrutura da internet