Основы работы с утилитой Dig: Эффективное управление DNS-запросами

Утилита dig (Domain Information Groper) - это мощный инструмент командной строки, используемый в системах Unix и Linux для запросов к DNS-серверам. Она предназначена для получения информации о DNS-записях и диагностики проблем связанных с DNS. Dig позволяет пользователям выполнять запросы к определенным DNS-серверам, получать подробную информацию о различных типах DNS-записей, включая A-записи (адреса), MX-записи (почтовые серверы), NS-записи (серверы имен) и другие.

В Ubuntu утилита dig входит в пакет dnsutils, для установки запустите команду

apt install dnsutils

Утилита dig использует обычную командную строку для формирования запросов о доменах DNS-серверам. Формат команды dig следующий:

dig [@server] domain [query-type] [query-class] [+query-option] [-dig-otion] [%comment]

Здесь server — необязательное имя DNS-сервера. По умолчанию в dig будет использоваться DNS-сервер, указанный в файле /etc/resolv.conf. Можно указать опцию server либо по имени хоста, либо через его IP-адрес. Если для опции server используется имя хоста, то для преобразования его в IP-адрес dig воспользуется DNS-сервером по умолчанию и будет его использовать далее для получения информации о домене. Параметр query-type — тип исходной записи, который можно указать в запросе (A, SOA, NS и MX). Для получения всей информации о домене можно указать query-type any. Параметр query-class — класс сетевой информации, который также можно указывать в запросе. По умолчанию этот параметр всегда будет IN для сети Internet.

Параметр +query-option используется для изменения значения параметра в пакете DNS или для изменения формата вывода результатов работы dig. Большинство этих параметров пересекаются с параметрами программы nslookup. Ниже показаны параметры, которые можно использовать в запросе с dig.

  • Параметры утилиты dig
Параметр	Описание
[no]debug	Включает/выключает режим отладки
[no]d2	Включает/выключает режим полной отладки
[no]recurse	Использовать/не использовать рекурсивные цепи
retry=#	Устанавливает число повторов запроса
time=#	Устанавливает длину интервала ожидания
[no]ko	Оставляет открытой опцию (реализует vc )
[no]vc	Использовать/не использовать виртуальную цепь
[no]defname	Использовать/не использовать домен по умолчанию
[no]search	Использовать/не использовать список поиска
domain=NAME	Устанавливает домен по умолчанию с именем NAME
[no]ignore	Игнорировать/не игнорировать ошибки при усечении
[no]primary	Использовать/не использовать главный сервер
[no]aaonly	Флажок для авторитетного запроса
[no]trace      Показыввать трассу запросов
[no]cmd	        Отображать аргументы при анализе
[no]stats	Вывод статистики по запросу
[no]Header	Вывод основного заголовка
[no]header	Вывод флагов заголовка
[no]ttlid	Отображение TTL
[no]cl	Вывод информации о классе
[no]qr	Отображение исходящего запроса
[no]reply	Вывод ответа
[no]ques	Вывод поля вопроса
[no]answer	Вывод поля ответа
[no]author	Вывод поля полномочий
[no]addit	Вывод поля дополнительной информации
pfdef	Устанавливает вывод флагов по умолчанию
pfmin	Устанавливает минимальный вывод флагов
pfset=#	Устанавливает число выводимых флагов #
pfand=#	Вывод # флагов поразрядно через операцию AND
pfor=#	Вывод # флагов поразрядно через операцию OR

Параметр -dig-otion используется для задания других опций, влияющих на работу dig.

  • Параметры, влияющие на работу dig
Параметр	Описание
-x	Указывает инверсное преобразование адреса в нормальном написании
-f	Считывает файл для дальнейшей пакетной обработки
-T	Время в секундах до включения режима пакетной обработки
-p	Номер используемого порта
-P	После получения ответа выдать команду ping
-t	Указывает тип запроса
-c	Указывает класс запроса
-envsav	Параметры dig должны быть сохранены для дальнейшего использования по умолчанию

В dig для вывода только секции ответа используйте ключи +noall +answer

# dig dieg.info +noall +answer
dieg.info.		891	IN	A	185.253.219.218
  • Как узнать обновились ли зоны на slave серверах DNS? Для этого нужно запросить записи SOA для master и slave серверов DNS. После знака '@' указывается опрашиваем DNS сервер:
    dig @195.x.x.254 your.domen SOA 
    dig @195.x.x.164 your.domen SOA
  • Работает ли jabber?
    dig @195.x.x.254 srv _jabber._tcp.your.domen
    dig @195.x.x.164 srv _jabber._tcp.your.domen
  • Обратный DNS запрос:
    $ dig -x 209.85.210.2
    
    ; <<>> DiG 9.6.1-P2 <<>> -x 209.85.210.2
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31663
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
    
    ;; QUESTION SECTION:
    ;2.210.85.209.in-addr.arpa.	IN	PTR
    
    ;; ANSWER SECTION:
    2.210.85.209.in-addr.arpa. 86400 IN	PTR	mail-yx0-f2.google.com.
  • Трансфер зоны - если конечно разрешено с вашего IP
    dig @195.x.x.254 YourDomen.net axfr
  • Создать файл содержащий адреса корневых серверов
    dig @f.root-servers.net . ns >> root.cache
  • any
    # dig news.kh.ua any @8.8.8.8
  • Чтобы узнать запись SPF определённого домена нужно запросить TXT записи
    dig example.com txt @8.8.8.8

С помощью опции +short вывод команды dig будет ограничен исключительно IP адресом. Ниже примеры для А и MX записей:

# dig dieg.info +short
185.253.219.218
 
# dig dieg.info mx +short
0 mail.dieg.info.

Программа dig позволяет делать запрос и выводить информацию для различных типов DNS ресурсов. Чтобы показать какие MX записи у домена выполните команду:

dig dieg.info mx

Для сокращения выводимой информации запрашиваемый тип записи (а также другие опции) можно комбинировать с опцией +short:

dig dieg.info mx +short

Подтверждение права собственности на домен в Google Console при помощи TXT записи DNS

Подтверждение права собственности на домен в Google Console на примере провайдера Namecheap.

Подтвердив право собственности на домен, вы сможете пользоваться своим сервисом Google, например G Suite, Drive Enterprise или Cloud Identity. Аккаунт G Suite открывает доступ к Gmail, Google Диску и другим службам.

При регистрации в сервисе Google вы получите проверочную запись, которую нужно скопировать и добавить в настройки домена (обычно они находятся у регистратора домена).

Проверочная запись Google имеет следующий формат: google-site-verification=[уникальная буквенно-цифровая строка].

На сайте Namecheap нажмите Manage (Управление). Откройте вкладку Advanced DNS (Расширенные настройки DNS) на панели инструментов. В раскрывающемся списке выберите TXT Record (Запись TXT). Вставьте текст проверочной записи в поле Value (Значение). Укажите значение @ в поле Host (Хост). Для параметра TTL выберите значение Automatic (Авто). Нажмите на галочку, чтобы сохранить запись

Проверить правильность настройки при помощи утилиты dig

dig example.com txt @8.8.8.8

Вывести все TXT записи в том числе и проверочную запись от Google:

dig dieg.info txt +short
 
"v=spf1 include:zoho.eu mx a ~all"
"v=DMARC1; p=none; rua=mailto:darkfire@dieg.info"
"google-site-verification=sm5d51AVXlIwW5ODgl6ookFgezviNuMfY4kBNkfm6fk"
"zoho-verification=zb69704592.zmverify.zoho.eu"
"google-site-verification=1Vnvx7hF8QBHyu7G5S-q2rNf6z5R4cbcW13jflMqmMQ"
  • Вывести трассу DNS запросов к запрашиваемую домену
    # dig +trace man.com

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

dig @xx.xx.xx.xx www.m-system.net +dnssec

xx.xx.xx.xx — ip адрес Вашего резолвера, поддерживающего ГОСТ. После выполнения этой команды в ответе должен присутствовать флаг ad — данные подтверждены. Если ad флаг отсутствует, но Вы запрашиваете адрес имени из домена, ключ которого Вы добавили в доверенные — что-то не так.

Ответ SERVFAIL значит, что подпись не соответствует доверенному ключу либо отсутствует.

PQ VPS сервера в 28+ странах.