Определить список корневых dns серверов при помощи консольных команд

Обновлено: 01.07.2024

В этой статье мы расскажем, что такое DNS Lookup и как узнать, какие DNS-записи прописаны для домена с помощью утилиты NSLOOKUP.

Что такое NSLOOKUP

DNS ― это центральный элемент интернет-системы. DNS соединяет IP-адрес с доменным именем, которое ему соответствует. Благодаря этой системе, нам не нужно запоминать набор цифр (например 123.123.123.123), чтобы перейти на сайт. Достаточно ввести домен в поисковую строку и браузер автоматически преобразует его в IP-адрес. Чтобы найти сайт, браузер обращается к DNS-системе. Процесс поиска нужного IP называется DNS lookup (DNS-поиск). Браузер делает его при загрузке каждого сайта.

Однако посмотреть DNS может не только браузер. Любой пользователь может получить информацию о записях через сервис Whois или через NSLOOKUP. NSLOOKUP — это утилита, которая позволяет через командную строку узнать содержимое DNS. Утилита поможет:

  • узнать IP-адрес,
  • узнать A, NS, SOA, MX-записи для домена.

Как использовать утилиту NSLOOKUP

В Windows и macOS утилита встроена, поэтому можно сразу переходить в терминал и начинать с ней работать. Для Linux-систем иногда нужна её установка.

Для установки утилиты в CentOS и Ubuntu в терминале введите:

Для установки утилиты в Debian введите:

Теперь можно переходить к работе с утилитой. Если вы хотите сделать несколько запросов NSLOOKUP, можно включить утилиту в интерактивном режиме. Тогда вам не придется каждый раз писать nslookup в командах. Для этого введите:

Чтобы выйти из интерактивного режима, введите exit .

Как узнать A-запись домена

С помощью А-записи домен прикрепляется к IP-адресу. Таким образом, А-запись позволяет найти IP.

Вы увидите следующую информацию:

Как использовать NSLOOKUP 1

NSLOOKUP: указать DNS-сервер

Как узнать MX-запись

При создании электронной почты в ресурсных записях прописывают MX-записи .

Для определения MX-записей введите команду:

Перед вами появится вывод:

Как использовать NSLOOKUP 2

DNS MX lookup

Как определить NS-записи домена

Утилита NSLOOKUP позволяет определить, какие NS-серверы использует сайт.

Для этого введите команду:

Перед вами появится список NS:

Как использовать NSLOOKUP 3

Как определить SOA-запись

SOA-запись (Start of Authority) — начальная запись зоны, которая указывает местоположение эталонной записи о домене. Она содержит в себе контактную информацию лица, ответственного за зону, время кэширования информации на серверах и данные о взаимодействии DNS.

Для определения SOA-записи введите команду:

Как использовать NSLOOKUP 4

Как изменить интервал ожидания

Когда интернет слабый, для ответа сервера нужно больше времени, чем обычно. Если ответ не приходит в течение 5 секунд, запрос либо повторяется, либо появляется ошибка. Чтобы ответ от сервера успел дойти, нужно увеличить время ожидания. Для этого введите команду:

Что значит authoritative и non-authoritative

В ответе на любую команду утилита показывает, с какого сервера была получена информация. Ответ приходит от серверов двух типов:

Authoritative answer (авторитетный ответ) – это ответ, который получен от основного (официального) сервера. Non-authoritative answer (неавторитетный ответ) – это ответ от промежуточного сервера. Например, на скриншотах из нашей статьи можно увидеть, что ответ приходил от non-authoritative сервера:

Как использовать NSLOOKUP 5

Обратите внимание! На промежуточном сервере может храниться кэшированная копия DNS. Если запись DNS была изменена недавно, кэшированная копия может содержать неактуальную информацию.

    Утилита NSLOOKUP присутствует в операционных системах Windows, начиная с Windows NT , и предназначена для формирования запросов к серверам DNS из командной строки. Фактически, утилита является аналогом службы DNS-клиент и позволяет диагностировать проблемы с разрешением имен в системе DNS. По умолчанию, все запросы отправляются на DNS-сервер, адрес которого задан настройками сетевого подключения. В терминах утилиты такой сервер является сервером по умолчанию (default server). Команда ipconfig /all позволяет получить информацию о настройках протокола IP и, в том числе, о серверах DNS, используемых в системе.

При запуске nslookup без параметров, утилита переходит в интерактивный режим, ожидая ввод команд пользователя. Ввод знака вопроса или help позволяет отобразить справку о внутренних командах и опциях nslookup :

(идентификаторы отображаются в верхнем регистре, квадратные скобки "[]" обозначают необязательные параметры)

NAME - печать сведений об узле или домене NAME с помощью сервера по умолчанию
NAME1 NAME2 - та же операция, но в качестве сервера используется NAME2
help или ? - печать сведений о стандартных командах
set OPTION - установить параметр
all - печать параметров, текущего сервера и узла
[no]debug - печать отладочных сведений
[no]d2 - печать полных отладочных сведений
[no]defname - добавить имя домена ко всем запросам
[no]recurse - запрос рекурсивного ответа на запрос
[no]search - использовать список поиска доменов
[no]vc - всегда использовать виртуальную схему
domain=NAME - установить имя домена по умолчанию NAME
srchlist=N1[/N2/. /N6] - установить домен N1 и список поиска N1,N2 и т.д.
root=NAME - установить корневой сервер NAME
retry=X - установить число повторов X
timeout=X - установить интервал времени ожидания в X секунд
type=X - установить тип запроса (пр. A,AAAA,A+AAAA,ANY,CNAME,MX ,NS,PTR,SOA,SRV)
querytype=X - то же, что и type
class=X - установить класс запроса ( IN (Internet), ANY)
[no]msxfr - использовать быструю зону MS для передачи
ixfrver=X - текущая версия, использующаяся в передаче запросов IXFR
server NAME - установить сервер по умолчанию NAME, используя текущий сервер по умолчанию
lserver NAME - установить сервер по умолчанию NAME, используя первоначальный сервер
root - сделать текущий сервер по умолчанию корневым сервером
ls [opt] DOMAIN [> FILE] - перечисление адресов в домене DOMAIN (необязательно: вывод в файл FILE)
-a - перечисление канонических имен и псевдонимов
-d - перечисление всех записей
-t TYPE - перечисление записей указанного типа RFC (пр. A,CNAME,MX,NS,PTR etc.)
view FILE - сортировка файла "ls" и его просмотр с помощью pg

exit - выход из программы

Примеры использования команды NSLOOKUP

При запуске с некоторыми из выше перечисленных параметров, команда nslookup выполняется в не интерактивном режиме без диалога с пользователем:

Пример отображаемых данных:

Для разных версий nslookup и разных DNS-серверов, обслуживающих запрос, отображаемая информация может незначительно отличаться. Тот же запрос, сформированный англоязычной версией утилиты nslookup.exe и направленный на обработку DNS-серверу компании Google приведет к отображению следующих данных:

Got answer:
HEADER:

opcode = QUERY, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 1, additional = 0

opcode = QUERY, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0

opcode = QUERY, rcode = REFUSED
header flags: response, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0

opcode = QUERY, rcode = NOERROR
header flags: response, auth. answer, want recursion
questions = 1, answers = 11, authority records = 0, additional = 7

nslookup 8.8.4.4 - отобразить имя узла, соответствующее IP-адресу 8.8.4.4

Утилита nslookup была первоначально разработана как часть пакета BIND и перенесена в Windows корпорацией Microsoft.

В настоящий момент Nslookup является встроенным инструментом во всех поддерживаемых версиях ОС Windows.

Как использовать Nslookup для проверки записей DNS?

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

При запуске Nslookup отправляет запросы на DNS-сервер, указанный в настройках вашего сетевого подключения.

Этот адрес считается DNS-сервером по умолчанию (предпочтительный).

Пользователь может указать адрес любого другого доступного DNS-сервера.

В результате на него будут отправлены все следующие DNS-запросы.

Вы можете использовать утилиту nslookup в интерактивном или неинтерактивном режиме.

Чтобы запустить DNS-запрос с помощью инструмента nslookup в неинтерактивном режиме, откройте командную строку и запустите команду:

Утилита nslookup запрашивает DNS-сервер (он указан в строке сервера), и он возвращает, что это имя соответствует IP-адресу 37.1.214.145.

Такой ответ указывает, что ваш DNS-сервер доступен, работает правильно и обрабатывает запросы на разрешение имен DNS.

Если вы получили такой ответ:

Это означает, что для этого имени записей в зоне DNS не найдено.


В этом случае проверьте, указали ли вы правильный адрес DNS-сервера и существует ли проблема с сетевым подключением от поставщика IS.

Вы можете получить доступ к авторизованному серверу, указав его адрес непосредственно в параметрах утилиты nslookup.

Например, чтобы разрешить имя на авторизованном DNS-сервере (который содержит этот домен), используйте команду:

Совет. Обратите внимание, что команды nslookup выполняется с учетом регистра.


Чтобы закрыть интерактивную сессию nslookup, введите exit и нажмите Enter.

Чтобы найти DNS-серверы, ответственные за определенный домен (авторитетные серверы), выполните следующие команды:

Вы можете выполнить обратные запросы (получить DNS-имя по IP-адресу), просто введите IP-адрес в интерактивном приглашении nslookup и нажмите Enter.

Вы можете указать тип записей DNS, которые должен вернуть nslookup.

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

Как вы можете видеть, этот домен имеет 2 записи MX с приоритетами 10 и 20 (чем меньше число, тем выше приоритет адреса).

Если запись MX не отображается, скорее всего, они просто не настроены для этого домена.

Чтобы перечислить все DNS-записи в доменной зоне, выполните команду:

nslookup — это программа для запроса к серверам DNS. С помощью утилиты nslookup можно узнать значение DNS записей домена, узнать IP сайта, узнать сервера имён веб-сайта, почтовые сервера домена и другую информацию.

Программа nslookup умеет работать в двух режимах: интерактивном и не интерактивном.

Интерактивный режим nslookup

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


Любо указать дефис. Кроме дефиса также можно указать имя домена или адрес DNS сервера для запросов:

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

В интерактивной сессии командой

можно установить используемый для запросов DNS сервер, например:

Можно просмотреть текущие значения всех опций командой:


Значения всех показанных опций можно изменить.

С помощью равнозначных команд:

Можно изменить тип запрашиваемой DNS записи, например, чтобы установить тип записи на MX:

После этого все запросы будут делаться с учётом установвленных настроек, то есть например будет показываться только указанный тип записи. Кстати, чтобы узнать о всех типах записях и чем они различаются, а также как вообще работает DNS, смотрите статью «Введение в DNS терминологию, компоненты и концепции».

Чтобы выводились сразу все DNS записи установите эту настройку следующим образом:


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

По умолчанию рекурсивные запросы включены.

Поменять порт по умолчанию для TCP/UDP соединений при запросах к DNS серверу можно командой вида:

Портом по умолчанию является 53.

Кроме рассмотренных, имеются и некоторые другие настройки, которые используются реже — время тайм-аута, количество попыток запросов и другие.

Интерактивный nslookup может оказаться полезным если вы хотите сделать ряд поисков по DNS записям и хотите, чтобы они были сделаны с определёнными настройками, которые вы устанавливаете на данную сессию.

Неинтерактивный режим nslookup

Для работы с nslookup в неинтерактивном режиме достаточно указать после команды имя домена для поиска:


Поиск A и AAAA записей (IP адрес сайта) с nslookup

По умолчанию показываются записи A и AAAA. То есть если вы хотите узнать IP сайта, то достаточно запустить команду без опций, достаточно указать только имя домена:

Как по IP адресу узнать имя хоста в nslookup

Если вам нужно для IP адреса узнать связанное с ним доменное имя, то достаточно указать этот IP:

Как узнать IP адрес субдомена

Командой nslookup можно узнать IP адрес субдомена любого уровня:

Поиск записей MX (Mail Exchange)

Для показа хостов, используемых для обмены почты, запустите команду вида:

DNS запрос записей SOA (Start of Authority)

Как узнать все DNS записи домена

Как в nslookup указать сервер для запросов

Если вы хотите сделать запрос к определённому DNS серверу (а по умолчанию адреса серверов берутся из файла /etc/resolv.conf), то после доменного имени достаточно указать имя хоста или IP DNS сервера:

Как получить записи NS (Name Server) в nslookup

NS запись содержит сервера имён данного домена, для их просмотра выполните команду вида:

Сервера Имён — это авторитативные сервера для данного домена, которые являются самый первым источником данных о DNS записях для данного домена.

Как правило, конечный пользователь обращается не к авторитативному серверу (поскольку их много — для каждого домена может быть свой), а к кэширующему DNS серверу.


Что означает Non-authoritative answer

Если вы прочитали статью по ссылке, то вы знаете, что DNS сервер является авторитативным (authoritative) для данного домена, если он указан в качестве Сервера Имён (NS) в соответствующих записях для данного домена, а сам DNS сервер содержит файлы зоны для данного домена.

Как получить авторитативный ответ?

Для начала нам нужно узнать, какие сервера имён являются авторитативными для данного домена, то есть какие у этого сайта сервера имён. Как мы узнали чуть выше, нам нужно командой узнать сервера имён для данного домена:

Получено сразу два сервера имён (на случай, если с одним из них будут проблемы).

Мы также уже рассмотрели, как делать запросы к определённому DNS серверу, поэтому выбираем любой из двух (кстати, их может быть больше) и делаем запрос непосредственному к данному DNS серверу:

Обратите внимание, что надпись «Non-authoritative answer.» больше не выводится.

Как включить режим отладки nslookup

Включив режим отладки вы будете получать более вербальный вывод, в том числе в выводе будет присутствовать такая информация как TTL. Будет показан полны пакет ответа и любые промежуточные покеты ответа полученные во время поиска:


Поддержка IDN

Если nslookup был скомпилирован с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), он может принимать и отображать доменные имена не ASCII. nslookup соответствующим образом преобразует кодировку символов доменного имени перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-то причине вы хотите отключить поддержку IDN, определите переменную среды IDN_DISABLE. Поддержка IDN отключена, если переменная установлена при запуске nslookup или когда стандартный вывод не является tty.

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