NSLOOKUP — утилита для запросов к DNS¶
NSLOOKUP (от англ. name server lookup) — утилита командной строки, предназначенная для выполнения запросов к системе доменных имён (DNS) и получения информации о доменных именах, IP-адресах, почтовых серверах и других ресурсных записях. Программа входит в состав операционных систем Windows, macOS и большинства дистрибутивов Linux, доступна как в интерактивном, так и в неинтерактивном режиме работы.
¶Назначение и принцип работы
NSLOOKUP позволяет получить ответ от DNS-сервера на заданный запрос. Утилита отправляет серверу запрос определённого типа (A, MX, TXT, NS и другие) и выводит полученный ответ на экран. Основные сценарии применения:
- проверка разрешения доменного имени в IP-адрес;
- определение IP-адреса почтового сервера (запись MX);
- получение списка DNS-серверов, обслуживающих домен (запись NS);
- проверка корректности настройки DNS-записей при размещении сайтов и почты;
- диагностика сетевых проблем, связанных с разрешением имён.
Утилита работает на уровне протокола DNS и не требует дополнительного программного обеспечения — она встроена в систему.
¶Синтаксис и режимы работы
`` nslookup [параметры] имя_домена [сервер] ``
Если сервер не указан, запрос отправляется на DNS-сервер, настроенный в системе по умолчанию.
¶Неинтерактивный режим
В неинтерактивном режиме команда выполняется одной строкой и выводит результат, после чего завершается:
`` nslookup example.com ``
Пример вывода:
``` Server: dns.example-provider.ru Address: 192.168.1.1
Name: example.com Address: 93.184.216.34 ```
Первая часть вывода содержит информацию о DNS-сервере, обработавшем запрос, вторая — результат разрешения имени.
¶Интерактивный режим
При запуске без аргументов NSLOOKUP переходит в интерактивный режим. Пользователь может последовательно выполнять несколько запросов, менять тип записи и сервер. Основные команды интерактивного режима:
| Команда | Назначение |
|---|---|
server IP | сменить DNS-сервер для последующих запросов |
set type=MX | запросить тип записи (MX, A, NS, TXT, PTR и др.) |
set type=ANY | запросить все доступные записи |
set querytype=... | альтернативный синтаксис выбора типа записи |
exit | завершить работу |
¶Типы DNS-записей
NSLOOKUP поддерживает запросы к основным типам ресурсных записей DNS:
- A — IPv4-адрес, соответствующий доменному имени;
- AAAA — IPv6-адрес;
- MX — почтовый сервер домена (с указанием приоритета);
- NS — авторитетные DNS-серверы домена;
- CNAME — каноническое имя (псевдоним);
- TXT — произвольный текстовый ресурс, часто используется для подтверждения владения доменом и настройки SPF;
- PTR — обратное разрешение: IP-адрес в доменное имя;
- SOA — стартовая запись зоны с административной информацией.
Пример запроса MX-записи:
`` nslookup -type=mx example.com ``
¶Отличие от других утилит
Наиболее близкие по назначению утилиты — dig и host, распространённые в Unix-системах. Основные различия:
| Критерий | nslookup | dig | host |
|---|---|---|---|
| Платформы | Windows, Linux, macOS | Linux, macOS | Linux, macOS |
| Встроенность в Windows | да | нет | нет |
| Формат вывода | человекочитаемый | подробный, с заголовками | краткий |
| Поддержка интерактивного режима | да | нет | нет |
В Windows NSLOOKUP остаётся стандартным средством диагностики DNS, поскольку dig и host не входят в состав системы. В Linux dig считается более информативным инструментом для профессиональной диагностики.
¶Ограничения
NSLOOKUP имеет ряд известных особенностей:
- при запросах к некоторым корректно настроенным серверам утилита может возвращать ошибку
Non-existent domainвместо пустого ответа, что связано с особенностями обработки негативного кэша; - результаты могут отличаться от фактического разрешения в браузере или почтовом клиенте, если в системе настроен кэш DNS;
- утилита не поддерживает DNSSEC-валидацию;
- в неинтерактивном режиме в Windows параметры задаются через ключ
/(например,nslookup -type=mx example.com), в Linux — через дефис (-type=mx), что может вызывать путаницу при переходе между платформами.
¶Историческая справка
NSLOOKUP появилась в составе BSD-систем в конце 1970-х годов и была включена в пакет BIND (Berkeley Internet Name Domain), ставший основой для большинства DNS-серверов. В Windows утилита появилась в составе Windows 2000 и с тех пор присутствует во всех последующих версиях операционной системы.
¶Источники
- RFC 1034 — Domain Names: Concepts and Facilities
- RFC 1035 — Domain Names: Implementation and Specification
- Microsoft Docs — Nslookup
- BIND 9 Administrator Reference Manual
