DIG - Interagindo com o DNS

Dando continuidade ao assunto  DNS ( Domain Name Service) veremos agora como interagir com o serviço afim de obtermos as informações referentes aos registros e seus respectivos tipos. O comando DIG (domain information groper) é uma parte do BIND (Berkeley Internet Name Domain), ele nos dá uma interação direta via linha de comando com os servidores DNS. Por meio de consultas (queries) é possível obter respostas específicas sobre os dados contidos no banco de dados do servidor DNS. Vale aqui ressaltar que para instalar o DIG  não necessariamente é preciso instalar o BIND. No Linux ele é disponibilizado através do pacote bind-utils, dependendo da sua distribuição basta utilizar:

yum intall bind-utils
                                           
ou conforme o caso, utilizar:

apt-get install bind-utils                                       

Uma vez instalado vejamos a seguir como aproveitar ao máximo esta poderosa ferramenta:

Consulta de registros do tipo A (Address), Esta é uma das consultas mais simples porém a mais utilizada, nela podemos obter o ip que corresponde a um determinado nome: (Como o tipo A é o default da ferramenta DIG você pode omiti-lo, ou seja,  dig blog.rmerces.com apresenta o mesmo resultado que dig A blog.rmerces.com)


dig A blog.rmerces.com
; <<>> DiG 9.7.6-P1 <<>> A blog.rmerces.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65295
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;blog.rmerces.com. IN A
;; ANSWER SECTION:
blog.rmerces.com. 3600 IN CNAME ghs.google.com.
ghs.google.com. 601133 IN CNAME ghs.l.google.com.
ghs.l.google.com. 254 IN A 74.125.137.121
;; Query time: 294 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Aug 27 14:01:03 2013
;; MSG SIZE  rcvd: 95
Consulta de registros do tipo NS (Name Server), Este tipo de consulta é utilizado para informar qual o(s) servidor(ers) de DNS são responsáveis (autoritativo) por um determinado domínio:


dig NS rmerces.com
; <<>> DiG 9.7.6-P1 <<>> NS rmerces.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23719
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;rmerces.com. IN NS
;; ANSWER SECTION:
rmerces.com. 3600 IN NS ns37.domaincontrol.com.
;; Query time: 239 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Aug 27 14:51:03 2013
;; MSG SIZE  rcvd: 62
Consulta de registros do tipo MX (Mail Exchange), Nesta query podemos obter informações sobre o endereço correspondente ao servidor de e-mail  de um determinado domínio:


dig MX rmerces.com

; <<>> DiG 9.7.6-P1 <<>> MX rmerces.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26040
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;rmerces.com. IN MX
;; ANSWER SECTION:
rmerces.com. 604800 IN MX 10 ASPMX.L.GOOGLE.com.
rmerces.com. 604800 IN MX 20 ALT1.ASPMX.L.GOOGLE.com.
rmerces.com. 604800 IN MX 30 ALT2.ASPMX.L.GOOGLE.com.
rmerces.com. 604800 IN MX 40 ASPMX2.GOOGLEMAIL.com.
rmerces.com. 604800 IN MX 50 ASPMX3.GOOGLEMAIL.com.
;; Query time: 293 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Aug 27 14:52:46 2013
;; MSG SIZE  rcvd: 159
Nos exemplos acima todas as queries foram feitas diretamente para o servidor de nomes vinculados as configurações do sistema (/etc/resolv.conf). Utilizando a sintaxe @nome do servidor é possível direcionar a consulta para qualquer servidor de nomes. No exemplo abaixo a consulta está sendo feita diretamente no servidor ns37.domaincontrol.com

dig @ns37.domaincontrol.com A blog.rmerces.com 
; <<>> DiG 9.7.6-P1 <<>> @ns37.domaincontrol.com A blog.rmerces.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3674
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;blog.rmerces.com. IN A
;; ANSWER SECTION:
blog.rmerces.com. 3600 IN CNAME ghs.google.com.
;; Query time: 323 msec
;; SERVER: 216.69.185.19#53(216.69.185.19)
;; WHEN: Tue Aug 27 15:01:54 2013
;; MSG SIZE  rcvd: 59
Além da utilização básica demostrada acima, o DIG conta com inúmeros outros recursos, veja mais estes exemplos:

Para visualizar todo o conjunto (A, NS, MX, etc.) utilize o parâmetro ANY.

dig ANY rmerces.com
; <<>> DiG 9.7.6-P1 <<>> ANY rmerces.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58228
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;rmerces.com. IN ANY
;; ANSWER SECTION:
rmerces.com. 600 IN A 216.239.32.21
rmerces.com. 600 IN A 216.239.34.21
rmerces.com. 600 IN A 216.239.36.21
rmerces.com. 600 IN A 216.239.38.21
rmerces.com. 21600 IN MX 10 ASPMX.L.GOOGLE.com.
rmerces.com. 21600 IN MX 20 ALT1.ASPMX.L.GOOGLE.com.
rmerces.com. 21600 IN MX 30 ALT2.ASPMX.L.GOOGLE.com.
rmerces.com. 21600 IN MX 40 ASPMX2.GOOGLEMAIL.com.
rmerces.com. 21600 IN MX 50 ASPMX3.GOOGLEMAIL.com.
rmerces.com. 3600 IN NS ns37.domaincontrol.com.
rmerces.com. 3600 IN SOA ns37.domaincontrol.com. dns.jomax.net. 2013080600 28800 7200 604800 3600
;; Query time: 451 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Tue Aug 27 15:09:40 2013
;; MSG SIZE  rcvd: 305
Para respostas "curtas" sem as demais referências utilize o parâmetro +short

dig ANY rmerces.com +short
216.239.32.21
216.239.34.21
216.239.36.21
216.239.38.21
10 ASPMX.L.GOOGLE.com.
20 ALT1.ASPMX.L.GOOGLE.com.
30 ALT2.ASPMX.L.GOOGLE.com.
40 ASPMX2.GOOGLEMAIL.com.
50 ASPMX3.GOOGLEMAIL.com.
ns37.domaincontrol.com.
ns37.domaincontrol.com. dns.jomax.net. 2013080600 28800 7200 604800 3600
Você também pode exibir apenas uma parte da resposta suprimindo as demais informações, no exemplo a seguir só é exibida a parte referente a resposta do servidor:

dig A  blog.rmerces.com +noall +answer
; <<>> DiG 9.7.6-P1 <<>> A blog.rmerces.com +noall +answer
;; global options: +cmd
blog.rmerces.com. 3587 IN CNAME ghs.google.com.
ghs.google.com. 583060 IN CNAME ghs.l.google.com.
ghs.l.google.com. 193 IN A 74.125.140.121
Não deixe de consultar o man e testar os "milhões" de opções disponíveis !
DIG - Interagindo com o DNS DIG - Interagindo com o DNS Reviewed by Unknown on terça-feira, agosto 27, 2013 Rating: 5

2 comentários

  1. Muito interessante, mas isso tem também pra Windows!? :)

    ResponderExcluir
    Respostas
    1. Bruno,

      No janelento por default você conta com o nslookup (ferramenta com menos recursos) porém você pode instalar o DIG for windows...
      veja o link http://members.shaw.ca/nicholas.fong/dig/

      Excluir