DIG (Domain Information Groper) é um utilitário para consultas a DNS, normalmente é utilizado para identificar problemas de DNS.

Para baixar o "dig" clique aqui.

Segue abaixo alguns comandos importantes:

root@servidor:~# dig @SERVIDORdns nome tipo

onde:
servidor: é o endereço IP ou nome do servidor smtp que será consultado;
nome: é o domínio que estamos consultando;
tipo: é o tipo de consulta. Pode ser MX (serviço de e-mail), A (endereço), ANY (todas as informações), etc. Se não preenchido o tipo padrão é A.

root@servidor:~# dig @SERVIDORdns www.uol.com.br +noall +answer
www.uol.com.br. 300 IN A 200.221.2.45
www.uol.com.br. 300 IN A 200.147.67.142

root@servidor:~# dig @SERVIDORdns google.com MX
;; QUESTION SECTION:
google.com. IN MX
;; ANSWER SECTION:
google.com. 600 IN MX 10 aspmx.l.google.com.
google.com. 600 IN MX 30 alt2.aspmx.l.google.com.
google.com. 600 IN MX 40 alt3.aspmx.l.google.com.
google.com. 600 IN MX 20 alt1.aspmx.l.google.com.
google.com. 600 IN MX 50 alt4.aspmx.l.google.com.

Para saber quem tem autoridade sobre o domínio yahoo.com (NAME SERVERS):

root@servidor:~# dig @SERVIDORdns google.com NS +noall +answer
google.com. 345600 IN NS ns1.google.com.
google.com. 345600 IN NS ns4.google.com.
google.com. 345600 IN NS ns3.google.com.
google.com. 345600 IN NS ns2.google.com.

Os servidores de email:

root@servidor:~# dig @SERVIDORdns hotmail.com MX +noall +answer
hotmail.com. 3600 IN MX 5 mx1.hotmail.com.
hotmail.com. 3600 IN MX 5 mx2.hotmail.com.
hotmail.com. 3600 IN MX 5 mx3.hotmail.com.
hotmail.com. 3600 IN MX 5 mx4.hotmail.com.

Listar tudo:

root@servidor:~# dig @SERVIDORdns gmail.com ANY +noall +answer
gmail.com. 86400 IN SOA ns1.google.com. dns-admin.google.com. 2012 022100 21600 3600 1209600 300
gmail.com. 3600 IN MX 40 alt4.gmail-smtp-in.l.google.com.
gmail.com. 3600 IN MX 30 alt3.gmail-smtp-in.l.google.com.
gmail.com. 3600 IN MX 20 alt2.gmail-smtp-in.l.google.com.
gmail.com. 3600 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 3600 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 300 IN TXT "v=spf1 redirect=_spf.google.com"
gmail.com. 300 IN A 74.125.234.22
gmail.com. 300 IN A 74.125.234.21
gmail.com. 345600 IN NS ns3.google.com.
gmail.com. 345600 IN NS ns4.google.com.
gmail.com. 345600 IN NS ns2.google.com.
gmail.com. 345600 IN NS ns1.google.com.

Exibir as propriedades de quem tem autoridade sobre um domínio (SOA), ou seja, qual servidor tem autoridade sobre os nomes disponibilizados por determinado domínio.

root@servidor:~# dig @SERVIDORdns terra.com.br +nssearch
SOA dns.terra.com.br. sysadm.terra.com.br. 2012032908 7200 300 2419200 7200 from server b.dns.terra.com.br in 28 ms.
SOA dns.terra.com.br. sysadm.terra.com.br. 2012032908 7200 300 2419200 7200 from server c.dns.terra.com in 27 ms.
SOA dns.terra.com.br. sysadm.terra.com.br. 2012032908 7200 300 2419200 7200 from server d.dns.terra.com.br in 29 ms.
SOA dns.terra.com.br. sysadm.terra.com.br. 2012032908 7200 300 2419200 7200 from server a.dns.terra.com in 30 ms.

Exibindo toda a base DNS de um servidor (Para consultar, tem que tentar fazer um XFER, uma transferência de zona, e se passar por um servidor DNS secundário. Para corrigir isso no Infoblox limite os acessos na Zone Transfers (Allow zone transfers to) na "Grid DNS Properties"):

root@servidor:~# dig yahoo.com AXFR

Tentando se passar pelo próprio yahoo.com, dizendo que é o próprio servidor secundário, dessa forma:
root@servidor:~# dig -t AXFR yahoo.com @ns2.yahoo.com

Testes com resultado NÃO esperado:
root@servidor:~# dig -t axfr inter.net @ns02.eusc.inter.net
root@servidor:~# dig -t axfr assistec.net @SERVIDORdns

Resultado esperado:
; (1 server found)
;; global options: printcmd
; Transfer failed.

Resultado NÃO esperado:
; (1 server found)
;; global options: printcmd
assistec.net. 28800 IN SOA leandro.cestaro\@assistec.net. please_set_email.absolutely.nowhere. 5 10800 3600 2419200 900
assistec.net. 28800 IN NS ad_homolog.
assistec.net. 28800 IN NS master.assistec.net.
master.assistec.net. 28800 IN A @SERVIDORdns
assistec.net. 28800 IN SOA leandro.cestaro\@assistec.net. please_set_email.absolutely.nowhere. 5 10800 3600 2419200 900
;; Query time: 6 msec
;; SERVER: @SERVIDORdns#53(@SERVIDORdns)
;; WHEN: Fri Mar 30 10:23:26 2012
;; XFR size: 5 records (messages 1)

Obtendo respostas de consultas no formato BIND (A opção +multiline obtém as respostas dos registros SOA de modo detalhado, semelhante a maneira que você escreve os arquivos do Bind, listando o serial, a atualização (refresh), a nova tentativa de acesso (retry), a expiração registro e o tempo de vida da tabela (minimum):

root@servidor:~# dig @SERVIDORdns +nocmd uol.com.br any +multiline

;; ANSWER SECTION:
uol.com.br. 300 IN A 200.221.2.45
uol.com.br. 300 IN A 200.147.67.142
uol.com.br. 300 IN AAAA 2804:49c:319:430::100
uol.com.br. 18000 IN MX 10 mx.uol.com.br.
uol.com.br. 3600 IN TXT "v=spf1 ip4:200.221.11.0/24 ip4:200.221.29.0/24 ip4:200.147.97.208/28 ip4:187.17.116.0/24 ip4:200.98.217.0/24 ip4:200.147.1.0/22 ip4:200.147.34.0/24 ip4:200.147.32.240/28 ip4:200.147.33.192/26 ip4:200.147.35.104/27 ip4:200.147.54.0/23 -all"
uol.com.br. 3600 IN SOA eliot.uol.com.br. root.uol.com.br. (
2012032902 ; serial
7200 ; refresh (2 hours)
3600 ; retry (1 hour)
432000 ; expire (5 days)
3600 ; minimum (1 hour)
)
uol.com.br. 3600 IN NS charles.uol.com.br.
uol.com.br. 3600 IN NS eliot.uol.com.br.
uol.com.br. 3600 IN NS borges.uol.com.br.

Fazendo um traceroute de DNS:

Exibe toda a rota que o DNS fez para conseguir o IP do nome desejado, semelhante ao comando traceroute:

root@servidor:~# dig @SERVIDORdns uol.com.br +trace
;; global options: printcmd
. 517555 IN NS k.root-servers.net.
. 517555 IN NS c.root-servers.net.
. 517555 IN NS d.root-servers.net.
. 517555 IN NS j.root-servers.net.
. 517555 IN NS a.root-servers.net.
. 517555 IN NS b.root-servers.net.
. 517555 IN NS g.root-servers.net.
. 517555 IN NS i.root-servers.net.
. 517555 IN NS h.root-servers.net.
. 517555 IN NS f.root-servers.net.
. 517555 IN NS m.root-servers.net.
. 517555 IN NS e.root-servers.net.
. 517555 IN NS l.root-servers.net.
;; Received 228 bytes from @SERVIDORdns#53(@SERVIDORdns) in 4 ms

br. 172800 IN NS a.dns.br.
br. 172800 IN NS b.dns.br.
br. 172800 IN NS c.dns.br.
br. 172800 IN NS d.dns.br.
br. 172800 IN NS e.dns.br.
br. 172800 IN NS f.dns.br.
;; Received 280 bytes from 193.0.14.129#53(k.root-servers.net) in 182 ms

uol.com.br. 86400 IN NS eliot.uol.com.br.
uol.com.br. 86400 IN NS borges.uol.com.br.
uol.com.br. 86400 IN NS charles.uol.com.br.
;; Received 149 bytes from 200.160.0.10#53(a.dns.br) in 12 ms

uol.com.br. 300 IN A 200.147.67.142
uol.com.br. 300 IN A 200.221.2.45
uol.com.br. 3600 IN NS eliot.uol.com.br.
uol.com.br. 3600 IN NS borges.uol.com.br.
uol.com.br. 3600 IN NS charles.uol.com.br.
;; Received 171 bytes from 200.221.11.98#53(eliot.uol.com.br) in 13 ms

Descobrindo se o servidor DNS está vulnerável:

root@servidor:~# dig +short @SERVIDORdns porttest.dns-oarc.net TXT

Resultado NÃO esperado, servidor DNS vulnerável:
porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"200.xxx.xx.xx is POOR: 26 queries in 5.0 seconds from 1 ports with std dev 0"

Resultado esperado, servidor DNS OK:
porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"201.81.189.161 is GREAT: 26 queries in 7.8 seconds from 26 ports with std dev 18490"

########################################################################

RESUMO dos comandos utilizados:

Consulta completa:
root@servidor:~# dig www.dailson.com.br

Consulta simplificada:
root@servidor:~# dig dailson.com.br +noall +answer

Consulta aos servidores de nomes do Yahoo:
root@servidor:~# dig yahoo.com

Quero saber quem são os servidores de email do Yahoo:
root@servidor:~# dig yahoo.com MX

Para saber quem tem autoridade sobre o domínio yahoo.com (de forma simplificada):
root@servidor:~# dig yahoo.com NS +noall +answer

Agora só os servidores de email:
root@servidor:~# dig yahoo.com MX +noall +answer

Agora uma consulta generalizada, vamos pedir para o servidor listar tudo:
root@servidor:~# dig yahoo.com ANY +noall +answer
root@servidor:~# dig yahoo.com AXFR
root@servidor:~# dig -t AXFR yahoo.com @ns2.yahoo.com
root@servidor:~# dig -t AXFR yahoo.com @ns3.yahoo.com
root@servidor:~# dig -t AXFR yahoo.com @ns4.yahoo.com
root@servidor:~# dig -t AXFR yahoo.com @ns5.yahoo.com

Transferindo Zona:
root@servidor:~# dig -t axfr inter.net @ns02.eusc.inter.net
root@servidor:~# dig @luit.iitg.ernet.in iitg.ernet.in axfr

Listando os servidores que já tem endereços IPV6 na sua base.
root@servidor:~# dig yahoo.com AAAA
root@servidor:~# dig iana.org AAAA
root@servidor:~# dig isc.org AAAA

Trazendo o resultado no formato Bind:
root@servidor:~# dig +nocmd dsgx.org any +multiline
root@servidor:~# dig +nocmd og.edu any +multiline

Fazendo um traceroute de DNS:
root@servidor:~# dig www.uol.com.br +trace

Descobrindo as propriedades do SOA de um domínio:
root@servidor:~# dig uol.com.br +nssearcha DNS, normalmente é utilizado para identificar problemas de DNS.

Comentar


Código de segurança
Atualizar