Разрешение доменных имен с помощью команды dig в Linux
При управлении зонами DNS вам часто приходится искать сведения о зоне на случай, если что-то работает не так, как ожидалось. Команда dig — очень полезный инструмент, который помогает устранять подобные проблемы. В этом руководстве показано, как разрешать доменные имена в оболочке Linux и как запрашивать у сервера имен различные типы записей DNS, такие как записи A, MX и NS. Чтобы разрешить доменное имя в оболочке, мы будем использовать команду dig.
Используйте команду dig для разрешения доменного имени
Разрешение домена example.com:
dig example.com
Если домен можно разрешить, результат будет примерно такой:
root@server1:~# dig linux-console.net
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> linux-console.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50297
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;linux-console.net. IN A
;; ANSWER SECTION:
linux-console.net. 299 IN A 104.24.0.68
linux-console.net. 299 IN A 104.24.1.68
;; Query time: 233 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Aug 08 10:35:15 CEST 2018
;; MSG SIZE rcvd: 75
Как запросить локальный DNS-сервер с помощью dig
Чтобы проверить, отвечает ли за этот домен локальный веб-сервер, используйте следующую команду:
dig @localhost example.com
Получить имя почтового сервера с помощью dig
Если вы хотите узнать, какой почтовый сервер отвечает за обработку почты на сайте example.com, вы можете использовать команду:
dig MX example.com
Результат будет похож на этот:
root@server1:~# dig MX linux-console.net
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> MX linux-console.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14115
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;linux-console.net. IN MX
;; ANSWER SECTION:
linux-console.net. 299 IN MX 10 mail.linux-console.net.
;; Query time: 205 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Wed Aug 08 10:36:30 CEST 2018
;; MSG SIZE rcvd: 64
Получите дополнительные параметры команды dig
Чтобы получить все доступные параметры команды dig, вы можете запустить:
dig --help
Более подробное описание вы найдете на странице руководства команды dig:
man dig
Вот выдержка из справочной страницы инструмента, которая ясно показывает, как использовать dig:
A typical invocation of dig looks like:
dig @server name type
where:
server
is the name or IP address of the name server to query. This can be an IPv4 address in
dotted-decimal notation or an IPv6 address in colon-delimited notation. When the supplied
server argument is a hostname, dig resolves that name before querying that name server.
If no server argument is provided, dig consults /etc/resolv.conf; if an address is found
there, it queries the name server at that address. If either of the -4 or -6 options are in
use, then only addresses for the corresponding transport will be tried. If no usable addresses
are found, dig will send the query to the local host. The reply from the name server that
responds is displayed.
name
is the name of the resource record that is to be looked up.
type
indicates what type of query is required — ANY, A, MX, SIG, etc. type can be any valid query
type. If no type argument is supplied, dig will perform a lookup for an A record.
Если вы хотите, вы также можете заставить команду dig удалить определенные разделы из вывода. Например, чтобы переключить отображение строк комментариев в выводе или раздела вопросов запроса при возврате ответа, используйте параметры +nocomments и +noquestion.
На следующем снимке экрана показаны эти параметры в действии:
Получить серверы имен домена
Двигаясь дальше, как и записи MX, вы также можете запрашивать записи NS с помощью команды dig. Вот как вы можете это сделать:
копать NS example.com
Ниже приведен вывод, который эта команда выдала в нашем случае:
Получите IP-адрес доменного имени с помощью команды dig
Если вы хотите, чтобы dig отображал только IP-адрес сервера, используйте опцию +short.
Например:
копать example.com +коротко
Если вы хотите запросить несколько веб-сайтов/серверов за один раз, вы можете создать список имен в файле и передать имя этого файла в качестве входных данных в параметр -f команды dig.
-f file
Batch mode: dig reads a list of lookup requests to process from the given file. Each line in the
file should be organized in the same way they would be presented as queries to dig using the
command-line interface.
Вот пример: