Открыть сервис

NSLOOKUP: утилита проверки DNS

NSLOOKUP (от англ. name server lookup — «запрос к серверу имён») — сетевая утилита, предназначенная для выполнения запросов к системе доменных имён (DNS) и получения информации о записях DNS. Утилита позволяет администраторам и пользователям проверять соответствие между доменными именами и IP-адресами, диагностировать проблемы разрешения имён и получать сведения о структуре зон DNS. NSLOOKUP входит в состав большинства операционных систем семейства Unix/Linux, а также доступна в Windows и macOS.

История и происхождение

Утилита nslookup была разработана в начале 1980-х годов как часть программного обеспечения для работы с DNS, создаваемого в рамках проекта ARPANET. Первоначально она использовалась для тестирования и отладки работы первых DNS-серверов, которые в тот период постепенно заменяли устаревший файл hosts.txt, содержавший полный список всех хостов сети. Авторство nslookup приписывается Эндрю Кохману, работавшему в Университете Южной Калифорнии над реализацией протокола DNS для операционной системы BSD. Впоследствии утилита была включена в состав пакета BIND (Berkeley Internet Name Domain) — наиболее распространённой реализации DNS-сервера, что обеспечило её широкое распространение в среде Unix-систем. В операционной системе Windows утилита появилась начиная с версии Windows NT 4.0 и с тех пор поставляется во всех последующих версиях.

Режимы работы

Утилита nslookup функционирует в двух основных режимах: интерактивном и неинтерактивном.

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

В неинтерактивном (командном) режиме утилита выполняет один запрос и завершает работу. Синтаксис команды выглядит следующим образом:

`` nslookup [имя_узла] [DNS-сервер] ``

Если указывается только имя узла, утилита использует DNS-сервер, заданный в настройках сетевого подключения. При указании второго аргумента запрос направляется на конкретный DNS-сервер, что позволяет сравнивать ответы различных серверов. Например, команда nslookup example.com 8.8.8.8 отправит запрос о записях домена example.com на публичный DNS-сервер Google. В неинтерактивном режиме также можно запрашивать обратное разрешение — определение доменного имени по IP-адресу: nslookup 192.0.2.1.

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

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

  • server <адрес> — смена DNS-сервера для последующих запросов;
  • set type=<тип> — задание типа запрашиваемой записи DNS (A, AAAA, MX, NS, CNAME, TXT и другие);
  • set debug — включение подробного вывода служебной информации о ходе запроса;
  • ls <домен> — получение списка записей зоны (требует разрешения на передачу зоны);
  • exit — выход из программы.

Типы записей DNS

NSLOOKUP поддерживает запросы всех основных типов ресурсных записей DNS. Наиболее часто используемые типы включают:

  • A — адресная запись, связывающая доменное имя с IPv4-адресом;
  • AAAA — адресная запись для протокола IPv6;
  • MX — запись почтового обмена, указывающая серверы электронной почты домена;
  • NS — запись сервера имён, определяющая авторитетные DNS-серверы для зоны;
  • CNAME — каноническое имя, задающее псевдоним домена;
  • TXT — текстовая запись, используемая для хранения произвольной информации (например, SPF-записей или ключей проверки домена);
  • SOA — запись начала зоны, содержащая параметры зоны DNS;
  • PTR — запись обратного соответствия, связывающая IP-адрес с доменным именем.

Применение

Утилита nslookup является стандартным инструментом диагностики сетевых проблем. Основные сценарии её использования включают:

  1. Проверка разрешения имёнопределение корректности работы DNS-клиента и доступности DNS-серверов.
  2. Сравнение ответов различных DNS-серверов — позволяет выявить задержки распространения изменений в зонах (так называемую DNS-пропагацию).
  3. Поиск почтовых серверов домена — запрос MX-записей для проверки корректности настройки электронной почты.
  4. Диагностика проблем маршрутизации — определение того, на какой IP-адрес разрешается имя узла, что помогает выявить конфликты или неправильные настройки.
  5. Проверка делегирования зон — анализ NS-записей для контроля корректности передачи управления поддоменами.
  6. Обнаружение кэшированных данных — выяснение того, какой ответ получит клиент при обращении к конкретному DNS-серверу.

Критика и ограничения

Несмотря на широкую распространённость, nslookup имеет ряд недостатков. Утилита считается устаревшей: она была разработана до появления многих современных расширений DNS, включая DNSSEC (протокол обеспечения целостности данных DNS), и не поддерживает корректную работу с ними. Кроме того, поведение nslookup в некоторых ситуациях может вводить в заблуждение: например, при отсутствии записи запрошенного типа утилита может выводить сообщение об ошибке, даже если домен существует и обслуживается. В связи с этими ограничениями во многих дистрибутивах Linux и в macOS в качестве основной утилиты для работы с DNS рекомендуется использовать более современную программу dig (domain information groper), также входящую в состав пакета BIND. Тем не менее nslookup остаётся доступной во всех операционных системах и часто используется для быстрых проверок благодаря простоте синтаксиса и наличию в Windows по умолчанию.

Пример использования

Типичный вывод команды nslookup example.com выглядит следующим образом:

``` Сервер: dns.google Address: 8.8.8.8

Неавторитетный ответ: Имя: example.com Address: 93.184.216.34 ```

Пометка «неавторитетный ответ» означает, что данные получены не от сервера, ответственного за зону домена, а из кэша или от вышестоящего сервера. Для получения авторитетного ответа требуется напрямую обратиться к серверу имён, указанному в NS-записях домена.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →