Android

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

DNS // Настройка bind

DNS // Настройка bind

Оглавление:

Anonim

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

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

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

Установка dig

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

dig -v

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

DiG 9.11.3-1ubuntu1.1-Ubuntu

Если dig отсутствует в вашей системе, приведенная выше команда выведет «dig: команда не найдена». Вы можете легко установить инструмент 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 довольно многословна.

В следующем примере мы выполним запрос для получения информации о домене linux.org .

dig linux.org

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

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

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

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

    Первый раздел содержит технические подробности об ответе, полученном от запрашиваемого органа (DNS-сервер). Заголовок показывает код операции (действие, выполненное копанием) и статус действия. В этом примере состояние имеет значение NOERROR , что означает, что запрошенный орган NOERROR запрос без каких-либо проблем.

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

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

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

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

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

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

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

    Раздел «ОТВЕТ» дает нам ответ на наш вопрос. Как мы уже упоминали, по умолчанию 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 .

    Раздел «AUTHORITY» сообщает нам, какие серверы являются полномочиями для ответа на DNS-запросы о запрашиваемом домене.

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

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

    Раздел «ДОПОЛНИТЕЛЬНО» предоставляет нам информацию об 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 отключает дополнительный раздел ответа.

    Последний раздел вывода 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 опции +nostats .

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

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

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 :

dig +nocmd google.com a +noall +answer

google.com. 128 IN A 216.58.206.206

Как вы уже знаете, если тип записи DNS не указан, dig запросит запись 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.

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

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

domains.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 файле ${HOME}/.digrc .

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

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

~ /.Digrc

+nocmd +noall +answer

Вывод

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

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