Содержание

DIG Работа с консольной утилитой

DIG (domain information groper) утилита для обращения к системе DNS.
Утилита DIG входит в стандартный комплект DNS сервера BIND.

Вывод команды без ключей и дополнительных параметров.

По умолчанию получаем A-запись домена (IP-адрес)

$ dig bogachev.biz

; <<>> DiG 9.8.3-P1 <<>> bogachev.biz
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29922
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;bogachev.biz.   IN    A

;; ANSWER SECTION:
bogachev.biz.        21600    IN    A    188.64.175.175

;; Query time: 58 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Tue Dec 20 19:56:41 2016
;; MSG SIZE  rcvd: 46

Давайте рассмотрим разделы подробней:

Последняя секция это статистика по запросу (служебная информация) - время выполнения запроса, имя DNS-сервера который запрашивался, когда был создан запрос и размер сообщения.

По необходимости мы можем выполнить запрос от определенного DNS-сервер, например:

$ dig @ns1.yandex.ru ya.ru

; <<>> DiG 9.8.3-P1 <<>> @ns1.yandex.ru ya.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5973
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 4
;; WARNING: recursion requested but not available

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

;; ANSWER SECTION:
ya.ru.            7200    IN    A    213.180.193.3
ya.ru.            7200    IN    A    93.158.134.3
ya.ru.            7200    IN    A    213.180.204.3

;; AUTHORITY SECTION:
ya.ru.            7200    IN    NS    ns1.yandex.ru.
ya.ru.            7200    IN    NS    ns2.yandex.ru.

;; ADDITIONAL SECTION:
ns1.yandex.ru.        345600    IN    A    213.180.193.1
ns2.yandex.ru.        345600    IN    A    93.158.134.1
ns1.yandex.ru.        3600    IN    AAAA    2a02:6b8::1
ns2.yandex.ru.        3600    IN    AAAA    2a02:6b8:0:1::1

;; Query time: 6 msec
;; SERVER: 213.180.193.1#53(213.180.193.1)
;; WHEN: Tue Dec 20 20:04:44 2016
;; MSG SIZE  rcvd: 202

Наблюдаем две новые секции: AUTHORITY SECTION: Показывает имена DNS-серверов обработавших наш запрос; ADDITIONAL SECTION: Показывает ip-адреса этих DNS-серверов (из секции AUTHORITY SECTION) На примере моего домена дополнительных строк не появится, поэтому я попробую на примере яндекса.

Вывод только секции ANSWER SECTION .

В большинстве случаев требуется только IP адрес домена, а именно вывод секции ANSWER SECTION.

Для этого существуют ключи:

$ dig ya.ru +nocomments +noquestion +noauthority +noadditional +nostats

; <<>> DiG 9.8.3-P1 <<>> ya.ru +nocomments +noquestion +noauthority +noadditional +nostats
;; global options: +cmd
ya.ru.   2801    IN    A    93.158.134.3
ya.ru.            2801    IN    A    213.180.193.3
ya.ru.            2801    IN    A    213.180.204.3

Можно упростить задачу и для этого существует ключ +noall, который выключает все секции. Таким образом мы используем ключ +noall и добавляем ключ +answer, тем самым уменьшая длину запроса.

$ dig ya.ru +noall +answer

; <<>> DiG 9.8.3-P1 <<>> ya.ru +noall +answer
;; global options: +cmd
ya.ru.   2737    IN    A    93.158.134.3
ya.ru.            2737    IN    A    213.180.193.3
ya.ru.            2737    IN    A    213.180.204.3

Запрос NS-записи.

Для запроса NS-записей домена используем аргумент NS, а также используемые ранее ключи, чтобы отбросить ненужную информацию.

$ dig NS ya.ru +noall +answer

; <<>> DiG 9.8.3-P1 <<>> NS ya.ru +noall +answer
;; global options: +cmd
ya.ru.   4990    IN    NS    ns1.yandex.ru.
ya.ru.            4990    IN    NS    ns2.yandex.ru.

Запрос MX-записи.

По аналогии с предыдущим пунктом, используем аргумент MX.

$ dig MX ya.ru +noall +answer

; <<>> DiG 9.8.3-P1 <<>> MX ya.ru +noall +answer
;; global options: +cmd
ya.ru.   4881    IN    MX    10 mx.yandex.ru.

Просмотр всех типов DNS -записей.

$ dig ya.ru ANY +noall +answer

; <<>> DiG 9.8.3-P1 <<>> ya.ru ANY +noall +answer
;; global options: +cmd
ya.ru.   3600    IN    SOA    ns1.yandex.ru. sysadmin.yandex.ru. 2016120900 900 600 2592000 900
ya.ru.            1733    IN    TXT    "v=spf1 redirect=_spf.yandex.ru"
ya.ru.            4835    IN    MX    10 mx.yandex.ru.
ya.ru.            122    IN    AAAA    2a02:6b8::3
ya.ru.            2387    IN    A    93.158.134.3
ya.ru.            2387    IN    A    213.180.193.3
ya.ru.            2387    IN    A    213.180.204.3
ya.ru.            4759    IN    NS    ns1.yandex.ru.
ya.ru.            4759    IN    NS    ns2.yandex.ru.

Краткий вывод DIG.

Для просмотра только IP-адрес, без лишней информации, используем опцию +short.

$ dig ya.ru ANY +short
ns1.yandex.ru. sysadmin.yandex.ru. 2016120900 900 600 2592000 900
"v=spf1 redirect=_spf.yandex.ru"
10 mx.yandex.ru.
2a02:6b8::3
93.158.134.3
213.180.193.3
213.180.204.3
ns1.yandex.ru.
ns2.yandex.ru.

Просмотр информации об обратной зоне домена ( PTR ).

Для просмотра обратной зоны необходимо использовать ключ Допустим хотим узнать PTR запись для IP-адреса 93.158.134.3

$ dig -x 93.158.134.3

; <<>> DiG 9.8.3-P1 <<>> -x 93.158.134.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28329
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

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

;; ANSWER SECTION:
3.134.158.93.in-addr.arpa. 2099    IN    PTR    www.yandex.ru.

;; AUTHORITY SECTION:
134.158.93.in-addr.arpa. 18717    IN    NS    ns3.yandex.ru.
134.158.93.in-addr.arpa. 18717    IN    NS    ns4.yandex.ru.

;; Query time: 4 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Tue Dec 20 20:24:08 2016
;; MSG SIZE  rcvd: 106

Запрос информации о нескольких доменах.

Для запроса информации о нескольких доменах возможно использование текстового файла со списком доменов.

$ cat lookup.txt
bogachev.biz
ya.ru

Далее используем ключ -f для чтения информации из файла:

$ dig -f lookup.txt +noall +answer
bogachev.biz.   19762    IN    A    188.64.175.175
ya.ru.            1749    IN    A    93.158.134.3
ya.ru.            1749    IN    A    213.180.193.3
ya.ru.            1749    IN    A    213.180.204.3
google.com.        135    IN    A    81.200.2.185
google.com.        135    IN    A    81.200.2.180
google.com.        135    IN    A    81.200.2.184
google.com.        135    IN    A    81.200.2.176
google.com.        135    IN    A    81.200.2.179
google.com.        135    IN    A    81.200.2.183
google.com.        135    IN    A    81.200.2.186
google.com.        135    IN    A    81.200.2.187
google.com.        135    IN    A    81.200.2.177
google.com.        135    IN    A    81.200.2.182
google.com.        135    IN    A    81.200.2.181
google.com.        135    IN    A    81.200.2.178

Также можно комбинировать тип DNS записи c опцией -f, например для вывода MX записей:

$ dig MX -f lookup.txt +noall +answer
bogachev.biz.   21600    IN    MX    10 mx.yandex.net.
ya.ru.            4138    IN    MX    10 mx.yandex.ru.
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    50 alt4.aspmx.l.google.com.
google.com.        600    IN    MX    20 alt1.aspmx.l.google.com.
google.com.        600    IN    MX    40 alt3.aspmx.l.google.com.

Возможно перечисление доменов непосредственно в командной строке:

$ dig ya.ru A +noall +answer google.ru MX +noall +answer

; <<>> DiG 9.8.3-P1 <<>> ya.ru A +noall +answer google.ru MX +noall +answer
;; global options: +cmd
ya.ru.   1632    IN    A    93.158.134.3
ya.ru.            1632    IN    A    213.180.193.3
ya.ru.            1632    IN    A    213.180.204.3
google.ru.        600    IN    MX    30 alt2.aspmx.l.google.com.
google.ru.        600    IN    MX    20 alt1.aspmx.l.google.com.
google.ru.        600    IN    MX    50 alt4.aspmx.l.google.com.
google.ru.        600    IN    MX    10 aspmx.l.google.com.
google.ru.        600    IN    MX    40 alt3.aspmx.l.google.com.

Изменение параметров по умолчанию для команды DIG.

Например если мы хотим, чтобы утилита DIG по умолчанию выводила только секцию ответа ANSWER SECTION, то для этого необходимо внести в файл $HOME/.digrc необходимые ключи, в нашем случае это +noall +answer.

Создать файл содержащий адреса корневых серверов.

$ dig @f.root-servers.net . ns >> root.cache

; <<>> DiG 9.8.3-P1 <<>> @f.root-servers.net . ns
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26320
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 15
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;.   IN    NS

;; ANSWER SECTION:
.            518400    IN    NS    f.root-servers.net.
.            518400    IN    NS    d.root-servers.net.
.            518400    IN    NS    k.root-servers.net.
.            518400    IN    NS    l.root-servers.net.
.            518400    IN    NS    c.root-servers.net.
.            518400    IN    NS    b.root-servers.net.
.            518400    IN    NS    i.root-servers.net.
.            518400    IN    NS    e.root-servers.net.
.            518400    IN    NS    g.root-servers.net.
.            518400    IN    NS    h.root-servers.net.
.            518400    IN    NS    a.root-servers.net.
.            518400    IN    NS    j.root-servers.net.
.            518400    IN    NS    m.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.    3600000    IN    A    198.41.0.4
b.root-servers.net.    3600000    IN    A    192.228.79.201
c.root-servers.net.    3600000    IN    A    192.33.4.12
d.root-servers.net.    3600000    IN    A    199.7.91.13
e.root-servers.net.    3600000    IN    A    192.203.230.10
f.root-servers.net.    3600000    IN    A    192.5.5.241
g.root-servers.net.    3600000    IN    A    192.112.36.4
h.root-servers.net.    3600000    IN    A    198.97.190.53
i.root-servers.net.    3600000    IN    A    192.36.148.17
j.root-servers.net.    3600000    IN    A    192.58.128.30
k.root-servers.net.    3600000    IN    A    193.0.14.129
l.root-servers.net.    3600000    IN    A    199.7.83.42
m.root-servers.net.    3600000    IN    A    202.12.27.33
a.root-servers.net.    3600000    IN    AAAA    2001:503:ba3e::2:30
b.root-servers.net.    3600000    IN    AAAA    2001:500:84::b

;; Query time: 3 msec
;; SERVER: 192.5.5.241#53(192.5.5.241)
;; WHEN: Tue Dec 20 20:32:50 2016
;; MSG SIZE  rcvd: 492

Вывести трассу DNS запросов к запрашиваему домену.

$ dig +trace ya.ru

; <<>> DiG 9.8.3-P1 <<>> +trace ya.ru
;; global options: +cmd
;; Received 12 bytes from 192.168.0.1#53(192.168.0.1) in 8 ms

Если необходимо узнать версию DNS -сервера.

$ dig -t txt -c chaos VERSION.BIND @18X.X4.XX8.XX

; <<>> DiG 9.8.3-P1 <<>> -t txt -c chaos VERSION.BIND @18X.X4.XX8.XX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18214
;; 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.9.5-P1"

;; AUTHORITY SECTION:
version.bind.        0    CH    NS    version.bind.

;; Query time: 5 msec
;; SERVER: 18X.X4.XX8.XX#53(18X.X4.XX8.XX)
;; WHEN: Tue Dec 20 20:37:28 2016
;; MSG SIZE  rcvd: 77

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

dig @ns2.yandex.ru bogachev.biz. axfr

Для других параметров и опций читаем man dig.