Dig – команда Linux (DNS Lookup)

С помощью команды dig Вы можете запросить информацию о доменном имени у DNS-серверов. В этой статье описано 10 примеров использования команды dig.

1. Простой вывод команды dig

По-умолчанию при обычном запросе выводятся А записи, как показано ниже в выводе

$ dig google.com

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35727
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             73      IN      A       172.217.16.142

;; Query time: 16 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Jan 05 12:00:54 +03 2020
;; MSG SIZE  rcvd: 55

Команда dig содержит следующие секции:

Заголовок (Header): Здесь отображается версия dig, глобальные параметры, используемые командой dig, и несколько дополнительных сведений о заголовке.
Секция запроса (QUESTION SECTION): Отображает вопрос, который он задал DNS. То есть это Ваш запрос.
Секция ответа (ANSWER SECTION): Отображает ответ, который он получает от DNS. A записи в нашем случае.
Секция полномочий (AUTHORITY SECTION): Здесь отображается сервер DNS, который имеет полномочия отвечать на этот запрос. Отображает доступные NS серверы для google.com в нашем случае.
Секции дополнительные (ADDITIONAL SECTION): Здесь отображается IP адреса серверов имен, перечисленных в разделе полномочия.
В секции Статистика (Stats section) внизу отображается немного информации о команде dig включая сколько времени потребовалось для выполнения этого запроса.

2. Вывести только ANSWER SECTION в dig

Мы можем отключать разные секции этими параметрами:

+nocomments – отключить комментарии
+noauthority – отключить AUTHORITY SECTION
+noadditional – отключить ADDITIONAL SECTION
+nostats – отключить Stats section
+noanswer – отключить ANSWER SECTION (но нам это не надо, конечно)

Итак выведем только ANSWER SECTION:

$ dig google.com +nocomments +noquestion +noauthority +noadditional +nostats

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com +nocomments +noquestion +noauthority +noadditional +nostats
;; global options: +cmd
google.com.             156     IN      A       172.217.16.142

Вместо отключения каждой секции мы можем отключить все с помощью +noall и включить только секцию ответа +answer

$ dig google.com +noall +answer

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com +noall +answer
;; global options: +cmd
google.com.             3       IN      A       172.217.16.142

3. Запрос MX записей с помощью dig

Для запроса MX записей сделаем следующее:

$ dig google.com  MX +noall +answer

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com MX +noall +answer
;; global options: +cmd
google.com.             16      IN      MX      40 alt3.aspmx.l.google.com.
google.com.             16      IN      MX      50 alt4.aspmx.l.google.com.
google.com.             16      IN      MX      10 aspmx.l.google.com.
google.com.             16      IN      MX      20 alt1.aspmx.l.google.com.
google.com.             16      IN      MX      30 alt2.aspmx.l.google.com.

Или можно использовать -t

$ dig -t MX google.com +noall +answer

4. Запрос NS записей в dig

Чтобы узнать NS записи используйте эту команду:

$ dig google.com NS +noall +answer

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com NS +noall +answer
;; global options: +cmd
google.com.             7595    IN      NS      ns1.google.com.
google.com.             7595    IN      NS      ns4.google.com.
google.com.             7595    IN      NS      ns2.google.com.
google.com.             7595    IN      NS      ns3.google.com.

Можно использовать опцию -t

$ dig -t NS google.com +noall +answer

5. Показать все DNS записи с помощью dig

Чтобы узнать все записи (A, MX, NS, и т.п.), ипользуйте ANY

$ dig google.com ANY +noall +answer

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com ANY +noall +answer
;; global options: +cmd
google.com.             343     IN      MX      50 alt4.aspmx.l.google.com.
google.com.             343     IN      MX      20 alt1.aspmx.l.google.com.
google.com.             343     IN      MX      40 alt3.aspmx.l.google.com.
google.com.             343     IN      MX      10 aspmx.l.google.com.
google.com.             343     IN      MX      30 alt2.aspmx.l.google.com.
google.com.             259     IN      AAAA    2a00:1450:4001:808::200e
google.com.             140     IN      A       172.217.16.142
google.com.             7423    IN      NS      ns1.google.com.
google.com.             7423    IN      NS      ns4.google.com.
google.com.             7423    IN      NS      ns2.google.com.
google.com.             7423    IN      NS      ns3.google.com.

или -t ANY

$ dig -t ANY google.com  +noall +answer

6. Вывод в сокращенном виде в dig

Просто используем параметр +short и получаем только А запись

$ dig google.com +short
172.217.20.14

Получим NS записи в сокращенном виде

$ dig google.com ns +short
ns3.google.com.
ns2.google.com.
ns4.google.com.
ns1.google.com.

7. Обратная запись DNS (Reverse Look-up) с помощью dig

Используем параметр -x

$ dig -x 172.217.20.14 +short
bud02s28-in-f14.1e100.net.
ham02s13-in-f14.1e100.net.

Получим полный вывод, если уберем опцию +short

$ dig -x 209.132.183.81

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 172.217.20.14
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15962
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;14.20.217.172.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
14.20.217.172.in-addr.arpa. 7141 IN     PTR     ham02s13-in-f14.1e100.net.
14.20.217.172.in-addr.arpa. 7141 IN     PTR     bud02s28-in-f14.1e100.net.

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Jan 05 14:17:07 +03 2020
;; MSG SIZE  rcvd: 124

8. Как указать поределенный DNS сервер в dig

По-умолчанию dig используем DNS сервера указанные в Вашем файле /etc/resolv.conf

Используем параметр @сервер, если хотим указать другой сервер:

$ dig @8.8.8.8 google.com

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> @8.8.8.8 google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38493
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             58      IN      A       172.217.16.142

;; AUTHORITY SECTION:
google.com.             6721    IN      NS      ns2.google.com.
google.com.             6721    IN      NS      ns3.google.com.
google.com.             6721    IN      NS      ns1.google.com.
google.com.             6721    IN      NS      ns4.google.com.

;; Query time: 7 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jan 05 14:20:24 +03 2020
;; MSG SIZE  rcvd: 116

9. Как сделать массовые DNS запросы с помощью dig

Сначала нам нужно создать файл с доменными именами (например), которые указаны по одному в строку

$ vim names.txt

google.com
yandex.ru
yahoo.com

Теперь отправим команду dig -f имя_файла и посмотрим что получится:

$ dig -f names.txt +noall +answer

google.com.             129     IN      A       172.217.16.142
yandex.ru.              216     IN      A       77.88.55.88
yandex.ru.              216     IN      A       5.255.255.88
yandex.ru.              216     IN      A       77.88.55.50
yandex.ru.              216     IN      A       5.255.255.5
yahoo.com.              771     IN      A       98.138.219.232
yahoo.com.              771     IN      A       72.30.35.9
yahoo.com.              771     IN      A       98.137.246.8
yahoo.com.              771     IN      A       98.137.246.7
yahoo.com.              771     IN      A       98.138.219.231
yahoo.com.              771     IN      A       72.30.35.10

Как видим, мы получили А записи всех указанных доменов. Так же можно и с другими записями. Например MX:

$ dig -f names.txt MX +noall +answer

google.com.             599     IN      MX      20 alt1.aspmx.l.google.com.
google.com.             599     IN      MX      50 alt4.aspmx.l.google.com.
google.com.             599     IN      MX      40 alt3.aspmx.l.google.com.
google.com.             599     IN      MX      10 aspmx.l.google.com.
google.com.             599     IN      MX      30 alt2.aspmx.l.google.com.
yandex.ru.              221     IN      MX      10 mx.yandex.ru.
yahoo.com.              987     IN      MX      1 mta5.am0.yahoodns.net.
yahoo.com.              987     IN      MX      1 mta6.am0.yahoodns.net.
yahoo.com.              987     IN      MX      1 mta7.am0.yahoodns.net.

Мы можем так же одной командой обрабатывать несколько имен:

$ dig google.com mx +noall +answer yandex.ru ns +noall +answer

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com mx +noall +answer yandex.ru ns +noall +answer
;; global options: +cmd
google.com.             513     IN      MX      30 alt2.aspmx.l.google.com.
google.com.             513     IN      MX      10 aspmx.l.google.com.
google.com.             513     IN      MX      40 alt3.aspmx.l.google.com.
google.com.             513     IN      MX      50 alt4.aspmx.l.google.com.
google.com.             513     IN      MX      20 alt1.aspmx.l.google.com.
yandex.ru.              345600  IN      NS      ns1.yandex.ru.
yandex.ru.              345600  IN      NS      ns2.yandex.ru.
yandex.ru.              345600  IN      NS      ns9.z5h64q92x9.net.

10. Использование файла $HOME/.digrc для указания дефолтных настроек dig

Если, например, Вы всегда используете параметры “+noall +answer”, можете просто прописать их в файл .digrc и больше никогда не вводить:

$ cat $HOME/.digrc

+noall +answer

Теперь они всегда будут использоваться во всех командах

$ dig google.com

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> google.com +noall +answer
;; global options: +cmd
google.com.             3       IN      A       172.217.16.142

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Unlix © Все права защищены 2023

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!