zaLinux.ru

Как пользоваться командой dig для DNS запросов


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

Хотя обычно dig используется с аргументами командной строки, он также имеет пакетный режим обработки считываемых из файла запросов для поиска.

Если в запросе не указан определённый сервер имён, dig попытается использовать каждый из серверов, перечисленных в файле /etc/resolv.conf. Если рабочий сервер не найден, то dig отправить запрос на локальный хост.

Как показать A запись домена

Информацию о различных типах DNS записях смотрите в статье «Введение в DNS терминологию, компоненты и концепции».

Достаточно указать только домен, для которого делается запрос, например, чтобы узнать A запись (содержит IP адрес сервера, на котором работает данный сайт) для доменного имени zalinux.ru:

dig zalinux.ru

Пример вывода:

Большая часть вывода является комментариями — они начинаются с точки с запятой (;)

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

; <<>> DiG 9.14.4 <<>> zalinux.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18537
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

Данная группа строк показывает информацию о сделанном запросе, в том числе домен и тип DNS записи.

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;zalinux.ru.			IN	A

Значимая информация содержится в разделе ответа — именно здесь показан IP сайта:

;; ANSWER SECTION:
zalinux.ru.		3799	IN	A	185.26.122.38

Последняя группа комментариев содержит техническую информацию, в том числе время, которое занял запрос; DNS сервер, к которому был сделан запрос; время, когда был сделан запрос и другое:

;; Query time: 484 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Ср июл 24 03:21:13 MSK 2019
;; MSG SIZE  rcvd: 55

Как в dig вывести только IP адрес без дополнительных строк

В приведённом выше примере большая часть информации не нужна пользователю — нужен только IP адрес. С помощью опции +short вывод команды dig будет ограничен исключительно IP адресом. Поскольку по умолчанию (если не указано друге) запрос делается относительно записи A, то будет показан IP адрес из записи A:

dig zalinux.ru +short

Как просмотреть MX записи для домена

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

dig zalinux.ru MX

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

dig zalinux.ru MX +short

Запрос SOA записи для домена:

dig zalinux.ru SOA

Как в dig вывести только секцию ответа

dig zalinux.ru +nocomments +noquestion +noauthority +noadditional +nostats

Более короткий вариант записи:

dig zalinux.ru +noall +answer

Как вывести все DNS записи для домена

Данный метод позволяет за один раз вывести сразу все типы DNS записей указанного домена, но он работает не во всех случаях:

dig zalinux.ru ANY

Для запроса всех типов DNS записей, но ограничив количества выводимых разделов только секцией ответа добавьте опции «+noall +answer»:

dig zalinux.ru ANY +noall +answer

Как в dig сделать обратный DNS запрос — как по IP получить имя хоста

Можно делать обратные DNS запросы, когда отсылаем IP адрес, а в ответ получаем имя хоста, для такого запроса используется опция -x. Пример с добавлением опции +short чтобы ограничить вывод только именем хоста:

dig -x 185.117.153.79 +short

Одновременный запрос множества DNS записей

Есть два способа выполнить несколько или сразу множество запросов к DNS серверам в dig.


Один из них — использовать опцию -f, после которой нужно указать файл, содержащий список запросов. Каждая строка в этом файле должна быть организована также, как это делается в запросах, когда используется интерфейс командной строки dig.

Второй вариант — это указать сразу несколько запросов в строке команды. Программа dig не только поддерживает множественность запросов, но и позволяет каждый из них запустить с персональным набором опцией, флагов и опций запросов.


В этом случае каждый аргумент представляет индивидуальный запрос в соответствии с описываемым синтаксисом. Каждый состоит из любых стандартных опций и флагом, имени для получения информации и опционального типа запроса и класса, а также опций запроса, который должны быть применены к этому запросу.

В дополнении к этому можно также указать глобальный набор опций запроса, который должен применяться ко всем сделанным запросам. Эти глобальный опции запросов должны предшествовать первому картежу из имени, класса, типа, опций, флагов и опций запроса, указанных в строке команды. Глобальные опции запроса (кроме опций +[no]cmd и +[no]short) могут быть перезаписаны набором опций для конкретного запроса. Например команда

dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr

показывает как dig может использоваться в командной строке для выполнения трёх поисков: ANY запрос для www.isc.org, обратный поиск для 127.0.0.1 и запрос NS записей для isc.org. Применена глобальная опция +qr, поэтому dig для каждого поиска показывает начальный запрос. Финальный запрос имеет локальную (применяемую только для него) опция запроса +noqr, которая означает, что dig не будет печатать начальный запрос когда он ищет NS записи для isc.org.

Сохранение постоянных опций dig

Если для каждого запроса с dig вы используете одну и ту же или одни и те же опции, то вы можете сохранить их в файл ${HOME}/.digrc, в этом случае программа будет учитывать их для каждого сделанного поиска, даже если эта опция не указана в командной строке. Например, в файл digrc можно добавить опцию +short и тогда все запросы будут возвращать короткий ответ.

Если для определённого поиска по DNS вы не хотите, чтобы учитывались сохранённые в файле ${HOME}/.digrc опции, тогда укажите опцию -r.

Как сделать DNS запрос по протоколу TCP

С помощью опции +tcp вы можете включить использование TCP при запросах к серверам имён. По умолчанию используется UDP за исключением случаев, если запрошен тип any или ixfr=N, в которых по умолчанию применяется протокол TCP. Запросы AXFR всегда используют TCP.

dig zalinux.ru +tcp

Использование другого порта для DNS запросов

С помощью опции -p вы можете сделать запрос на нестандартный порт сервера, вместо порта по умолчанию 53. Эта опция может использоваться для тестирования сервера имён, который настроен на прослушивание запросов на нестандартном номере порта.

dig -p 5300 zalinux.ru

Как указать сервер имён для DNS запросов

После символа @ (собака) вы можете указать любой DNS сервер имён, который будет использоваться для данного DNS поиска:


dig @8.8.4.4 zalinux.ru

По умолчанию сервера имён для запросов берутся из файла /etc/resolv.conf.

Показ цепочки DNS серверов, используемых при DNS запросах

Опция +trace включает трассировку пути делегирования от корневых серверов имён для искомого имени. Трассировка отключена по умолчанию. Когда трассировка включена, dig выполняет итеративные запросы, чтобы преобразовать имя, которое было запрошено. Он будет следовать рекомендациям от корневых серверов, показывая ответ от каждого сервера, который использовался для разрешения поиска.

Если также указан @server, он влияет только на начальный запрос к серверам имён корневой зоны.

dig +trace zalinux.ru

+dnssec также устанавливается, когда +trace установлен для лучшей эмуляции запросов по умолчанию от сервера имён.

Классы имён DNS

Имена классов IN и CH перекрываются с именами доменов верхнего уровня IN и CH. Либо используйте опции -t и -c для указания типа и класса, либо используйте -q для указания имени домена, либо используйте "IN." и "CH." при поиске этих доменов верхнего уровня.

Узнать подробности о работе DNS и структуре этой системы, а также о видах записей DNS вы сможете в статье «Введение в DNS терминологию, компоненты и концепции».

Поддержка IDN

Если dig был собран с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), он может принимать и отображать не-ASCII доменные имена. dig соответствующим образом преобразует кодировку символов имени домена перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-либо причине вы хотите отключить поддержку IDN, используйте параметры +noidnin и +noidnout или определите переменную среды IDN_DISABLE.

Смотрите также статьи:

 


Рекомендуемые статьи:

Оставить комментарий

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