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

///
4 mins read

Что такое dig?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

dig ya.ru ANY +noall +answer

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

dig -t ANY google.com  +noall +answer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

nano $HOME/.digrc
+noall +answer

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

Previous Story

100500+ команд Linux.

Next Story

Nextcloud: запуск в Docker Compose с SSL от Let’s Encrypt

Latest from Blog

dd

dd (dataset definition) — программа UNIX, предназначенная как для копирования, так и для конвертации файлов. Название унаследовано от оператора DD

0 £0.00