nslookup — это программа для запроса к серверам DNS. С помощью утилиты nslookup можно узнать значение DNS записей домена, узнать IP сайта, узнать сервера имён веб-сайта, почтовые сервера домена и другую информацию.
Программа nslookup умеет работать в двух режимах: интерактивном и не интерактивном.
Утилита и одноименная команда nslookup позволяет обращаться к серверу имен (NS) из командной строки. С ее помощью можно выполнить проверку работы DNS-сервера и созданных в нем записей. В данной инструкции подробно разберем работу с данной утилитой.
nslookup и синтаксис
Описание опций
Примеры
Аналоги
- Зачастую, в силу того, что информация в сети распространяется не мгновенно, привязанные к серверу домены начинают работать не сразу. Чтобы не тратить время впустую, ожидая обновления кеша DNS, желательно сразу проверить настройку вашего DNS-сервера и убедиться, что по истечении 72 часов (это максимальное время обновления глобального кеша DNS) ваш домен заработает.
This article will introduce the nslookup command which is used for obtaining server records. It will also provide examples of the command’s most popular options.

- Access to the command line interface
- Access to internet
Note: If you are not familiar with DNS record types, we strongly recommend you read DNS Record Types Explained before diving into this article.
dig — это гибкий инструмент для опроса DNS серверов имён. Он выполняет поиск по DNS и отображает ответы, которые возвращены от сервера или серверов имён. Большинство DNS администраторов используют dig для решения проблем DNS из-за его гибкости, простоты использования и ясности вывода. Другие инструменты поиска имеют меньшую функциональность чем dig.
Хотя обычно dig используется с аргументами командной строки, он также имеет пакетный режим обработки считываемых из файла запросов для поиска.
Если в запросе не указан определённый сервер имён, dig попытается использовать каждый из серверов, перечисленных в файле /etc/resolv.conf. Если рабочий сервер не найден, то dig отправить запрос на локальный хост.
The most efficient way to check DNS records in Linux is using dig command. This command will send the DNS query to the name servers listed in the resolver(/etc/resolv.conf). It allows you to query information about various DNS records, including A record, MX record CNAME record etc.
- dig dnsrecords.com
- dig @8.8.8.8 dnsrecords.com
- dig dnsrecords.com ANY
- dig dnsrecords.com +short
- dig dnsrecords.com +trace
- How to use Dig command
- Check DNS A record with Dig command
- Query DNS PTR record with dig command
- Query DNS MX record with dig command
- Get DNS records Against a specific DNS server with dig command
- Basic Syntax of Nslookup
- Domain name to IP Address Lookup
- IP Address to Domain name Lookup
- Find the NS Records of a Domain
- Find the MX Records of a Domain
- Find the SOA Records of a Domain
- Find All DNS Records Of a Domain
- Enable Debug mode with Nslookup
- Use Alternate DNS Server
- Troubleshoot DNS Resolution Issues
- Conclusion
- Поддержка IDN
- Использование другого порта для DNS запросов
- Связанные статьи
- Неинтерактивный режим nslookup
- Проблемы и решения
- Как узнать все DNS записи домена
- Примеры использования
- Отсутствие закрывающей точки
- Как сделать DNS запрос по протоколу TCP
- Смотрите также статьи
- Как показать A запись домена
- Также смотрите
- Поиск A и AAAA записей (IP адрес сайта) с nslookup
- Классы имён DNS
- Поддержка IDN
- Как включить режим отладки nslookup
- Как по IP адресу узнать имя хоста в nslookup
- Одновременный запрос множества DNS записей
- Dig возвращает пустой ответ
- Отсутствие A-записей для дочерних NS
- CNAME и другие записи
- Запрещены запросы к DNS-серверу
- Как в dig сделать обратный DNS запрос — как по IP получить имя хоста
- Dig с NS-серверов
- Ввод команды и синтаксис
- Dig с первичного сервера имен
- Как в dig вывести только секцию ответа
- Connection timed out
- Как в nslookup указать сервер для запросов
- Поиск записей MX (Mail Exchange)
- Запрос SOA записи для домена
- Показ цепочки DNS серверов, используемых при DNS запросах
- Transfer failed
- Как в dig вывести только IP адрес без дополнительных строк
- Как узнать IP адрес субдомена
- Интерактивный режим nslookup
- Опции nslookup
- Использование опций
- Как указать сервер имён для DNS запросов
- Как вывести все DNS записи для домена
- Installing nslookup
- View Domain’s NS Records
- View Domains MX Records
- Perform a Reverse DNS Lookup
- View SOA Records
- View Text Records
- View All Records
- View Information About a Specific Name Server
- View Pointer Records
- Query a Non-Default Port
- View Debugging Information
- Как просмотреть MX записи для домена
- Аналоги nslookup
- Связанные статьи
- Nslookup Syntax
- nslookup Options
- Whois
- Dig +trace
- Как получить авторитативный ответ?
- Что означает Non-authoritative answer
- DNS запрос записей SOA (Start of Authority)
How to use Dig command
- server – the IP address or hostname of the name server to query. It is optional and if we don’t provide a server argument then dig uses the name server listed in /etc/resolv.conf.
- name – the name of the resource record that is to be looked up.
- record type – the type of query requested by dig. For example, it can be an A record, MX record, SOA record or any other types.
Check DNS A record with Dig command
The A stands for address and this is the most fundamental type of DNS record. A record is used to point a domain or subdomain to an IP address. We can use this command to query A record for a domain name. For example:
$ dig www.howtouselinux.com
www.howtouselinux.com. 0 IN A 23.236.62.147
Query DNS PTR record with dig command
A PTR record is well-known as the reverse version of an A record. We can get the PTR record with this command. This is the PTR record for IP address 23.236.62.147.
Query DNS MX record with dig command
$ dig google.com mx
google.com. 0 IN MX 10 aspmx.l.google.com.
google.com. 0 IN MX 20 alt1.aspmx.l.google.com.
google.com. 0 IN MX 50 alt4.aspmx.l.google.com.
google.com. 0 IN MX 30 alt2.aspmx.l.google.com.
google.com. 0 IN MX 40 alt3.aspmx.l.google.com.
Get DNS records Against a specific DNS server with dig command

dig (сокращение от «domain information groper») — утилита DNS-клиент.
Утилита dig использует обычную командную строку для формирования запросов о доменах DNS-серверам. Формат команды dig следующий:
dig [@server] domain [query-type] [query-class] [+query-option] [-dig-otion] [%comment]
Параметр +query-option используется для изменения значения параметра в пакете DNS или для изменения формата вывода результатов работы dig. Большинство этих параметров пересекаются с параметрами программы nslookup. Ниже показаны параметры, которые можно использовать в запросе с dig.
Параметр Описание [no]debug Включает/выключает режим отладки [no]d2 Включает/выключает режим полной отладки [no]recurse Использовать/не использовать рекурсивные цепи retry=# Устанавливает число повторов запроса time=# Устанавливает длину интервала ожидания [no]ko Оставляет открытой опцию (реализует vc ) [no]vc Использовать/не использовать виртуальную цепь [no]defname Использовать/не использовать домен по умолчанию [no]search Использовать/не использовать список поиска domain=NAME Устанавливает домен по умолчанию с именем NAME [no]ignore Игнорировать/не игнорировать ошибки при усечении [no]primary Использовать/не использовать главный сервер [no]aaonly Флажок для авторитетного запроса [no]trace Показыввать трассу запросов [no]cmd Отображать аргументы при анализе [no]stats Вывод статистики по запросу [no]Header Вывод основного заголовка [no]header Вывод флагов заголовка [no]ttlid Отображение TTL [no]cl Вывод информации о классе [no]qr Отображение исходящего запроса [no]reply Вывод ответа [no]ques Вывод поля вопроса [no]answer Вывод поля ответа [no]author Вывод поля полномочий [no]addit Вывод поля дополнительной информации pfdef Устанавливает вывод флагов по умолчанию pfmin Устанавливает минимальный вывод флагов pfset=# Устанавливает число выводимых флагов # pfand=# Вывод # флагов поразрядно через операцию AND pfor=# Вывод # флагов поразрядно через операцию OR
Параметр -dig-otion используется для задания других опций, влияющих на работу dig.
Параметр Описание -x Указывает инверсное преобразование адреса в нормальном написании -f Считывает файл для дальнейшей пакетной обработки -T Время в секундах до включения режима пакетной обработки -p Номер используемого порта -P После получения ответа выдать команду ping -t Указывает тип запроса -c Указывает класс запроса -envsav Параметры dig должны быть сохранены для дальнейшего использования по умолчанию
В dig для вывода только секции ответа используйте ключи +noall +answer
# dig dieg.info +noall +answer dieg.info. 891 IN A 185.253.219.218
С помощью опции +short вывод команды dig будет ограничен исключительно IP адресом. Ниже примеры для А и MX записей:
# dig dieg.info +short185.253.219.218 # dig dieg.info mx +short mail.dieg.info.
Программа dig позволяет делать запрос и выводить информацию для различных типов DNS ресурсов. Чтобы показать какие MX записи у домена выполните команду:
dig dieg.info mx
Для сокращения выводимой информации запрашиваемый тип записи (а также другие опции) можно комбинировать с опцией +short:
dig dieg.info mx +short
Подтверждение права собственности на домен в Google Console на примере провайдера Namecheap.
Подтвердив право собственности на домен, вы сможете пользоваться своим сервисом Google, например G Suite, Drive Enterprise или Cloud Identity. Аккаунт G Suite открывает доступ к Gmail, Google Диску и другим службам.
При регистрации в сервисе Google вы получите проверочную запись, которую нужно скопировать и добавить в настройки домена (обычно они находятся у регистратора домена).
Проверить правильность настройки при помощи утилиты dig
example.com txt 8.8.8.8
dig позволяет увидеть подробную картину разрешения имени. Для того чтобы убедиться, что сервер или резолвер работает корректно, можно использовать следующие команды, предварительно добавив в конфигурационный файл ключ домена в качестве доверенного:
dig @xx.xx.xx.xx www.m-system.net +dnssec
xx.xx.xx.xx — ip адрес Вашего резолвера, поддерживающего ГОСТ. После выполнения этой команды в ответе должен присутствовать флаг ad — данные подтверждены.
Если ad флаг отсутствует, но Вы запрашиваете адрес имени из домена, ключ которого Вы добавили в доверенные — что-то не так.
Ответ SERVFAIL значит, что подпись не соответствует доверенному ключу либо отсутствует.
In the internet world, computers & devices always identify each other with a unique identification number called an IP address.
DNS stands for Domain Name System and computers use this to translate domain names to their IP addresses so that browsers can load the requested website.
When DNS stops working, you cannot access websites or send any emails.
If this is the case, you will need to troubleshoot and fix the DNS issues in order to access the website.
Nslookup stands for “name server lookup” and it is a command-line tool used to troubleshoot and verify DNS servers and records, and fix the name server related problems.
With Nslookup, you can find the IP address of any website by its name and also find the detailed information of the various DNS records of the specific domain name.
In this guide, we will show you how to use Nslookup to check DNS records with examples.
Basic Syntax of Nslookup
By default, Nslookup is installed in most Windows based operating systems.
To find all the options available with the Nslookup command, run the nslookup command hit Enter then type ? and hit Enter again.

Domain name to IP Address Lookup
nslookup your-domain.com

The Nslookup utility queries the DNS server and returns with the IP address as shown in the above screen.
IP Address to Domain name Lookup

Find the NS Records of a Domain
If you want to find which name servers are authoritative for a domain, by set the query type to NS and enter the domain name as shown below:
nslookup -type=ns your-domain.com
nslookup -type=ns yahoo.com

Find the MX Records of a Domain
nslookup -type=mx your-domain.com

Find the SOA Records of a Domain
nslookup -type=soa your-domain.com

Find All DNS Records Of a Domain
nslookup -type=any your-domain.com
nslookup -type=any yahoo.com

Enable Debug mode with Nslookup
If you want to display more information about your query and answer, you will need to enable debug mode with Nslookup.
nslookup -debug yahoo.com

Use Alternate DNS Server
If you run into issues accessing your website on your internal network, this may be a problem related to your internal DNS server.
In this case, you can use google DNS server to troubleshoot the issue.
1. Open the command line terminal, type nslookup and hit Enter to open nslookup in interactive mode.

2. Type “server google-dns-server-ip” and hit Enter.

Troubleshoot DNS Resolution Issues
In this section, we will learn how to troubleshoot DNS when DNS resolution is not working.
1. Check Network Connectivity
The first thing you should check is your network connectivity.

Here you should see a valid active internet connection.
2. Check your DNS Server Connectivity
Next, you need to find the IP address of your DNS server and check whether it is reachable or not.

In the above screen, you should see that your DNS server IP address is 100.100.2.136 and 100.100.2.138.
Next lets open the command-line interface (Start > RUN > type cmd and hit enter) and run the ping command to check the DNS server connectivity as shown below:

In the above screen, you should see that the DNS server is reachable from your computer.
3. Flush DNS Cache
The DNS cache stores the information of all visited websites, IP addresses and resource records.
Using an outdated DNS cache can lead to DNS resolution errors, so it is recommended that you flush the DNS cache periodically.

4. Release/Renew your DHCP Server IP address
If your network interface is configured to pull DNS information from DHCP server, then there is a possibility of IP address conflict or old DNS server information.
To resolve this, you will need to release and renew your DHCP server IP address.
IPCONFIG /RELEASE
IPCONFIG /RENEW
Conclusion
In the above article, we’ve learned how to troubleshoot DNS related issues with Nslookup command-line utility.
Hopefully the steps and screen shots above can help you resolve any of your issues or get you closer to a resolution
Please leave any questions or comments below!
Поддержка IDN
Если nslookup был скомпилирован с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), он может принимать и отображать доменные имена не ASCII. nslookup соответствующим образом преобразует кодировку символов доменного имени перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-то причине вы хотите отключить поддержку IDN, определите переменную среды IDN_DISABLE. Поддержка IDN отключена, если переменная установлена при запуске nslookup или когда стандартный вывод не является tty.
Использование другого порта для DNS запросов
С помощью опции -p вы можете сделать запрос на нестандартный порт сервера, вместо порта по умолчанию 53. Эта опция может использоваться для тестирования сервера имён, который настроен на прослушивание запросов на нестандартном номере порта.
dig -p 5300 zalinux.ru
Связанные статьи
- Как узнать IP DNS сервера в Linux (100%)
- Как пользоваться командой dig для DNS запросов (59.4%)
- Примеры DNS запросов командой host (59.4%)
- Как в Linux определяется порядок источников для разрешения имён (приоритет файла hosts и DNS) (59.4%)
- Как настроить локальный DNS используя файл /etc/hosts в Linux (59.4%)
- Как отобразить данные POST с cURL (РЕШЕНО) (RANDOM — 50%)
Неинтерактивный режим nslookup
Для работы с nslookup в неинтерактивном режиме достаточно указать после команды имя домена для поиска:
nslookup suip.biz

Проблемы и решения
Вся необходимая для диагностики информация о проблемах, возникшим в работе первичного сервера имен, содержится в логах. По умолчанию DNS-сервер пишет в системный лог /var/log/messages, однако в конфигурации может быть задано ведение логов в отдельном файле, поэтому следует свериться с конфигурацией вашего DNS-сервера. В этом разделе рассмотрены наиболее часто встречающиеся в логах ошибки.
Как узнать все DNS записи домена
nslookup -query=any zalinux.ru
Примеры использования
1. Запрос записи ipv6 для домена mail.ru.
nslookup -type=AAAA mail.ru
б) интерактивный режим:
> set type=AAAA
2. Узнать NS серверы для домена google.com.
nslookup -type=NS google.com
б) интерактивный режим:
> set type=NS
3. Определить mx-записи для yandex.ru через DNS-сервер 8.8.8.8
nslookup -type=MX yandex.ru 8.8.8.8
б) интерактивный режим:
> set type=MX
б) интерактивный режим:
> set type=ptr
Отсутствие закрывающей точки
Иногда в ответе dig можно наблюдать такую картину
[root@dns ~]# ; <<>> DiG 9.7.1-P2 <<>> <domain> @<IP-адрес VDS> ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1253 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;<domain>. IN A ;; ANSWER SECTION: <domain>. 3600 IN A 123.123.123.123 ;; AUTHORITY SECTION: <domain>. 3600 IN NS ns2.firstvds.ru.<domain>. <domain>. 3600 IN NS ns1.firstvds.ru.<domain>. ;; Query time: 70 msec ;; SERVER: 92.63.103.212#53(92.63.103.212) ;; WHEN: Fri Apr 15 15:49:16 2011 ;; MSG SIZE rcvd: 97
Проблема заключается в том, что при создании доменного имени были указаны некорректные сервера имен. Конкретно в данном случае пропущена закрывающаяся точка в доменном имени ns1.firstvds.ru.
Как сделать DNS запрос по протоколу TCP
С помощью опции +tcp вы можете включить использование TCP при запросах к серверам имён. По умолчанию используется UDP за исключением случаев, если запрошен тип any или ixfr=N, в которых по умолчанию применяется протокол TCP. Запросы AXFR всегда используют TCP.
dig zalinux.ru +tcp
Смотрите также статьи
- Примеры DNS запросов командой host
- Как пользоваться командой nslookup для DNS запросов
- Введение в DNS терминологию, компоненты и концепции
Как показать A запись домена
Информацию о различных типах DNS записях смотрите в статье «Введение в DNS терминологию, компоненты и концепции».
Достаточно указать только домен, для которого делается запрос, например, чтобы узнать A запись (содержит IP адрес сервера, на котором работает данный сайт) для доменного имени zalinux.ru:
dig zalinux.ru

Большая часть вывода является комментариями — они начинаются с точки с запятой (;)
Первая группа строк показывает версию программы, домен, информацию о котором запрашивается, глобальные опции, информация об ошибках, флаги, количество запросов, ответов и другие данные:
; <<>> DiG 9.14.4 <<>> zalinux.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18537 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
Данная группа строк показывает информацию о сделанном запросе, в том числе домен и тип DNS записи.
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;zalinux.ru. IN A
Значимая информация содержится в разделе ответа — именно здесь показан IP сайта:
;; ANSWER SECTION: zalinux.ru. 3799 IN A 185.26.122.38
Последняя группа комментариев содержит техническую информацию, в том числе время, которое занял запрос; DNS сервер, к которому был сделан запрос; время, когда был сделан запрос и другое:
;; Query time: 484 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Ср июл 24 03:21:13 MSK 2019 ;; MSG SIZE rcvd: 55
Также смотрите
Дополнительная информация о DNS и программах для DNS запросов:
Поиск A и AAAA записей (IP адрес сайта) с nslookup
По умолчанию показываются записи A и AAAA. То есть если вы хотите узнать IP сайта, то достаточно запустить команду без опций, достаточно указать только имя домена:
nslookup zalinux.ru
Классы имён DNS
Имена классов IN и CH перекрываются с именами доменов верхнего уровня IN и CH. Либо используйте опции -t и -c для указания типа и класса, либо используйте -q для указания имени домена, либо используйте «IN.» и «CH.» при поиске этих доменов верхнего уровня.
Узнать подробности о работе DNS и структуре этой системы, а также о видах записей DNS вы сможете в статье «Введение в DNS терминологию, компоненты и концепции».
Поддержка IDN
Если dig был собран с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), он может принимать и отображать не-ASCII доменные имена. dig соответствующим образом преобразует кодировку символов имени домена перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-либо причине вы хотите отключить поддержку IDN, используйте параметры +noidnin и +noidnout или определите переменную среды IDN_DISABLE.
Как включить режим отладки nslookup
Включив режим отладки вы будете получать более вербальный вывод, в том числе в выводе будет присутствовать такая информация как TTL. Будет показан полны пакет ответа и любые промежуточные покеты ответа полученные во время поиска:
nslookup -debug suip.biz

Как по IP адресу узнать имя хоста в nslookup
Если вам нужно для IP адреса узнать связанное с ним доменное имя, то достаточно указать этот IP:
nslookup 185.117.153.79
79.153.117.185.in-addr.arpa name = suip.biz.
Одновременный запрос множества DNS записей
Есть два способа выполнить несколько или сразу множество запросов к DNS серверам в dig.
Один из них — использовать опцию -f, после которой нужно указать файл, содержащий список запросов. Каждая строка в этом файле должна быть организована также, как это делается в запросах, когда используется интерфейс командной строки dig.
Второй вариант — это указать сразу несколько запросов в строке команды. Программа dig не только поддерживает множественность запросов, но и позволяет каждый из них запустить с персональным набором опцией, флагов и опций запросов.
В этом случае каждый аргумент представляет индивидуальный запрос в соответствии с описываемым синтаксисом. Каждый состоит из любых стандартных опций и флагом, имени для получения информации и опционального типа запроса и класса, а также опций запроса, который должны быть применены к этому запросу.
dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
показывает как dig может использоваться в командной строке для выполнения трёх поисков: ANY запрос для www.isc.org, обратный поиск для 127.0.0.1 и запрос NS записей для isc.org. Применена глобальная опция +qr, поэтому dig для каждого поиска показывает начальный запрос. Финальный запрос имеет локальную (применяемую только для него) опция запроса +noqr, которая означает, что dig не будет печатать начальный запрос когда он ищет NS записи для isc.org.
Dig возвращает пустой ответ
Пустой ответ означает то, что на VDS либо отсутствует файл зоны этого домена, либо то, что при подгрузке файла зоны возникли проблемы. Также причиной может быть отсутствие A-записи в файле зоны. Если в первом случае достаточно будет создать домен на сервере (через ISPmanager или с помощью ручной правки файла зоны, если ISPmanager отсутствует), то во втором потребуется изучить логи DNS-сервера.
Первая ошибка, которую мы рассмотрим — permission denied:
Mar 17 05:53:58 fvds named[19765]: zone fvdstest.com/IN: loading from master file /etc/bind/fvdstest.com failed: permission denied Mar 17 05:53:58 fvds named[19765]: zone fvdstest.com/IN: not loaded due to errors.
Ошибка говорит о некорректных правах на файл зоны или о некорректном владельце файла:
[root@dns ~]# ls -l /etc/bind/fvdstest.com -rw-r----- 1 root root 444 Mar 17 05:50 /etc/bind/fvdstest.com
В данном случае проблема именно с владельцем, им должен быть пользователь, от которого запущен bind:
[root@dns ~]# ls -l /etc/bind/fvdstest.com -rw-r----- 1 bind bind 444 Mar 17 05:50 /etc/bind/fvdstest.com
Также следует обратить внимание на права и группу самой директории /etc/bind/:
[root@dns ~]# ls -ld /etc/bind/ drwxr-sr-x 2 root bind 4096 Mar 15 18:42 /etc/bind
Отсутствие A-записей для дочерних NS
Следующая ошибка в логе:
Mar 17 05:56:55 fvds named[19933]: zone fvdstest.com/IN: NS 'ns1.fvdstest.com' has no address records (A or AAAA) Mar 17 05:56:55 fvds named[19933]: zone fvdstest.com/IN: NS 'ns2.fvdstest.com' has no address records (A or AAAA) Mar 17 05:56:55 fvds named[19933]: zone fvdstest.com/IN: not loaded due to errors.
Проблема в том, что в NS-записях указаны дочерние домены третьего уровня, для которых отсутствует A-запись: ‘ns1.fvdstest.com’ и ‘ns2.fvdstest.com’, соответственно, нужно либо указать другие, уже настроенные на другом домене, NS-сервера, либо прописать соответствующие A-записи:
ns1 IN A 10.10.10.10 ns2 IN A 11.11.11.11
CNAME и другие записи
Еще одна достаточно распространенная ошибка:
Mar 17 06:08:39 fvds named[20701]: zone fvdstest.com/IN: loading from master file /etc/bind/fvdstest.com failed: CNAME and other data Mar 17 06:08:39 fvds named[20701]: zone fvdstest.com/IN: not loaded due to errors.
Записи A и CNAME не могут одновременно сосуществовать для одного домена/поддомена:
test.fvdstest.com. IN A 10.10.10.10 test.fvdstest.com. IN CNAME google.com
После устранения всех ошибок в логе должна появиться следующая запись:
Mar 17 06:13:12 fvds named[20914]: zone fvdstest.com/IN: loaded serial 2014022800
Однако, даже после этого мы можем получить пустой ответ на запрос утилитой dig. Тут вариантов не так много:
По умолчанию утилита dig запрашивает именно A-запись домена, поэтому пустой ответ может означать, что эта запись отсутствует. Пример A-записи:
fvdstest.com. IN A 10.10.10.10
Тут стоит отметить, что в некоторых случаях необходимости в A-записи нет, и чтобы проверить, как отдается та или иная запись, нужно сообщить утилите dig тип запрашиваемой записи:
[root@dns ~]# dig fvdstest.com @188.120.234.14 MX ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> fvdstest.com @10.10.10.10 MX ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47888 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3 ;; QUESTION SECTION: ;fvdstest.com. IN MX ;; ANSWER SECTION: fvdstest.com. 3600 IN MX 10 mail.fvdstest.com. fvdstest.com. 3600 IN MX 20 mail.fvdstest.com. ;; AUTHORITY SECTION: fvdstest.com. 3600 IN NS ns2.fvdstest.com. fvdstest.com. 3600 IN NS ns1.fvdstest.com. ;; ADDITIONAL SECTION: mail.fvdstest.com. 3600 IN A 123.123.123.123 ns1.fvdstest.com. 3600 IN A 10.10.10.10 ns2.fvdstest.com. 3600 IN A 11.11.11.11 ;; Query time: 1 msec ;; SERVER: 188.120.234.14#53(188.120.234.14) ;; WHEN: Mon Mar 17 08:30:16 2014 ;; MSG SIZE rcvd: 151
Замечание: для получения всех записей можно указать тип ANY, также полезным будет ключ +short, позволяющий выводить сокращенный ответ:
[root@dns ~]# dig fvdstest.com @10.10.10.10 +short ANY "v=spf1 ip4:123.123.123.123 a mx ~all" fvds.com. root.fvds.com. 2014022800 10800 3600 604800 86400 ns1.fvdstest.com. ns2.fvdstest.com. 20 mail.fvdstest.com. 10 mail.fvdstest.com. 123.123.123.123
Запрещены запросы к DNS-серверу
Mar 17 06:29:22 fvds named[21971]: client 188.120.234.14#49834: query 'fvdstest.com/A/IN' denied
Вариантов диагностики в этом случае два: либо временно добавить свой адрес в список разрешенных, либо делать запросы непосредственно с сервера, на котором расположен slave. Если slave настроен так, чтобы делать запросы не с основного IP на интерфейсе, утилите dig нужно будет указать ключ «-b xxx.xxx.xxx.xxx», где xxx.xxx.xxx.xxx – IP на интерфейсе, с которого разрешены запросы к master:
[root@dns ~]# dig fvdstest.com @188.120.234.14 +short -b 188.120.234.14 ANY "v=spf1 ip4:123.123.123.123 a mx ~all" fvds.com. root.fvds.com. 2014022800 10800 3600 604800 86400 ns1.fvdstest.com. ns2.fvdstest.com. 20 mail.fvdstest.com. 10 mail.fvdstest.com. 123.123.123.123
Как в dig сделать обратный DNS запрос — как по IP получить имя хоста
Можно делать обратные DNS запросы, когда отсылаем IP адрес, а в ответ получаем имя хоста, для такого запроса используется опция -x. Пример с добавлением опции +short чтобы ограничить вывод только именем хоста:
dig -x 185.117.153.79 +short
Dig с NS-серверов
В этом случае мы запрашиваем информацию напрямую с NS-серверов, которые планируется использовать для указанного домена. Пример для запроса с ns1 (для ns2 запрос выглядит аналогично):
[root@dns ~]# dig firstvds.ru @ns1.firstvds.ru. ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru @ns1.firstvds.ru. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39440 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;firstvds.ru. IN A ;; ANSWER SECTION: firstvds.ru. 3600 IN A 195.211.221.106 ;; Query time: 67 msec ;; SERVER: 82.146.43.2#53(82.146.43.2) ;; WHEN: Tue Mar 18 09:30:41 2014 ;; MSG SIZE rcvd: 45
Здесь в секции ANSWER SECTION был возвращен IP, в который NS-сервер резолвит домен, при нормальной работе этот IP должны возвращать оба NS-сервера, если IP отличается от того, что вы назначили домену на основном сервере, то зона нуждается в обновлении. В ISPmanager, к примеру, это можно сделать кнопкой «Передать» в разделе «Доменные имена», если же у вас DNS-сервер настроен без использования панели, то зона, как правило, будет обновлена самостоятельно, либо по истечении TTL зоны, либо по запросу вторичного сервера имен, если используется механизм уведомлений (опция notify yes в BIND).
Также NS-сервер может вообще не ответить:
[root@dns ~]# dig fvdstest.ru @ns1.firstvds.ru. ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru @ns1.firstvds.ru ;; global options: +cmd ;; connection timed out; no servers could be reached
В этом случае следует убедиться, что внешний DNS-сервер доступен и на нем не заблокирован 53-й порт (если есть такая возможность).
Еще один вариант — пустой ответ:
[root@dns ~]# dig fvdstest.ru @ns1.firstvds.ru. ; <<>> DiG 9.8.1-P1 <<>> fvdstest.ru @ns1.firstvds.ru. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35308 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;fvdstest.ru. IN A ;; Query time: 123 msec ;; SERVER: 82.146.43.2#53(82.146.43.2) ;; WHEN: Tue Mar 18 09:41:57 2014 ;; MSG SIZE rcvd: 29
Также при возникновении каких-либо проблем на NS-серверах следует произвести диагностику первичного DNS-сервера.
Ввод команды и синтаксис
Для работы с утилитой необходимо открыть командную строку (cmd или powershell в Windows и unix-shell в UNIX). В системах на базе Windows утилита встроена, и мы можем работать с ней в любой момент. Для некоторых дистрибутивов Linux потребуется установка утилиты одной из команд:
yum install nslookup
apt-get install nslookup
* первая команда для систем на базе Red Hat, вторая — Debian.
Для выполнения запросов используем команду:
Самый простой пример использования команды:
Утилита также поддерживает работу в интерактивном режиме — вводим команду:
После можно делать запросы.
Dig с первичного сервера имен
Служит для запроса информации непосредственно с сервера, на котором создан домен:
[root@dns ~]# dig firstvds.ru @188.120.241.90 ; <<>> DiG 9.7.1-P2 <<>> firstvds.ru @188.120.241.90 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26391 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;firstvds.ru. IN A ;; ANSWER SECTION: firstvds.ru. 3600 IN A 188.120.241.90 ;; AUTHORITY SECTION: firstvds.ru. 3600 IN NS ns1.firstvds.ru. firstvds.ru. 3600 IN NS ns2.firstvds.ru. ;; ADDITIONAL SECTION: ns1.firstvds.ru. 3600 IN A 82.146.43.2 ns2.firstvds.ru. 3600 IN A 82.146.35.143 ;; Query time: 71 msec ;; SERVER: 188.120.241.90#53(188.120.241.90) ;; WHEN: Thu Apr 14 15:12:51 2011 ;; MSG SIZE rcvd: 113
Как в dig вывести только секцию ответа
dig zalinux.ru +nocomments +noquestion +noauthority +noadditional +nostats
Более короткий вариант записи:
dig zalinux.ru +noall +answer
Connection timed out
[root@dns ~]# dig fvdstest.com ; <<>> DiG 9.7.1-P2 <<>> fvdstest.com @10.10.10.10 ;; global options: +cmd ;; connection timed out; no servers could be reached
Данный вывод говорит о том, что на сервере, с которого производится запрос информации о доменном имени, возникли проблемы. Это может быть как неработающий named, так и блокировка 53 порта с помощью файрвола.
Как в nslookup указать сервер для запросов
Если вы хотите сделать запрос к определённому DNS серверу (а по умолчанию адреса серверов берутся из файла /etc/resolv.conf), то после доменного имени достаточно указать имя хоста или IP DNS сервера:
nslookup zalinux.ru 8.8.4.4
Как получить записи NS (Name Server) в nslookup
NS запись содержит сервера имён данного домена, для их просмотра выполните команду вида:
nslookup -query=ns zalinux.ru
Сервера Имён — это авторитативные сервера для данного домена, которые являются самый первым источником данных о DNS записях для данного домена.
Как правило, конечный пользователь обращается не к авторитативному серверу (поскольку их много — для каждого домена может быть свой), а к кэширующему DNS серверу.

Поиск записей MX (Mail Exchange)
Для показа хостов, используемых для обмены почты, запустите команду вида:
nslookup -query=mx zalinux.ru
Запрос SOA записи для домена
dig zalinux.ru SOA
Показ цепочки DNS серверов, используемых при DNS запросах
Опция +trace включает трассировку пути делегирования от корневых серверов имён для искомого имени. Трассировка отключена по умолчанию. Когда трассировка включена, dig выполняет итеративные запросы, чтобы преобразовать имя, которое было запрошено. Он будет следовать рекомендациям от корневых серверов, показывая ответ от каждого сервера, который использовался для разрешения поиска.
dig +trace zalinux.ru

+dnssec также устанавливается, когда +trace установлен для лучшей эмуляции запросов по умолчанию от сервера имён.
Transfer failed
[root@dns ~]# dig fvdstest.com @10.10.10.10 AXFR ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> fvdstest.com @10.10.10.10 AXFR ;; global options: +cmd ; Transfer failed.
Mar 17 07:18:51 fvds named[23074]: client 188.120.234.14#50652: zone transfer 'fvdstest.com/AXFR/IN' denied
Как в dig вывести только IP адрес без дополнительных строк
В приведённом выше примере большая часть информации не нужна пользователю — нужен только IP адрес. С помощью опции +short вывод команды dig будет ограничен исключительно IP адресом. Поскольку по умолчанию (если не указано друге) запрос делается относительно записи A, то будет показан IP адрес из записи A:
dig zalinux.ru +short
Как узнать IP адрес субдомена
Командой nslookup можно узнать IP адрес субдомена любого уровня:
nslookup lh5.googleusercontent.com
Интерактивный режим nslookup
Для входа в интерактивный режим достаточно запустить программу без опций:
nslookup

Любо указать дефис. Кроме дефиса также можно указать имя домена или адрес DNS сервера для запросов:
nslookup - 8.8.4.4
В интерактивном режиме для выполнения DNS запроса указывайте по одному доменному имени, для которого вы хотите узнать IP адрес.
В интерактивной сессии командой
server домен_или_IP
можно установить используемый для запросов DNS сервер, например:
server 8.8.4.4
Можно просмотреть текущие значения всех опций командой:
set all
Set options: novc nodebug nod2 search recurse timeout = 0 retry = 3 port = 53 ndots = 1 querytype = A class = IN srchlist =

Значения всех показанных опций можно изменить.
С помощью равнозначных команд:
set querytype=ЗАПИСЬ set type=ЗАПИСЬ
Можно изменить тип запрашиваемой DNS записи, например, чтобы установить тип записи на MX:
set type=MX
После этого все запросы будут делаться с учётом установвленных настроек, то есть например будет показываться только указанный тип записи. Кстати, чтобы узнать о всех типах записях и чем они различаются, а также как вообще работает DNS, смотрите статью «Введение в DNS терминологию, компоненты и концепции».
Чтобы выводились сразу все DNS записи установите эту настройку следующим образом:
set type=ANY
Пример вывода информации о сразу всех найденных DNS записях домена suip.biz:
> suip.biz Server: 8.8.4.4 Address: 8.8.4.4#53 Non-authoritative answer: Name: suip.biz Address: 185.117.153.79 suip.biz nameserver = ns1.marosnet.ru. suip.biz nameserver = ns2.marosnet.ru. suip.biz origin = dns-manager_marosnet_net mail addr = proghoster.gmail.com serial = 2016040402 refresh = 3600 retry = 3600 expire = 604800 minimum = 86400 suip.biz mail exchanger = 10 mail.suip.biz. suip.biz mail exchanger = 20 mail.suip.biz. Name: suip.biz Address: 2a02:f680:1:1100::3d5f Authoritative answers can be found from:

Рекурсивные запросы можно включить или отключить командами:
set recurse set norecurse
По умолчанию рекурсивные запросы включены.
Поменять порт по умолчанию для TCP/UDP соединений при запросах к DNS серверу можно командой вида:
set port=ПОРТ
Портом по умолчанию является 53.
Кроме рассмотренных, имеются и некоторые другие настройки, которые используются реже — время тайм-аута, количество попыток запросов и другие.
Интерактивный nslookup может оказаться полезным если вы хотите сделать ряд поисков по DNS записям и хотите, чтобы они были сделаны с определёнными настройками, которые вы устанавливаете на данную сессию.
Опции nslookup
При выполнении запросов мы можем использовать следующие опции:
Также мы можем вызвать описание для nslookup.
а) в системах на базе Windows:
б) в Linux:
Использование опций
При вводе команды nslookup к опциям добавляем дефис, например:
nslookup -timeout=1 -type=MX dmosk.ru
Если мы работаем с nslookup в интерактивном режиме, то опции задаются с помощью команды set:
* первая команда задает опцию для выполнения подробных запросов. Вторая — делает запрос для домена dmosk.ru.
Как указать сервер имён для DNS запросов
dig @8.8.4.4 zalinux.ru
По умолчанию сервера имён для запросов берутся из файла /etc/resolv.conf.
Как вывести все DNS записи для домена
Данный метод позволяет за один раз вывести сразу все типы DNS записей указанного домена, но он работает не во всех случаях:
dig zalinux.ru ANY
Для запроса всех типов DNS записей, но ограничив количества выводимых разделов только секцией ответа добавьте опции «+noall +answer»:
dig zalinux.ru ANY +noall +answer
Installing nslookup
nslookup comes preinstalled on all major operating systems. If you need to install it again on Ubuntu or another Linux distro featuring the APT package manager, install the dnsutils package:
sudo apt install dnsutilsOn CentOS, Fedora, and Red Hat, nslookup is part of the bind-utils package. Install it by running:
sudo dnf install bind-utilsNote: The authoritative answer in the output of the nslookup refers to the answer provided by one of the nameservers belonging to the domain being searched. The non-authoritative answer is provided by a nameserver not associated with the specific domain, e.g., your ISP nameserver.
View Domain’s NS Records
Name Server (NS) records store names of the domain’s name servers. To see a domain’s NS records, type:
nslookup -type=ns [domain-name]The output lists all available name servers:

View Domains MX Records
MX records store all relevant Mail Exchange server data. This information is used to route all email requests for the domain to the appropriate mail server.
Check a domain’s MX data by typing:
nslookup -type=mx [domain-name]The output shows the names of mail servers.

Perform a Reverse DNS Lookup
While nslookup provides information about a domain name, it can also be used to look for the domain name associated with an IP address.
nslookup [ip-address]The command outputs the domain name.

View SOA Records
View a domain’s SOA records by typing:
nslookup -type=soa [domain-name]The nslookup command output shows the relevant information:

View Text Records
nslookup -type=txt [domain-name]The output shows each TXT record in a separate line:

View All Records
View all available DNS records of a domain using the any option.
nslookup -type=any [domain-name]The output shows NS, SOA, MX, and TXT information:

View Information About a Specific Name Server
nslookup [domain-name] [name-server]The output is now limited to the nameserver you specified:

View Pointer Records
Pointer records are used for reverse DNS lookups to confirm that the IP address belongs to a specific domain name. When using the ptr option, type the IP address in reverse, i.e., 1.2.3.4 becomes 4.3.2.1:
nslookup -type=ptr [reverse-ip-address].in-addr.arpaLook for the domain name in the output.

Query a Non-Default Port
DNS servers use port 53 to communicate. If you want to check a different port, specify it with the port option:
nslookup -port=[port-number] [domain-name]View Debugging Information
To view information useful for debugging, use the debug option:
nslookup -debug [domain-name]
Note: In the interactive mode, setting the debug option turns on the debugging mode. To exit the mode, set the nodebug option.
After reading this article, you should know how to install and use the nslookup command on Linux. The article provided examples of the most common uses of nslookup.
Как просмотреть MX записи для домена
Программа dig позволяет делать запрос и выводить информацию для различных типов DNS ресурсов. Чтобы показать какие MX записи у домена выполните команду:
dig zalinux.ru MX
Для сокращения выводимой информации запрашиваемый тип записи (а также другие опции) можно комбинировать с опцией +short:
dig zalinux.ru MX +short
Аналоги nslookup
1) В качестве альтернативы командной строке, можно воспользоваться различными онлайн сервисами для выполнения запросов к DNS. Например, на 2whois.ru.
2) Для Linux можно воспользоваться утилитой dig, которая также предназначена для выполнения запросов к DNS.
3) На мобильных устройствах, например, под управлением Android есть свои утилиты для опроса DNS. Например, Ping & Net.

Была ли полезна вам эта инструкция?
Связанные статьи
- Как узнать IP DNS сервера в Linux (100%)
- Как узнать все DNS записи сайтов за CloudFlare (100%)
- Примеры DNS запросов командой host (63.9%)
- Как пользоваться командой nslookup для DNS запросов (63.9%)
- Как в Linux определяется порядок источников для разрешения имён (приоритет файла hosts и DNS) (63.9%)
- Как отобразить данные POST с cURL (РЕШЕНО) (RANDOM — 50%)
Nslookup Syntax
The nslookup command can be used in two modes: interactive and non-interactive. To initiate the nslookup interactive mode, type the command name only:
nslookupThe prompt that appears lets you issue multiple server queries.

For example, you can type a domain name and receive information about it.
www.google.comAfter nslookup outputs the information, it provides another prompt.

In interactive mode, specify an option in a separate line before the query. Precede the option with set:
set [option]
To exit interactive mode, type:
exitThe non-interactive mode lets you use nslookup to issue single queries. The syntax for the non-interactive mode is:
nslookup [options] [domain-name]The command and the query are written in the same line.

nslookup Options
Whois
Начать диагностику следует с запроса whois:
[root@dns ~]# whois firstvds.ru % By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). domain: FIRSTVDS.RU nserver: ns1.firstvds.ru. 82.146.43.2 nserver: ns2.firstvds.ru. 94.250.248.160 state: REGISTERED, DELEGATED, VERIFIED org: CJSC "Pervyj" registrar: REGTIME-REG-RIPN admin-contact: http://whois.webnames.ru created: 2002.08.07 paid-till: 2014.08.08 free-date: 2014.09.08 source: TCI Last updated on 2014.03.18 03:36:35 MSK
Также следует обратить внимание на пункты «state» и «Status» (для доменов в зонах .com./.org): в поле «state» обязательно должны быть пометки REGISTERED и DELEGATED, в поле «Status» — «Ok». Для отсеивания всего лишнего из вывода whois можно использовать следующую команду:
[root@dns ~]# whois firstvds.ru | grep -Ei 'name server|nserver|state|status' nserver: ns1.firstvds.ru. 82.146.43.2 nserver: ns2.firstvds.ru. 94.250.248.160 state: REGISTERED, DELEGATED, VERIFIED
[root@dns ~]# whois ispserver.com | grep -Ei 'name server|nserver|state|status' Name Server: NS1.ISPVDS.COM Name Server: NS2.ISPVDS.COM Status: ok Domain Status: ok Name Server: NS1.ISPVDS.COM Name Server: NS2.ISPVDS.COM
Замечание: для доменов в зоне .com/.org следует обращать внимание только на первые две записи «Name Server».
Если домен не зарегистрирован или зарегистрирован недавно, можно увидеть такую картину:
[root@dns ~]# whois fvdstest.ru % By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). No entries found for the selected source(s). Last updated on 2014.03.18 03:46:37 MSK
Информация во whois может обновляться в течение трех часов, поэтому если вы уже приобрели домен, нужно некоторое время подождать. Это также касается смены NS-серверов домена.
Dig +trace
dig — утилита, предоставляющая пользователю интерфейс командной строки для отправки запросов к DNS-серверам. Первый запрос, который нас интересует, — трассировка запросов к домену:
[root@dns ~]# dig firstvds.ru +trace ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru +trace ;; global options: +cmd . 10045 IN NS l.root-servers.net. . 10045 IN NS h.root-servers.net. . 10045 IN NS a.root-servers.net. . 10045 IN NS i.root-servers.net. . 10045 IN NS g.root-servers.net. . 10045 IN NS d.root-servers.net. . 10045 IN NS j.root-servers.net. . 10045 IN NS m.root-servers.net. . 10045 IN NS c.root-servers.net. . 10045 IN NS b.root-servers.net. . 10045 IN NS e.root-servers.net. . 10045 IN NS f.root-servers.net. . 10045 IN NS k.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 2311 ms ru. 172800 IN NS e.dns.ripn.net. ru. 172800 IN NS f.dns.ripn.net. ru. 172800 IN NS b.dns.ripn.net. ru. 172800 IN NS d.dns.ripn.net. ru. 172800 IN NS a.dns.ripn.net. ;; Received 341 bytes from 192.36.148.17#53(192.36.148.17) in 934 ms firstvds.ru. 345600 IN NS ns1.firstvds.ru. firstvds.ru. 345600 IN NS ns2.firstvds.ru. ;; Received 97 bytes from 193.232.156.17#53(193.232.156.17) in 548 ms firstvds.ru. 3600 IN A 195.211.221.106 ;; Received 45 bytes from 94.250.248.160#53(94.250.248.160) in 71 ms
[root@dns ~]# dig firstvds.ru +trace ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru +trace ;; global options: +cmd . 10045 IN NS l.root-servers.net. . 10045 IN NS h.root-servers.net. . 10045 IN NS a.root-servers.net. . 10045 IN NS i.root-servers.net. . 10045 IN NS g.root-servers.net. . 10045 IN NS d.root-servers.net. . 10045 IN NS j.root-servers.net. . 10045 IN NS m.root-servers.net. . 10045 IN NS c.root-servers.net. . 10045 IN NS b.root-servers.net. . 10045 IN NS e.root-servers.net. . 10045 IN NS f.root-servers.net. . 10045 IN NS k.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 2311 ms ru. 172800 IN NS e.dns.ripn.net. ru. 172800 IN NS f.dns.ripn.net. ru. 172800 IN NS b.dns.ripn.net. ru. 172800 IN NS d.dns.ripn.net. ru. 172800 IN NS a.dns.ripn.net. ;; Received 341 bytes from 192.36.148.17#53(192.36.148.17) in 934 ms firstvds.ru. 345600 IN NS ns1.oldfirstvds.ru. firstvds.ru. 345600 IN NS ns2.oldfirstvds.ru. ;; Received 97 bytes from 193.232.156.17#53(193.232.156.17) in 548 ms firstvds.ru. 3600 IN A 188.120.252.3 ;; Received 45 bytes from 94.250.248.160#53(94.250.248.160) in 71 ms
Здесь мы видим несоответствие NS-серверов, на которые проделегирован домен, и тех, на которые указывают сервера зоны .ru (ns1.oldfirstvds.ru. и ns2.oldfirstvds.ru.).
[root@dns ~]# dig firstvds.ru +trace ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru +trace ;; global options: +cmd . 9554 IN NS i.root-servers.net. . 9554 IN NS b.root-servers.net. . 9554 IN NS c.root-servers.net. . 9554 IN NS k.root-servers.net. . 9554 IN NS e.root-servers.net. . 9554 IN NS h.root-servers.net. . 9554 IN NS d.root-servers.net. . 9554 IN NS f.root-servers.net. . 9554 IN NS l.root-servers.net. . 9554 IN NS g.root-servers.net. . 9554 IN NS m.root-servers.net. . 9554 IN NS j.root-servers.net. . 9554 IN NS a.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 2399 ms ru. 172800 IN NS a.dns.ripn.net. ru. 172800 IN NS b.dns.ripn.net. ru. 172800 IN NS d.dns.ripn.net. ru. 172800 IN NS e.dns.ripn.net. ru. 172800 IN NS f.dns.ripn.net. ;; Received 341 bytes from 128.63.2.53#53(128.63.2.53) in 1061 ms ru. 3600 IN SOA a.dns.ripn.net. hostmaster.ripn.net. 4021899 86400 14400 2592000 3600 ;; Received 90 bytes from 193.232.128.6#53(193.232.128.6) in 78 ms
Сервера зоны .ru ничего не знают об NS-серверах, обслуживающих зону запрашиваемого домена. Последние два случая могут быть обусловлены как проблемами в работе DNS, так и тем, что информация о домене еще не обновилась на корневых серверах имен, поэтому потребуется дальнейшая диагностика.
Как получить авторитативный ответ?
Предположим, я хочу узнать IP адрес домена suip.biz, но хочу получить ответ только от авторитативного DNS сервера для данного домена.
Для начала нам нужно узнать, какие сервера имён являются авторитативными для данного домена, то есть какие у этого сайта сервера имён. Как мы узнали чуть выше, нам нужно командой узнать сервера имён для данного домена:
nslookup -query=ns suip.biz
Получено сразу два сервера имён (на случай, если с одним из них будут проблемы).
Мы также уже рассмотрели, как делать запросы к определённому DNS серверу, поэтому выбираем любой из двух (кстати, их может быть больше) и делаем запрос непосредственному к данному DNS серверу:
nslookup suip.biz ns1.marosnet.ru
Обратите внимание, что надпись «Non-authoritative answer.» больше не выводится.
Что означает Non-authoritative answer
В большинстве ответов вы будете видеть надпись Non-authoritative answer. Чтобы понять её причину, нужно быть знакомым с работой DNS.
Если вы прочитали статью по ссылке, то вы знаете, что DNS сервер является авторитативным (authoritative) для данного домена, если он указан в качестве Сервера Имён (NS) в соответствующих записях для данного домена, а сам DNS сервер содержит файлы зоны для данного домена.
DNS запрос записей SOA (Start of Authority)
nslookup -type=soa zalinux.ru

