Что такое dig linux

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 😉

Читайте также:  Syncios iphone transfer tool windows

Источник

Как использовать команду dig в Linux

Linux dig Команда позволяет запрашивать DNS-серверы и выполнять поиск DNS. Вы также можете найти домен, к которому ведет IP-адрес. Мы покажем вам как!

Как работает команда dig

Люди используют Linux dig команда для запроса серверов DNS. dig это аббревиатура для Домен Информация Groper, С dig вы можете запрашивать у DNS-серверов информацию о различных записях DNS, включая адреса узлов, почтовые обмены, серверы имен и соответствующую информацию. Он был предназначен для диагностики проблем с DNS. Тем не менее, вы можете использовать его, чтобы покопаться и узнать больше о DNS, который является одной из центральных систем, поддерживающих интернет-трафик.

Интернет использует IP-адреса для определения «мест» в сети, но люди используют доменные имена. Когда вы вводите доменное имя в приложение, такое как веб-браузер или клиент SSH, что-то должно преобразовываться из доменного имени в фактический IP-адрес. Это где система доменных имен приходит.

Когда вы используете доменное имя с любой программой, подключенной к Интернету, ваш локальный маршрутизатор не может разрешить его (если оно не кэшировано из предыдущего запроса). Итак, ваш маршрутизатор запрашивает либо DNS-сервер вашего интернет-провайдера, либо любой другой, который вы настроили для использования вашей системой. Это так называемые серверы-предшественники DNS.

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

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

Корневой сервер смотрит на домен верхнего уровня к которому принадлежит ваше доменное имя, например .COM, .ORG, .CO.UK и т. д. Затем он отправляет список серверов доменов верхнего уровня, которые обрабатывают эти типы доменов, обратно на сервер-предшественник DNS. Затем сервер-предшественник DNS может сделать свой запрос еще раз к серверу домена верхнего уровня.

Сервер домена верхнего уровня отправляет информацию о авторитетный сервер имен (где хранятся данные домена) обратно на сервер предшественника DNS. Затем DNS-сервер запрашивает официальный сервер имен, на котором размещена зона домена, который вы изначально указали в своей программе. Полномочный сервер имен отправляет IP-адрес обратно на DNS-сервер, который, в свою очередь, отправляет его обратно вам.

Установка копания

dig был уже установлен на наших компьютерах Ubuntu 18.04 и Fedora 30. Однако нам пришлось установить его на компьютер Manjaro 18.04 с помощью следующей команды:

Начало работы с копанием

В нашем первом примере мы вернем IP-адреса, связанные с доменным именем. Часто несколько IP-адресов связаны с одним доменным именем. Это часто происходит, например, если используется балансировка нагрузки.

Мы используем +short опция запроса, как показано ниже, которая дает нам краткий ответ:

Все IP-адреса, связанные с доменом howtogeek.com, перечислены для нас. На другом конце спектра, если мы не использовать +short Опция запроса, вывод довольно подробный.

Таким образом, мы вводим следующее, чтобы передать это через less :

Выход отображается в less , как показано ниже.

Вот полный список:

Давайте разберем этот кусок за куском.

заголовок

Во-первых, давайте посмотрим, что мы имеем в заголовке:

Теперь вот что все это значит:

  • Первая строка: Версия dig и домен, который был запрошен.
  • Глобальные варианты: Как мы увидим, вы можете использовать dig запросить несколько доменов одновременно. Эта строка показывает параметры, которые были применены ко всем запросам домена. В нашем простом примере это было просто по умолчанию +cmd (команда) опция.
  • Код операции: Запрос: Это запрашиваемая операция, которая в данном случае была query , Это значение также может быть iquery для обратного запроса, или status если вы просто тестируете состояние системы DNS.
  • Статус: Noerror: Не было ошибок, и запрос был правильно разрешен.
  • ID: 12017: Этот случайный идентификатор связывает запрос и ответ вместе.
  • Флаги: QR RAD: Это означает query , recursion desired , и recursion available , Рекурсия — это одна из форм поиска DNS (другая — итеративная). Вы также можете увидеть AA , что означает «Полномочный ответ», то есть «Полномочный сервер имен» предоставил ответ.
  • Запрос: 1: Количество запросов в этом сеансе, который был один.
  • Ответ: 4: Количество ответов в этом ответе, которое составляет четыре.
  • Авторитет: 0: Количество ответов, пришедших с авторитетного сервера имен, которое в данном случае было равно нулю. Ответ был возвращен из кэша сервера-предшественника DNS. В ответе не будет никакого авторитетного раздела.
  • Дополнительно: 1: Есть одна часть дополнительной информации. (Странно, ничего не перечислено, если это значение не два или выше.)
Читайте также:  Intel hd graphics ivy bridge драйвер windows 10

Опция Псевдосекция

Далее мы видим следующее в псевдосекции Opt:

Давайте разберемся с этим:

  • EDNS: версия 0: Версия Система расширения для DNS это используется. EDNS передает расширенные данные и флаги, увеличивая размер Протокол пользовательских датаграмм (UDP) пакеты. На это указывает флаг переменного размера.
  • флаги: Флаги не используются.
  • УДП: 4096: Размер пакета UDP.

Раздел вопросов

В разделе «Вопрос» мы видим следующее:

Вот что это значит:

  • howtogeek.com: Доменное имя, к которому мы обращаемся.
  • В: Мы делаем запрос интернет-класса.
  • A: Если мы не укажем иное, dig запросит запись A (адрес) с DNS-сервера.

Раздел ответов

Раздел Ответ содержит следующие четыре ответа, которые мы получили от DNS-сервера:

Вот что означают эти ответы:

  • 3551: Это время жизни (TTL), 32-разрядное целое число со знаком, которое содержит интервал времени, в течение которого запись может быть кэширована. По истечении этого срока данные должны использоваться в ответе на запрос до тех пор, пока он не будет обновлен DNS-сервером.
  • В: Мы сделали запрос интернет-класса.
  • A: Мы попросили запись A с DNS-сервера.

Статистический отдел

Статистика является последним разделом, и она содержит следующую информацию:

Вот что мы получили:

  • Время запроса: 0 мсек: Время, которое потребовалось, чтобы получить ответ.
  • СЕРВЕР: 127.0.0.53 # 53 (127.0.0.53): IP-адрес и номер порта DNS-сервера, который ответил. В этом случае он указывает на локальный решатель кэширующих заглушек. Это перенаправляет запросы DNS на любые настроенные серверы DNS верхнего уровня. На тестовом компьютере Manajro указанный здесь адрес был 8.8.8.8 # 53, который Общедоступный DNS-сервис Google,
  • КОГДА: Вс 22 марта 07:44:37 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2020: Когда запрос был сделан.
  • MSG РАЗМЕР РКВД: 106: Размер сообщения, полученного с DNS-сервера.

Быть Селективным

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

Следующие параметры запроса удаляют этот раздел из результатов:

  • + nocomments: Не показывать строки комментариев.
  • + Noauthority: Не показывать раздел полномочий.
  • + Noadditional: Не показывать дополнительный раздел.
  • + nostats: Не показывать раздел статистики.
  • + Noanswer: Не показывать раздел ответа.
  • + Noall: Ничего не показывай!

+noall Параметр запроса обычно объединяется с одним из указанных выше, чтобы включить в результаты раздел. Таким образом, вместо того, чтобы вводить длинную строку параметров запроса, чтобы отключить несколько разделов, вы можете использовать +noall чтобы выключить их всех.

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

  • + комментарии: Показать строки комментариев.
  • + Авторитет: Покажите авторитетный раздел.
  • + Дополнительно: Покажите дополнительный раздел.
  • + статистика: Показать раздел статистики.
  • + Ответ: Показать раздел ответов.
  • + Все: Показать все

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

Если мы используем +noall Опция запроса сама по себе, как показано ниже, мы не получим никакой полезной информации:

Мы можем выборочно добавлять разделы, которые мы хотим видеть. Чтобы добавить раздел ответа, мы вводим следующее:

Если мы введем следующее, чтобы включить +stats мы также увидим раздел статистики:

+noall +answer комбинация используется часто. Вы можете добавить другие разделы в командной строке по мере необходимости. Если вы хотите избежать ввода +noall +answer в командной строке каждый раз, когда вы используете dig Вы можете поместить их в файл конфигурации с именем «.digrc». Он находится в вашем домашнем каталоге.

Мы вводим следующее, чтобы создать echo :

Затем мы можем набрать следующее, чтобы проверить его содержимое:

Читайте также:  Драйвер для джойстика ps3 windows

Команды $ HOME / .digrc «и» cat .digrc «в окне терминала.» width = «646» height = «122» onload = «pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);» OnError = «this.onerror = NULL; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (это);»/>

Эти два варианта теперь будут применяться ко всем будущим dig , как показано ниже:

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

DNS-записи

Информация вернулась на ваш dig запросы извлекаются из разных типов записей, хранящихся на DNS-сервере. Если мы не попросим что-то другое, dig запрашивает запись A (адрес). Ниже приведены типы записей, обычно используемые с dig :

  • Запись: Связывает домен с IP-адресом версии 4.
  • MX запись: Записи обмена почтой направляют электронные письма, отправленные на домены, на правильный почтовый сервер.
  • NS Record: Записи сервера имен делегируют домен (или поддомен) на набор DNS-серверов.
  • TXT Record: В текстовых записях хранится текстовая информация о домене. Как правило, они могут использоваться для подавления поддельной или поддельной электронной почты.
  • SOA Record: Начало авторитетных записей может содержать много информации о домене. Здесь вы можете найти основной сервер имен, ответственную сторону, временную метку для изменений, частоту обновления зон и ряд временных ограничений для повторных попыток и отмен.
  • TTL: Время жизни — это параметр для каждой записи DNS, который указывает, как долго серверу-предшественнику DNS разрешается кэшировать каждый запрос DNS. По истечении этого времени данные должны обновляться для последующих запросов.
  • ЛЮБОЙ: Это говорит dig вернуть каждый тип записи DNS, который он может.

Указание типа записи A не меняет действие по умолчанию, которое заключается в запросе записи адреса и получении IP-адреса, как показано ниже:

Чтобы запросить записи обмена почтой, мы используем следующий флаг MX:

Флаг сервера имен возвращает следующее имя корневых серверов имен, связанных с доменом верхнего уровня:

Чтобы запросить начало авторитетной записи, мы вводим следующий флаг SOA:

Флаг TTL покажет нам время жизни данных в кеше DNS-сервера. Если мы сделаем серию запросов, мы увидим, что время жизни сокращается до нуля, а затем возвращается к своему начальному значению.

Мы вводим следующее:

Чтобы увидеть текстовые записи, мы набираем флаг TX:

Указание DNS-сервера

Если вы хотите использовать определенный DNS-сервер для вашего запроса, вы можете использовать знак at ( @ ) передать его dig в качестве параметра командной строки.

С DNS-сервером по умолчанию (см. Ниже), dig ссылается на локальный преобразователь заглушки кэширования на 127.0.0.53.

Теперь мы набираем следующее, чтобы использовать общедоступный DNS-сервер Google на 8.8.8.8:

Использование dig с несколькими доменами

Мы можем передать несколько доменов dig в командной строке, как показано ниже:

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

Наш файл называется «domains.txt». Мы будем использовать cat показать его содержимое, а затем передать его dig с -f (файл) вариант. Мы вводим следующее:

Обратный поиск DNS

Если у вас есть IP-адрес и вы хотите знать, куда он идет, вы можете попробовать обратный поиск DNS. Если он разрешается на сервер, зарегистрированный на DNS-сервере, вы можете узнать его домен.

Возможность этого зависит от наличия PTR (записи указателя). PTR разрешают IP-адрес полное доменное имя, Однако, поскольку они не являются обязательными, они не всегда присутствуют в домене.

Давайте посмотрим, сможем ли мы узнать, куда нас ведет IP-адрес 209.51.188.148. Мы вводим следующее, используя -x (обратный поиск) опция:

Presto! IP-адрес разрешается на gnu.org.

Потому что PTR — это запись DNS, и мы знаем, dig можем запросить указанные записи DNS, мы не можем просто спросить dig получить PTR для нас? Да, мы можем, но это займет немного больше работы.

Мы должны предоставить IP-адрес в обратном порядке и придерживаться .in-addr.arpa на конце, как показано ниже:

Мы получаем тот же результат; это заняло немного больше усилий.

Вы можете это выкопать?

Мы все ежедневно пользуемся интернетом, и пытливые умы часто задаются вопросом, как происходит волшебство, когда мы вводим название веб-сайта в браузер. С dig Вы можете изучить процессы сетевого колдовства.

Источник

Оцените статью