Команда Dig в Linux (поиск DNS)

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

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

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

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

Установка dig

Чтобы проверить, доступна ли команда dig в вашей системе, введите:

 dig -v

Вывод должен выглядеть примерно так:

 DiG 9.11.3-1ubuntu1.1-Ubuntu

Если в вашей системе отсутствует dig , команда выше выведет сообщение «dig: command not found». Инструмент dig можно установить с помощью менеджера пакетов дистрибутива.

Установка dig на Ubuntu и Debian

 sudo apt update && sudo apt install dnsutils

Установка dig на CentOS и Fedora

 sudo yum install bind-utils

Установить dig на Arch Linux

 sudo pacman -S bind-tools

Понимание вывода dig

В простейшей форме, когда команда dig используется для запроса одного хоста (домена) без дополнительных параметров, она довольно многословна.

В следующем примере мы работаем на домене linux.org :

 dig linux.org

Вывод должен выглядеть примерно так:

вывод команды dig

Давайте разберем раздел за разделом и объясним вывод команды dig :

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

     ; <<>> DiG 9.13.3 <<>> linux.org ;; global options: +cmd

    Если вы не хотите, чтобы эти строки включались в вывод, используйте опцию +nocmd . Эта опция должна быть первой после команды dig .

  2. Следующий раздел содержит техническую информацию об ответе, полученном от запрошенного центра (DNS-сервера). В заголовке указан код операции (действие, выполненное dig ) и статус действия. В данном примере статус — NOERROR , что означает, что запрошенный центр обработал запрос без ошибок.

     ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5

    Этот раздел можно удалить с помощью опции +nocomments , которая также отключает заголовки некоторых других разделов.

  3. Псевдораздел «OPT» отображается только в новых версиях утилиты dig . Подробнее о механизмах расширения DNS (EDNS) можно узнатьздесь .

     ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096

    Чтобы исключить этот раздел из вывода, используйте опцию +noedns .

  4. В разделе «ВОПРОС» dig отображает запрос (вопрос). По умолчанию dig запрашивает запись A.

     ;; QUESTION SECTION: ;linux.org. IN A

    Вы можете отключить этот раздел с помощью опции +noquestion .

  5. Раздел «ANSWER» даёт нам ответ на наш вопрос. Как мы уже упоминали, по умолчанию dig запрашивает запись A. Здесь мы видим, что домен linux.org указывает на IP-адрес 104.18.59.123 .

     ;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123

    Обычно отключать ответ не требуется, но вы можете удалить этот раздел из вывода с помощью опции +noanswer .

  6. Раздел «AUTHORITY» сообщает нам, какой сервер(ы) уполномочен отвечать на DNS-запросы относительно запрашиваемого домена.

     ;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.

    Вы можете отключить этот раздел вывода с помощью опции +noauthority .

  7. Раздел «ДОПОЛНИТЕЛЬНО» дает нам информацию об IP-адресах авторитетных DNS-серверов, указанных в разделе полномочий.

     ;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82

    Опция +noadditional отключает дополнительный раздел ответа.

  8. Последний раздел вывода dig содержит статистику по запросу.

     ;; Query time: 58 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Oct 12 11:46:46 CEST 2018 ;; MSG SIZE rcvd: 212

    Эту часть можно отключить с помощью опции +nostats .

Печать только ответа

Как правило, на ваш запрос dig вы хотели бы получить только краткий ответ.

1. Получите короткий ответ

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

 dig linux.org +short
 104.18.59.123 104.18.58.123

Вывод будет включать только IP-адреса записи A.

2. Получите подробный ответ

Для более подробного ответа отключите все результаты с помощью параметра +noall , а затем включите только раздел ответов с помощью параметра +answer .

 dig linux.org +noall +answer
 ; <<>> DiG 9.13.3 <<>> linux.org +noall +answer ;; global options: +cmd linux.org. 67 IN A 104.18.58.123 linux.org. 67 IN A 104.18.59.123

Запрос конкретного имени сервера

По умолчанию, если сервер имен не указан, dig использует серверы, перечисленные в файле /etc/resolv.conf .

Чтобы указать сервер имен, к которому будет выполняться запрос, используйте символ @ (at), за которым следует IP-адрес сервера имен или имя хоста.

Например, чтобы запросить у сервера имен Google (8.8.8.8) информацию о домене linux.org , вы должны использовать:

 dig linux.org @8.8.8.8
 ; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;linux.org. IN A ;; ANSWER SECTION: linux.org. 299 IN A 104.18.58.123 linux.org. 299 IN A 104.18.59.123 ;; Query time: 54 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri Oct 12 14:28:01 CEST 2018 ;; MSG SIZE rcvd: 70

Запрос типа записи

Dig позволяет выполнить любой допустимый DNS-запрос, добавив тип записи в конец запроса. В следующем разделе мы покажем вам примеры поиска наиболее распространённых записей, таких как A (IP-адрес), CNAME (каноническое имя), TXT (текстовая запись), MX (почтовый обменник) и NS (серверы имён).

1. Запрос записей A

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

 dig +nocmd google.com a +noall +answer
 google.com. 128 IN A 216.58.206.206

Как вы уже знаете, если тип записи DNS не указан, dig запросит запись A. Вы также можете запросить запись A, не указывая опцию a .

2. Запрос записей CNAME

Чтобы найти псевдоним доменного имени, используйте опцию cname :

 dig +nocmd mail.google.com cname +noall +answer
 mail.google.com. 553482 IN CNAME googlemail.l.google.com.

3. Запрос TXT-записей

Используйте опцию txt для получения всех записей TXT для определенного домена:

 dig +nocmd google.com txt +noall +answer
 google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"

4. Запрос записей MX

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

 dig +nocmd google.com mx +noall +answer
 google.com. 494 IN MX 30 alt2.aspmx.l.google.com. google.com. 494 IN MX 10 aspmx.l.google.com. google.com. 494 IN MX 40 alt3.aspmx.l.google.com. google.com. 494 IN MX 50 alt4.aspmx.l.google.com. google.com. 494 IN MX 20 alt1.aspmx.l.google.com.

5. Запрос записей NS

Чтобы найти авторитетные серверы имен для нашего домена, используйте опцию ns :

 dig +nocmd google.com ns +noall +answer
 google.com. 84527 IN NS ns1.google.com. google.com. 84527 IN NS ns2.google.com. google.com. 84527 IN NS ns4.google.com. google.com. 84527 IN NS ns3.google.com.

6. Запрос всех записей

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

 dig +nocmd google.com any +noall +answer
 google.com. 299 IN A 216.58.212.14 google.com. 299 IN AAAA 2a00:1450:4017:804::200e google.com. 21599 IN NS ns2.google.com. google.com. 21599 IN NS ns1.google.com. google.com. 599 IN MX 30 alt2.aspmx.l.google.com. google.com. 21599 IN NS ns4.google.com. google.com. 599 IN MX 50 alt4.aspmx.l.google.com. google.com. 599 IN MX 20 alt1.aspmx.l.google.com. google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" google.com. 21599 IN CAA 0 issue "pki.goog" google.com. 599 IN MX 40 alt3.aspmx.l.google.com. google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 21599 IN NS ns3.google.com. google.com. 599 IN MX 10 aspmx.l.google.com. google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60

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

Чтобы запросить имя хоста , связанное с определенным IP-адресом, используйте опцию -x .

Например, чтобы выполнить обратный поиск по адресу 208.118.235.148 , введите:

 dig -x 208.118.235.148 +noall +answer

Как видно из приведенного ниже вывода, IP-адрес 208.118.235.148 связан с именем хоста wildebeest.gnu.org .

 ; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer ;; global options: +cmd 148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.

Массовые запросы

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

В следующем примере мы запрашиваем домены, перечисленные в файле domains.txt .

домены.txt

 lxer.com linuxtoday.com tuxmachines.org
 dig -f domains.txt +short
 108.166.170.171 70.42.23.121 204.68.122.43

Файл .digrc

Поведение команды dig можно контролировать, настраивая параметры для каждого пользователя в файле ${HOME}/.digrc .

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

Например, если вы хотите отобразить только раздел ответов, откройте текстовый редактор и создайте следующий файл ~/.digrc :

~/.digrc

 +nocmd +noall +answer

Заключение

dig — это инструмент командной строки для запроса информации DNS и устранения неполадок, связанных с DNS.

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

копать терминал

Связанные руководства

Источник

Добавить комментарий

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