Диагностика DNS с помощью команды dig | ВесьТоп создание и продвижение сайтов

Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

Продвижение сайтов

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

Создание сайтов

Мы делаем сайты быстро, недорого и профессионально. От работы с нами, у вас останутся только положительные эмоции.

Диагностика DNS с помощью команды dig

dig (Domain Information Groper) — сетевой инструмент командной строки для отправки запросов на DNS-серверы.

Dig является частью наиболее широко используемого программного обеспечения DNS BIND. dig заменяет такие инструменты, как nslookup и host, и доступен во всех основных дистрибутивах Linux.

Команда dig отправляет DNS-запросы и отображает ответы, полученные от соответствующих серверов имен. Большинство администраторов DNS используют dig для устранения проблем с DNS.

Dig является предпочтительным инструментом из-за гибкости команд, легкости работы и отображения четких и понятных результатов. Другие инструменты диагностики DNS обычно имеют ограниченную функциональность по сравнению с dig.

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

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

Типичное использование dig выглядит так:

копать @ имя сервера тип

где:

server — это имя или IP-адрес сервера имен, на который мы отправляем запрос. Это может быть адрес IPv4 или IPv6. Если предоставленный аргумент @server является именем хоста, dig разрешает это имя перед отправкой ему запроса.

Если аргумент @server не указан, откройте /etc/resolv.conf. Если он найдет адрес, он отправит запрос на серверы имен по этому адресу. Если подходящих адресов нет, dig отправит запрос на localhost и сохранит ответы на соответствующем сервере имен.

name — это доменное имя, для DNS-записей которого мы отправляем запрос.

type — указывает тип искомой записи DNS — A, MX, NS и т. д. Если аргумент типа не указан, dig отправляет запрос на запись A.

Структура результата запроса с помощью команды dig

Вывод команды dig содержит следующие разделы:

dig @ ns1.redhat.com redhat.com

Заголовок: отображает числа и общие параметры команды dig:

; lt; lt; gt; gt; DiG 9.10.3-P4-Ubuntu lt; lt; gt; gt; @ ns1.redhat.com redhat.com; (Найден 1 сервер) ;; глобальные параметры: + cmd ;; Получил ответ: ;; -gt; gt; HEADERlt; lt; — код операции: QUERY, статус: NOERROR, id: 48736 ;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 1, АВТОРИТЕТ: 4, ДОПОЛНИТЕЛЬНО: 5

Вопрос: показывает тип записи DNS в запросе. В этом примере, поскольку аргумент типа не введен, dig ищет A-запись домена redhat.com:

;; РАЗДЕЛ ВОПРОСОВ :; redhat.com. В

Ответ: показывает ответ на запрос — Запись на redhat.com:

;; РАЗДЕЛ ОТВЕТОВ: redhat.com. 3600 IN A 209.132.183.105

Полномочия: показывает DNS-сервер, у которого есть полномочия отвечать на этот запрос. Ответ показывает DNS-серверы имен на redhat.com:

;; ОТДЕЛ ВЛАСТИ: redhat.com. 3600 IN NS ns2.redhat.com. redhat.com. 3600 IN NS ns4.redhat.com. redhat.com. 3600 IN NS ns3.redhat.com. redhat.com. 3600 IN NS ns1.redhat.com.

Дополнительно: отображает IP-адреса серверов имен, перечисленных в разделе «Авторитет»:

;; ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ: ns1.redhat.com. 129959 IN A 209.132.186.218 ns2.redhat.com. 47159 IN A 209.132.183.2 ns3.redhat.com. 129959 IN A 66.187.233.212 ns4.redhat.com. 78214 IN A 209.132.188.218

Раздел Статистика внизу вывода показывает статистику по дате, продолжительности и размеру запроса, а также имя сервера имен, от которого мы получили ответ:

;; Время запроса: 235 мсек ;; СЕРВЕР: 209.144.50.138 # 53 (209.144.50.138) ;; КОГДА: Вт, 30 января, 00:58:48 EET 2018 ;; РАЗМЕР MSG rcvd: 191

Показать только раздел ответа

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

+nocomments — исключить комментарии + noquestions — исключить раздел вопросов
+ noauthority — исключить раздел полномочий
+ noadditional — отключить дополнительный раздел
+ nostats — отключить раздел статистики

Следующая команда dig показывает только раздел ответа:

$ dig redhat.com + nocomments + noquestion + noauthority + noadditional + nostats; lt; lt; gt; gt; DiG 9.10.3-P4-Ubuntu lt; lt; gt; gt; redhat.com + nocomments + noquestion + noauthority + noadditional + nostats ;; глобальные параметры: + cmd redhat.com. 3534 IN A 209.132.183.105

Вместо того, чтобы вводить в команду один за другим параметры всех разделов, которые мы не хотим загружать в вывод Dig, мы можем деактивировать все разделы, используя параметр + noall (это исключит раздел ответа) и добавить + answer, который будет отображаться только вкладка ответов.

Вышеупомянутую команду также можно записать в краткой форме, как показано ниже, где показан только раздел ответов:

$ dig redhat.com + noall + answer; lt; lt; gt; gt; DiG 9.10.3-P4-Ubuntu lt; lt; gt; gt; redhat.com + noall + answer ;; глобальные параметры: + cmd redhat.com. 3151 IN A 209.132.183.105

Длинный или короткий ответ?

По умолчанию dig показывает длинный ответ:

redhat.com. 3151 IN A 209.132.183.105

Чтобы получить короткий ответ, добавьте к команде dig опцию + short:

$ dig + короткий redhat.com 209.132.183.105

Сохраните аргументы dig в предопределенный файл .digrc

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

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

$ cat $ ~ / .digrc + noall + answer

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

Запрос DNS-записей в домене с помощью команды dig

В следующих строках мы показываем образцы запросов для наиболее часто используемых записей DNS:

Запись DNS A (IPv4 и IPv6)

$ dig yahoo.com и yahoo.com. 581 IN A 98.139.180.180 yahoo.com. 581 IN A 98.138.252.38 yahoo.com. 581 IN A 206.190.39.42 $ dig yahoo.com aaaa yahoo.com. 390 IN AAAA 2001: 4998: c: e33 :: 53 yahoo.com. 390 IN AAAA 2001: 4998: 58: 2201 :: 73 yahoo.com. 390 IN AAAA 2001: 4998: 44: 204 :: 100d

DNS NS-запись

$ dig yahoo.com ns yahoo.com. 171560 IN NS ns1.yahoo.com. yahoo.com. 171560 IN NS ns5.yahoo.com. yahoo.com. 171560 IN NS ns4.yahoo.com. yahoo.com. 171560 IN NS ns3.yahoo.com. yahoo.com. 171560 IN NS ns2.yahoo.com.

Запись MX DNS

$ dig yahoo.com mx yahoo.com. 1800 В MX 1 mta7.am0.yahoodns.net. yahoo.com. 1800 В MX 1 mta6.am0.yahoodns.net. yahoo.com. 1800 В MX 1 mta5.am0.yahoodns.net.

Запись DNS CNAME

$ dig mail.yahoo.com cname mail.yahoo.com. 108 В CNAME fd-geoycpi-uno.gycpi.b.yahoodns.net.

Запись DNS TXT

dig yahoo.com txt yahoo.com. 1493 В TXT "v = spf1 redirect = _spf.mail.yahoo.com"

Запись DNS TTL

$ dig yahoo.com ttl yahoo.com. 525 IN A 98.139.180.180 yahoo.com. 525 IN A 98.138.252.38 yahoo.com. 525 IN A 206.190.39.42

DNS PTR (обратная) запись

$ dig -x 68.180.131.16 16.131.180.68.in-addr.arpa. 1800 IN PTR ns1.yahoo.com.

Запись DNS SOA

$ dig yahoo.com soa yahoo.com. 1306 В SOA ns1.yahoo.com. hostmaster.yahoo-inc.com. 2018013007 3600 300 1814400 600

Таким образом, отображаются только значения из раздела SOA файла доменной зоны, и эту информацию трудно прочитать. Поэтому мы добавляем в команду параметр + многострочный:

$ dig yahoo.com soa + многострочный yahoo.com. 1296 В SOA ns1.yahoo.com. hostmaster.yahoo-inc.com. (2018013007; серийный номер 3600; обновление (1 час) 300; повтор (5 минут) 1814400; срок действия (3 недели) 600; минимум (10 минут))

Запросить необязательный сервер имен с помощью команды dig

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

$ dig @ ns1.yahoo.com yahoo.com любой + многострочный yahoo.com. 1800 IN CAA 0 iodef "mailto: security@yahoo.com" yahoo.com. 1800 IN CAA 0 выпуск "symantec.com" yahoo.com. 1800 IN CAA 0 выпуск "digicert.com" yahoo.com. 1800 В TXT "v = spf1 redirect = _spf.mail.yahoo.com" yahoo.com. 172800 IN NS ns3.yahoo.com. yahoo.com. 172800 IN NS ns2.yahoo.com. yahoo.com. 172800 IN NS ns4.yahoo.com. yahoo.com. 172800 IN NS ns5.yahoo.com. yahoo.com. 172800 IN NS ns1.yahoo.com. yahoo.com. 1800 В MX 1 mta7.am0.yahoodns.net. yahoo.com. 1800 В MX 1 mta6.am0.yahoodns.net. yahoo.com. 1800 В MX 1 mta5.am0.yahoodns.net. yahoo.com. 1800 IN AAAA 2001: 4998: c: e33 :: 53 yahoo.com. 1800 IN AAAA 2001: 4998: 44: 204 :: 100d yahoo.com. 1800 IN AAAA 2001: 4998: 58: 2201 :: 73 yahoo.com. 1800 IN A 98.138.252.38 yahoo.com. 1800 IN A 98.139.180.180 yahoo.com. 1800 IN A 206.190.39.42 yahoo.com. 1800 В SOA ns1.yahoo.com. hostmaster.yahoo-inc.com. (2018013007; серийный номер 3600; обновление (1 час) 300; повтор (5 минут) 1814400; срок действия (3 недели) 600; минимум (10 минут))

Мы видим, что исходная информация содержит менее известную запись CAA. Запись CAA (авторизация центра сертификации) используется для указания, какие центры сертификации имеют право выдавать сертификаты домена.

Отправляйте многочисленные запросы с помощью команды dig

С помощью dig мы можем отправлять множество запросов для разных доменов и разных типов записей DNS с помощью одной команды:

~ $ dig redhat.com ns debian.com aaaa centos.org mx redhat.com. 53437 IN NS ns2.redhat.com. redhat.com. 53437 IN NS ns3.redhat.com. redhat.com. 53437 IN NS ns1.redhat.com. redhat.com. 53437 IN NS ns4.redhat.com. debian.com. 300 IN AAAA 2001: 4f8: 1: c :: 15 debian.com. 300 IN AAAA 2001: 41c8: 1000: 21 :: 21: 4 debian.com. 300 IN AAAA 2001: 67c: 2564: a119 :: 148: 14 centos.org. 3600 В MX 20 mail2.centos.org. centos.org. 3600 В MX 10 mail.centos.org.

Пакетный режим: использовать информацию из файла

Используйте команду cat для создания текстового файла, содержащего домен, тип записи DNS и необязательные дополнительные параметры, записывая запросы по одному:

$ cat gt; digfile + короткий google.com mx + короткий yahoo.com mx

Сохраните файл с помощью CTRL + D. Добавьте параметр -f и имя файла в команду dig (если файл находится в подкаталоге, введите правильный путь к файлу):

$ dig -f digfile 30 alt2.aspmx.l.google.com. 20 alt1.aspmx.l.google.com. 10 aspmx.l.google.com. 50 alt4.aspmx.l.google.com. 40 alt3.aspmx.l.google.com. 1 mta5.am0.yahoodns.net. 1 mta7.am0.yahoodns.net. 1 mta6.am0.yahoodns.net.

Какой DNS-сервер ответил на мои запросы командой dig?

Мы можем увидеть, какой DNS-сервер отвечает на наши запросы, посмотрев на последний раздел Статистики из вывода dig. DNS-сервер указан в строке SERVER.

Мы отправляем запрос в общедоступный DNS google.com 8.8.8.8:

dig @ 8.8.8.8 centos.org ;; Время запроса: 63 мсек ;; СЕРВЕР: 8.8.8.8 # 53 (8.8.8.8) ;; КОГДА: Вт, 30 января, 00:34:11 EET 2018 ;; РАЗМЕР MSG rcvd: 55

В разделе Статистика после ;; СЕРВЕР: сохраняется правильный IP-адрес (даже если мы вводим имя хоста сервера имен в команде, IP-адрес соответствующего сервера имен всегда записывается в статистику).

Теперь мы выполняем обычный запрос с помощью dig:

копать centos.org ;; Время запроса: 26 мсек ;; СЕРВЕР: 127.0.1.1 # 53 (127.0.1.1) ;; КОГДА: Вт, 30 января, 00:34:21 EET 2018 ;; РАЗМЕР MSG rcvd: 44

На этот раз мы получили ответ от локального DNS-сервера 127.0.1.1.

Мы надеемся, что информация в этой статье окажется для вас полезной при отправке запросов о записях DNS для доменов с помощью команды dig.

Читайте так же:
Not found

Нам доверяют

Интернет магазин