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 😉
Как пользоваться командой nslookup в Linux?
Для проверки DNS используется универсальная команда nslookup. Она есть как в Windows, так и в Linux. Утилита поможет получить IP-адрес, а также сделать обратное преобразование и определить скорость работы DNS сервера.
Принцип работы DNS
Интернет — большое количество устройств, которые связаны между собой в сеть. Под устройством можем понимать сервера, компьютеры, ноутбуки и так далее. Для объединения компьютеров в сеть используются ip-адреса, однако людям работать с ними не удобно, гораздо удобнее воспринимать информацию с символьными именами, например www.vseprolinux.ru.
Чтобы не запоминать много цифр в виде ip-адресов, в 80-х годах была создана DNS — система доменных имен, протокол прикладного уровня. Он преобразовывает имена устройств (компьютеров) в IP-адреса.
Теперь вместо адреса достаточно ввести в адресную строку доменное имя, название сайта в виде www.site.ru, далее уже Ваш ДНС делает запрос, чтобы узнать ip-адрес запрашиваемого узла.
Все это хорошо, только если не работает ДНС, то и не работает сайт, для диагностики проблем ДНС системы обычно используется команда nslookup.
Синтаксис nslookup
Рассмотрим синтаксис команды.
nslookup [параметры] [домен] [сервер]
Домен — доменное имя. Сервер — необязательный аргумент
- -type — тип записи ДНС. ns, txt, ptr, cname, soa и другие;
- -port — порт ДНС;
- -recurse — если ДНС не отвечает, то использоваться другие DNS;
- -retry — количество попыток;
- -timeout — время;
- -fail — если DNS доменных имен возвращает ошибку, то использовать другой сервер.
Примеры
Узнаем IP-адрес сайта vseprolinux.ru. Для этого выполним команду без аргументов.
На скриншоте выше видно:
- Server: 192.168.201.254 — адрес текущего ДНС сервера компьютера, который указан а настройках сети, в моем случае /etc/resolv.conf
- Address: 192.168.201.254#53 — IP-адрес вместе с портом. По умолчанию используется 53 порт.
- Non-authoritative answer — не авторитетный ответ. Такой ответ выдается в двух случаях: ДНС не обслуживает зону, и ответ получен из кэша, данные могли устареть. Авторитетным ответом будет считаться только если сервер имеет полную информацию о зоне.
- 195.161.114.71 — IP-адрес сайта.
Теперь сделаем обратное преобразование.
Как узнать адрес почтового сервера MX (Mail eXchange)?. Для этого введем команду
Запись MX содержит всего два поля:
- приоритет;
- адрес сервера принимающего почту для данного домена.
Чем ниже значения, тем более высокий приоритет.
В наше время все больше внимания уделяется защите от спама в email сообщениях. Выделим два основных варианта, через TXT запись DNS:
- spf — Sender Policy Framework. Представляется собой текстовую запись, которая содержит список хостов, которые имеют права отправлять письма от домена;
- dkim -DomainKeys Identified Mail. TXT запись ключа. Для определения отправителя добавляется цифровая подпись, далее подпись автоматически проверяется получателем.
Чтобы узнать TXT надпись, введем в терминале команду с типом txt:
Утилита может вывести техническую информацию о домене «Start Of Authority». Для этого используется тип запроса soa:
Утилита в Линуксе покажет такие записи:
- origin — от кого узнали информацию;
- mail addr — email address администратора домена;
- serial — время в формате timestamp;
- refresh — время в секундах, когда нужно повторить подключения для обновления информации;
- retry — время в секундах, через которое повторять подключения к DNS, если он недоступен;
- expire — время в секундах, через сколько времени считать иформацию устаревшей полученную от первого ДНС;
- minimum — время в секундах до следующего обновления.
Как установить и использовать команды dig и nslookup в Linux?
В этой статье вы узнаете, как установить команду dig и команду nslookup в Linux. Эти команды используются для устранения неполадок в сети и сбора информации о доменных именах.
Dig, сокращение от Domain Information Gopher — это утилита поиска DNS, используемая для проверки DNS-серверов и устранения неполадок, связанных с DNS-серверами.
Nslookup используется для обработки поиска DNS и отображает важную информацию, такую как записи MX, и IP-адрес, связанный с именем домена.
Более новые системы Linux по умолчанию поставляются с утилитами dig и nslookup.
Давайте посмотрим, как мы можем установить утилиты устранения неполадок DNS в Linux.
Как установить dig и nslookup в CentOS/RHEL
В Red Hat Linux/CentOS установите dig и nslookup с помощью команды dnf:
После успешной установки проверьте версию, используя команду приведённую ниже:
Как установить dig и nslookup в Debian/Ubuntu
В Debian и любых его производных, установка выполняется с помощью команды apt:
Чтобы проверить версию, выполните команду:
Как установить dig и nslookup на ArchLinux
Для ArchLinux команда установки dig и nslookup будет такой:
Чтобы проверить версию dig, запустите:
Использование команды dig
Команда dig может использоваться для запроса доменного имени и получения информации:
Команда отображает информацию узла, такую как версия утилиты команды dig, DNS-сервер и соответствующий IP-адрес.
Пример вывода
Чтобы получить более конкретное представление и отображать только IP-адрес имени домена, добавьте аргумент «+short«, как показано ниже:
Для проверки MX записи доменного имени запустите:
Использование команды nslookup
Чтобы получить информацию о доменном имени с помощью утилиты nslookup, используйте следующую команду:
Пример вывода
Итоги
В этой статье вы узнали, как установить утилиты dig и nslookup в разных дистрибутивах Linux, а также как использовать эти команды.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!