Определить список корневых dns серверов при помощи консольных команд
В этой статье мы расскажем, что такое 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: указать DNS-сервер
Как узнать MX-запись
При создании электронной почты в ресурсных записях прописывают MX-записи .
Для определения MX-записей введите команду:
Перед вами появится вывод:
DNS MX lookup
Как определить NS-записи домена
Утилита NSLOOKUP позволяет определить, какие NS-серверы использует сайт.
Для этого введите команду:
Перед вами появится список NS:
Как определить SOA-запись
SOA-запись (Start of Authority) — начальная запись зоны, которая указывает местоположение эталонной записи о домене. Она содержит в себе контактную информацию лица, ответственного за зону, время кэширования информации на серверах и данные о взаимодействии DNS.
Для определения SOA-записи введите команду:
Как изменить интервал ожидания
Когда интернет слабый, для ответа сервера нужно больше времени, чем обычно. Если ответ не приходит в течение 5 секунд, запрос либо повторяется, либо появляется ошибка. Чтобы ответ от сервера успел дойти, нужно увеличить время ожидания. Для этого введите команду:
Что значит authoritative и non-authoritative
В ответе на любую команду утилита показывает, с какого сервера была получена информация. Ответ приходит от серверов двух типов:
Authoritative answer (авторитетный ответ) – это ответ, который получен от основного (официального) сервера. Non-authoritative answer (неавторитетный ответ) – это ответ от промежуточного сервера. Например, на скриншотах из нашей статьи можно увидеть, что ответ приходил от non-authoritative сервера:
Обратите внимание! На промежуточном сервере может храниться кэшированная копия 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.
Читайте также: