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 является стандартным инструментом диагностики сетевых проблем. Основные сценарии её использования включают:
- Проверка разрешения имён — определение корректности работы DNS-клиента и доступности DNS-серверов.
- Сравнение ответов различных DNS-серверов — позволяет выявить задержки распространения изменений в зонах (так называемую DNS-пропагацию).
- Поиск почтовых серверов домена — запрос MX-записей для проверки корректности настройки электронной почты.
- Диагностика проблем маршрутизации — определение того, на какой IP-адрес разрешается имя узла, что помогает выявить конфликты или неправильные настройки.
- Проверка делегирования зон — анализ NS-записей для контроля корректности передачи управления поддоменами.
- Обнаружение кэшированных данных — выяснение того, какой ответ получит клиент при обращении к конкретному 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 →
