Меню Рубрики

Dig команда в linux

Dig команда в linux

Команда dig позволяет использовать одноименную утилиту для отправки запросов серверам доменных имен. Данная утилита входит в состав сервера доменных имен BIND, который включен в стандартный комплект поставки большинства дистрибутивов. При использовании dig пользователь может указать имя сервера доменных имен, который должен обработать запрос, поэтому рассматриваемая утилита используется главным образом для диагностики серверов доменных имен.

Базовый синтаксис команды выглядит следующим образом:

$ dig [@имя-сервера-доменных-имен] [параметры] имя-домена-или-IP-адрес

Утилита поддерживает ряд параметров командной строки. Наиболее полезным параметром является параметр -t, позволяющий указать интересующий пользователя тип ресурсной записи (вместо этого параметра может использоваться указание типа ресурсной записи). В частности, поддерживаются следующие типы ресурсных записей:

  • A (адрес IPv4)
  • AAAA (адрес IPv6)
  • CNAME (каноническое имя или псевдоним)
  • MX (имя узла сервера электронной почты)
  • NS (имя сервера доменных имен)
  • PTR (указатель на каноническое имя, используемый для обратных разрешений доменных имен)
  • SOA (источник информации и доменной зоне)
  • TXT (произвольная текстовая запись)

По умолчанию утилита осуществляет запросы значений ресурсных записей типа A. При этом существует абстрактный тип ресурсных записей ANY, позволяющий вывести значения всех доступных ресурсных записей. Параметр -x позволяет осуществить обратное разрешение доменного имени. В случае необходимости получения информации о множестве доменных имен следует использовать параметр -f с путем к файлу, содержащему список этих имен (по одному имени в строке).

Вывод утилиты разделен на ряд секций:

  • Заголовок: содержит информацию о версии утилиты, ее параметрах и флагах.
  • QUESTION SECTION: содержит информацию о запросе, передаваемом серверу доменных имен.
  • ANSWER SECTION: содержит информацию об ответе, полученном от сервера доменных имен.
  • AUTHORITY SECTION: содержит имя сервера или серверов доменных имен, которые предоставляют информацию об указанном имени.
  • ADDITIONAL SECTION: содержит IP-адреса серверов доменных имен, перечисленных в предыдущей секции.
  • Область статистики: содержит статистическую информацию, такую, как время выполнения запроса и размер принятого сообщения.

Пользователь может скрыть комментарии (заголовок, область статистики и названия секций) с помощью параметра +nocomments, секцию AUTHORITY SECTION с помощью параметра +noauthority, секцию ADDITIONAL SECTION с помощью параметра +noadditional, область статистики с помощью параметра +nostats и секцию ANSWER SECTION с помощью параметра +noanswer (хотя это и не совсем разумно). Существуют и обратные параметры без префикса no, которые могут использоваться для показа отдельных секций (например, для показа лишь секции ANSWER SECTION достаточно использовать комбинацию параметров +noall и +answer). Все параметры, которые должны использоваться утилитой по умолчанию, могут быть помещены в скрытый файл конфигурации .digrc в домашней директории пользователя.

Примеры использования

Получение IP-адреса сервера по имени домена

Для получения IP-адреса сервера ресурса по имени его домена достаточно передать утилите имя домена без каких-либо параметров:

В результате будет получен следующий вывод, содержащий достаточное количество ненужной информации:

; > DiG 9.11.1-P2-RedHat-9.11.1-2.P2.fc26 > linux-faq.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;linux-faq.ru. IN A

;; ANSWER SECTION:
linux-faq.ru. 834 IN A 54.172.136.192

;; Query time: 0 msec
;; SERVER: 192.168.188.253#53(192.168.188.253)
;; WHEN: Пн июл 24 02:04:41 MSK 2017
;; MSG SIZE rcvd: 57

Несложно заметить, что сервер имеет IP-адрес 54.172.136.192. Для получения более компактного вывода может использоваться следующая команда:

$ dig +noall +answer linux-faq.ru

Теперь вывод будет содержать лишь наиболее важную информацию:

linux-faq.ru. 700 IN A 54.172.136.192

Получение имен доменов почтовых серверов, связанных с доменом

Для получения имен доменов почтовых серверов, связанных с заданным доменом, нужно четко указывать тип ресурсной записи MX. Для этого может использоваться параметр -t:

$ dig -t MX linux-faq.ru +noall +answer

Также параметр -t может просто пропускаться:

$ dig MX linux-faq.ru +noall +answer

В обоих случаях будет получен аналогичный вывод:

; > DiG 9.11.1-P2-RedHat-9.11.1-2.P2.fc26 > MX linux-faq.ru +noall +answer
;; global options: +cmd
linux-faq.ru. 9728 IN MX 10 emx.mail.ru.

Получение имен серверов доменных имен, связанных с доменом

Для получения имен серверов доменных имен, связанных с заданным доменом, нужно четко указывать тип ресурсной записи NS. Для этого может использоваться параметр -t:

$ dig -t NS linux-faq.ru +noall +answer

Также параметр -t может просто пропускаться:

$ dig NS linux-faq.ru +noall +answer

В обоих случаях будет получен аналогичный вывод:

; > DiG 9.11.1-P2-RedHat-9.11.1-2.P2.fc26 > NS linux-faq.ru +noall +answer
;; global options: +cmd
linux-faq.ru. 301 IN NS ns2.r01.ru.
linux-faq.ru. 301 IN NS ns1.r01.ru.

Получение значений всех доступных ресурсных записей

Для получения значений всех доступных ресурсных записей, связанных с заданным доменом, нужно использовать тип ресурсной записи ANY. Для этого может использоваться параметр -t:

$ dig -t ANY linux-faq.ru +noall +answer

Также параметр -t может просто пропускаться:

$ dig ANY linux-faq.ru +noall +answer

В обоих случаях будет получен аналогичный вывод:

; > DiG 9.11.1-P2-RedHat-9.11.1-2.P2.fc26 > ANY linux-faq.ru +noall +answer
;; global options: +cmd
linux-faq.ru. 9431 IN MX 10 emx.mail.ru.
linux-faq.ru. 163 IN A 54.172.136.192
linux-faq.ru. 163 IN NS ns2.r01.ru.
linux-faq.ru. 163 IN NS ns1.r01.ru.

Обратное разрешение доменного имени

Для того, чтобы осуществить обратное разрешение доменного имени достаточно использовать параметр -x и задать IP-адрес сервера:

Использование определенного сервера доменных имен

Для использования определенного сервера доменных имен необходимо указать его имя или IP-адрес после символа @:

Источник

10 примеров использования команды dig для просмотра параметров DNS (DNS Lookup) в Linux

Итак, что такое dig?

dig (англ. слово «копать», а формально — сокращение от «domain information groper») — утилита (DNS-клиент), предоставляющая пользователю интерфейс командной строки для обращения к системе DNS. Позволяет задавать различные типы запросов и запрашивать произвольно указываемые сервера. Является аналогом утилиты nslookup.

Утилита dig входит в стандартный комплект DNS сервера BIND.

1. Простой вывод команды dig (для понимания вывода, без доп.параметров )

Когда вы задаете имя домена в команде dig по-умолчанию вы получаете A-запись домена (ip-адрес сайта (домена) который мы запрашивали) как показано на листинге ниже

В примере можно увидеть A-записи домена ya.ru в разделе ANSWER SECTION

Давайте рассмотрим разделы данного вывода подробней:
— HEADER (заголовок): показывает версию dig, глобальные опции используемые с командой и другую дополнительную информацию
— QUESTION SECTION (секция запроса): Показывает наш запрос, то бишь мы запросили показать A-запись (команда dig без параметров) для домена ya.ru
— ANSWER SECTION (секция ответа): Показывает ответ полученный от DNS, в нашем случае показывает A-запись для ya.ru
Последняя секция это статистика по запросу (служебная информация) — время выполнения запроса, имя DNS-сервера который запрашивался, когда был создан запрос и размер сообщения

Так же можно выполнить опрос конкретного DNS-сервера:

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

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

В большинстве случаев требуется только ip адрес домена, то бишь вывод секции «ANSWER SECTION»
Для этого существуют следующие ключи:
-+nocomments — отключает линию комментариев
-+noauthority — отключает секцию «AUTHORITY SECTION»
-+noadditional – отключает секцию «ADDITIONAL SECTION»
-+nostats – отключает секцию статистики
-+noanswer – выключает секцию ответа (ANSWER SECTION)

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

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

Для запроса MX-записи домена мы используем одноименный аргумент командной строки (MX)

Этот же запрос можно выполнить с ключом -t (тип)

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

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

Вы также можете использовать ключ -t для указания типа запроса

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

Для этого используется ключ ANY

Также допустим ключ -t

6. Краткий вывод команды dig

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

Вы также можете вывести информацию по любому виду информации с ключем +short
Пример:

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

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

Для вывода полной информации убираем ключ +short

8. Использование конкретного DNS-сервера для выполнения запроса

Для использования конкретного DNS-сервераиспользуется запись вида — @dnsserver, где dnsserver это или имя или ip-адрес DNS-сервера
Данный пример мы рассмотрели в п.1

9. Объемный запрос (запрос информации сразу о нескольких доменах)

Для запроса информации о нескольких доменах возможно использование текстовых файлов с перечислением доменов.
Создадим файл names.txt с именами доменов:

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

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

Также возможно перечисление доменов непосредственно в командной строке. Для примера узнаем MX-запись для домена ya.ru и NS-запись для домена google.ru:

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

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

Таким образом мы рассмотрели мизерную часть этой замечательной утилиты, для тех, кто хочет большего, добро пожаловать в man dig 😉

Источник

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

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

  • Image editor mac os
  • Ikea home planner mac os
  • Igetter for mac os x
  • Idle python mac os
  • Ide для mac os