Loading

Копаем DNS с помощью - Dig

20.12.2010 - 08:37

Dig (domain information groper) - утилита для роботы с DNS серверами. Входит в состав BIND. При запуске она отображает свою версию программы, которая обычно совпадает с версией BIND. Опишу несколько моментов, как ней пользоваться:
Для того, чтобы просто получить IP-адрес по имени хоста необходимо выполнить:

[root@router ~]# dig unigx.org.ua
; <<>> DiG 9.4.2 <<>> unigx.org.ua
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37503
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; QUESTION SECTION:
;unigx.org.ua.                  IN      A

;; ANSWER SECTION:
unigx.org.ua.           3600    IN      A       82.207.87.36

;; AUTHORITY SECTION:
unigx.org.ua.           3600    IN      NS      ns.unigx.org.ua.
unigx.org.ua.           3600    IN      NS      ns.yuren.com.ua.

;; ADDITIONAL SECTION:
ns.unigx.org.ua.        3600    IN      A       82.207.87.36

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 20 08:17:26 2010
;; MSG SIZE  rcvd: 106

Для того, что бы получить доменное имя по IP-адресу (PTR-запись) для поиска в обратных зонах, необходимо DIG указать с параметром "-x":

[root@router ~]# dig -x 82.207.87.36
; <<>> DiG 9.4.2 <<>> -x 82.207.87.36
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46705
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; QUESTION SECTION:
;36.87.207.82.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
36.87.207.82.in-addr.arpa. 67156 IN     PTR     mail.shzzch.com.

;; AUTHORITY SECTION:
87.207.82.in-addr.arpa. 16737   IN      NS      ns2.ukrtelecom.ua.
87.207.82.in-addr.arpa. 16737   IN      NS      expert.ukrtel.net.

;; ADDITIONAL SECTION:
expert.ukrtel.net.      5922    IN      A       195.5.6.10

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 20 08:21:46 2010
;; MSG SIZE  rcvd: 150

Для просмотра MX- записи для домена, необходимо указать парамерт "mx":

[root@router ~]# dig ya.ru mx
; <<>> DiG 9.4.2 <<>> ya.ru mx
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3248
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;ya.ru.                         IN      MX

;; ANSWER SECTION:
ya.ru.                  592     IN      MX      10 mx.yandex.ru.

;; AUTHORITY SECTION:
ya.ru.                  162     IN      NS      ns1.yandex.ru.
ya.ru.                  162     IN      NS      ns5.yandex.ru.

;; ADDITIONAL SECTION:
ns1.yandex.ru.          86602   IN      A       213.180.193.1
ns5.yandex.ru.          86602   IN      A       213.180.204.1

;; Query time: 202 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 20 08:57:47 2010
;; MSG SIZE  rcvd: 117

Для отображения только имени хоста, можно использовать параметр "+short":

[root@router ~]# dig -x 82.207.87.36 +short
mail.shzzch.com.

По умолчанию в dig, отключен список поиска в /etc/resolv.conf, включаем с помощью опции в запросе "+search":

[root@router ~]# dig ya.ru +search +short
87.250.251.3
93.158.134.3
213.180.204.3
77.88.21.3
87.250.250.3

Для того, что бы узнать серийный номер зоны, запускаем с параметром "soa":

[root@router ~]# dig ya.ru soa +short
ns1.yandex.ru. sysadmin.yandex.ru. 2010121600 10800 900 2592000 900

Если необходимо узнать версию DNS-сервера(не есть гуд!):

[root@router ~]# dig -t txt -c chaos VERSION.BIND @ns1.yandex.ru
; <<>> DiG 9.4.2 <<>> -t txt -c chaos VERSION.BIND @ns1.yandex.ru
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44195
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;VERSION.BIND.                  CH      TXT

;; ANSWER SECTION:
VERSION.BIND.           0       CH      TXT     "9.5.2-P4"

;; AUTHORITY SECTION:
VERSION.BIND.           0       CH      NS      VERSION.BIND.

;; Query time: 51 msec
;; SERVER: 213.180.193.1#53(213.180.193.1)
;; WHEN: Mon Dec 20 09:18:57 2010
;; MSG SIZE  rcvd: 65

Для проверки возможности копирования зоны с с master сервера на slave сервер:

[root@router ~]#  dig @ns.yuren.com.ua unigx.org.ua. axfr
; <<>> DiG 9.4.2 <<>> @ns.yuren.com.ua unigx.org.ua. axfr
; (1 server found)
;; global options:  printcmd
unigx.org.ua.           3600    IN      SOA     ns.unigx.org.ua. admin.shzzch.com. 2010112501 3600 900 3600000 3600
unigx.org.ua.           3600    IN      NS      ns.unigx.org.ua.
unigx.org.ua.           3600    IN      NS      ns.yuren.com.ua.
unigx.org.ua.           3600    IN      A       82.207.87.36
files.unigx.org.ua.     3600    IN      A       82.207.87.36
forum.unigx.org.ua.     3600    IN      A       82.207.87.36
ftp.unigx.org.ua.       3600    IN      A       82.207.87.36
ns.unigx.org.ua.        3600    IN      A       82.207.87.36
www.unigx.org.ua.       3600    IN      A       82.207.87.36
unigx.org.ua.           3600    IN      SOA     ns.unigx.org.ua. admin.shzzch.com. 2010112501 3600 900 3600000 3600
;; Query time: 462 msec
;; SERVER: 193.108.251.254#53(193.108.251.254)
;; WHEN: Mon Dec 20 09:43:04 2010
;; XFR size: 10 records (messages 1, bytes 278)

Проверим отдает ли DNS-сервер unigx.org.ua, зону unix.ck.ua:

vlymar@mops:~$ dig @unigx.org.ua unix.ck.ua
; <<>> DiG 9.4.3-P3 <<>> @unigx.org.ua unix.ck.ua
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20484
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;unix.ck.ua.                    IN      A

;; ANSWER SECTION:
unix.ck.ua.             3600    IN      A       82.207.87.36

;; AUTHORITY SECTION:
unix.ck.ua.             3600    IN      NS      ns.yuren.com.ua.
unix.ck.ua.             3600    IN      NS      ns.unix.ck.ua.

;; ADDITIONAL SECTION:
ns.unix.ck.ua.          3600    IN      A       82.207.87.36

;; Query time: 134 msec
;; SERVER: 82.207.87.36#53(82.207.87.36)
;; WHEN: Mon Dec 20 09:53:12 2010
;; MSG SIZE  rcvd: 104

Dig посылает DNS-серверу unigx.org.ua, запрос SOA-записи для unix.ck.ua:

vlymar@mops:~$ dig @unigx.org.ua unix.ck.ua soa
; <<>> DiG 9.4.3-P3 <<>> @unigx.org.ua unix.ck.ua soa
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32124
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;unix.ck.ua.                    IN      SOA

;; ANSWER SECTION:
unix.ck.ua.             3600    IN      SOA     ns.unix.ck.ua. admin.shzzch.com. 2010121901 3600 900 3600000 3600

;; AUTHORITY SECTION:
unix.ck.ua.             3600    IN      NS      ns.unix.ck.ua.
unix.ck.ua.             3600    IN      NS      ns.yuren.com.ua.

;; ADDITIONAL SECTION:
ns.unix.ck.ua.          3600    IN      A       82.207.87.36

;; Query time: 185 msec
;; SERVER: 82.207.87.36#53(82.207.87.36)
;; WHEN: Mon Dec 20 10:01:55 2010
;; MSG SIZE  rcvd: 140

Для того, что бы просмотреть трассу поиска информации в DNS, в dig предусмотрена опция "+trace":

[root@srv ~]# dig unix.ck.ua +trace
; <<>> DiG 9.6.2-P1 <<>> unix.ck.ua +trace
;; global options: +cmd
.                       517876  IN      NS      b.root-servers.net.
.                       517876  IN      NS      l.root-servers.net.
.                       517876  IN      NS      k.root-servers.net.
.                       517876  IN      NS      m.root-servers.net.
.                       517876  IN      NS      h.root-servers.net.
.                       517876  IN      NS      e.root-servers.net.
.                       517876  IN      NS      a.root-servers.net.
.                       517876  IN      NS      d.root-servers.net.
.                       517876  IN      NS      g.root-servers.net.
.                       517876  IN      NS      i.root-servers.net.
.                       517876  IN      NS      c.root-servers.net.
.                       517876  IN      NS      j.root-servers.net.
.                       517876  IN      NS      f.root-servers.net.
;; Received 244 bytes from 127.0.0.1#53(127.0.0.1) in 2 ms

ua.                     172800  IN      NS      cd1.ns.ua.
ua.                     172800  IN      NS      he1.ns.ua.
ua.                     172800  IN      NS      ho1.ns.ua.
ua.                     172800  IN      NS      pch.ns.ua.
ua.                     172800  IN      NS      ya1.ns.ua.
ua.                     172800  IN      NS      ns-ua.ripe.net.
ua.                     172800  IN      NS      sunic.sunet.se.
ua.                     172800  IN      NS      sns-pb.isc.org.
;; Received 503 bytes from 199.7.83.42#53(l.root-servers.net) in 6 ms

ck.ua.                  172800  IN      NS      ba1.ns.ua.
ck.ua.                  172800  IN      NS      nix.net.ua.
ck.ua.                  172800  IN      NS      ns.ctsense.net.
ck.ua.                  172800  IN      NS      ns1.megastyle.com.
ck.ua.                  172800  IN      NS      ns2.megastyle.com.
;; Received 164 bytes from 216.218.215.27#53(he1.ns.ua) in 227 ms

unix.ck.ua.             86400   IN      NS      ns.yuren.com.ua.
unix.ck.ua.             86400   IN      NS      ns.unigx.org.ua.
;; Received 82 bytes from 72.20.97.27#53(ba1.ns.ua) in 204 ms

unix.ck.ua.             3600    IN      A       82.207.87.36
unix.ck.ua.             3600    IN      NS      ns.unigx.org.ua.
unix.ck.ua.             3600    IN      NS      ns.yuren.com.ua.
;; Received 114 bytes from 193.108.251.254#53(ns.yuren.com.ua) in 1 ms

Для просмотра дополнительной текстовой информации о домене (запись TXT), необходимо выполнить:

[root@router /etc/rc.d]# dig unix.ck.ua txt | grep TXT
unix.ck.ua.             3600    IN      TXT     "v=spf1 include:_spf.google.com -all"

Ваша оценка: Нет Средняя: 4.8 (16 votes)