- 10 примеров использования команды dig для просмотра параметров DNS (DNS Lookup) в Linux
- Как использовать команду dig в Linux
- Как работает команда dig
- Установка копания
- Начало работы с копанием
- заголовок
- Опция Псевдосекция
- Раздел вопросов
- Статистический отдел
- Быть Селективным
- DNS-записи
- Указание DNS-сервера
- Использование dig с несколькими доменами
- Обратный поиск DNS
- Вы можете это выкопать?
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 😉
Источник
Как использовать команду 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: Есть одна часть дополнительной информации. (Странно, ничего не перечислено, если это значение не два или выше.)
Опция Псевдосекция
Далее мы видим следующее в псевдосекции 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 :
Затем мы можем набрать следующее, чтобы проверить его содержимое:
Команды $ 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 Вы можете изучить процессы сетевого колдовства.
Источник