Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.
Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.
Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.
Содержание
- Синтаксис команды nslookup
- Получение IP-адреса домена
- Авторитативный и неавторитативный ответы
- Запрос записи MX
- Запрос записи NS
- Запрос записи SOA
- Просмотр всех имеющихся записей DNS
- Обратный поиск DNS
- Использование конкретного DNS-сервера
- Изменение номера порта
- Изменение интервала ожидания ответа
- Режим отладки
- Интерактивный режим
- Заключение
- Синтаксис
- Параметры
- Примечания
Синтаксис команды nslookup
Наиболее распространенные опции и типы аргументов мы рассмотрим ниже в соответствующих примерах.
Получение IP-адреса домена
Если указать в качестве аргумента команды nslookup доменное имя, она возвращает его «запись A» (A — address, IP-адрес).

Здесь поле Server означает IP-адрес DNS-сервера, а затем выводится информация об IP-адресе домена «yandex.ru».
Авторитативный и неавторитативный ответы
В приведенном результате присутствует фраза «Non- Authoritative Answer» (неавторитативный ответ).
Авторитативным считается ответ от DNS-сервера, на котором есть полная информация о зоне домена. Во многих случаях на DNS-серверах такой информации нет, они хранят кэш с результатами прошлых запросов, на которые был получен авторитативный ответ. Когда такой сервер получает запрос, он осуществляет поиск в файле кэша и при наличии необходимых данных отправляет их как неавторитативный ответ, как в рассматриваемых нами примерах.
Запрос записи MX
Запись MX (Mail eXchange, обмен почтой) хранит соответствие доменного имени почтовому серверу этого домена. Например, для redhat.com в этих записях содержатся почтовые серверы домена, через которые должна отправляться вся электронная почта на адреса «@redhat.com». Получить запись MX можно при помощи опции -query=mx:

В рассмотренном выше примере для домена «redhat.com» есть 2 записи MX. Число рядом с именем сервера (5, 10) означает его приоритет. Чем меньше число, тем выше приоритет. То есть при отправке письма на адрес «@redhat.com» сначала будет использоваться сервер mx1.redhat.com, а если он недоступен — mx2.redhat.com.
Запрос записи NS
Запись NS (Name Server, сервер имен) содержит соответствие доменного имени DNS-серверу, авторитативному для заданного домена. Ее можно получить при помощи опции -query=ns:

Запрос записи SOA
Запись SOA (Start of Authority, начальная запись зоны) содержит информацию о зоне домена, адрес его администратора, серийный номер и т.д. Ее можно получить при помощи опции -query=soa:
origin — имя первичного сервера зоны
mail addr – адрес администратора домена (noc@redhat.com, так как символ @ в описании зоны имеет собственное значение, в данном поле он заменен на точку)
serial – серийный номер файла зоны, используется для учета изменений. Здесь может быть любое целое число, но стандартный формат — «ГГГГММДДНН», то есть сначала указывается дата, а НН (в данном случае 01) увеличивается в случае нескольких обновлений в день
refresh – период времени (в секундах), через который вторичный DNS-сервер отправит запрос первичному, чтобы проверить, поменялся ли серийный номер. В случае изменения будет сделан новый запрос для получения информации о зоне
retry – указывает интервал для повторного соединения с первичным DNS-сервером, если он по каким-то причинам не смог ответить на запрос
expire – указывает время хранения кэша вторичным DNS-сервером, по истечении которого он будет считаться устаревшим
minimum – минимальное время хранения кэша вторичным DNS-сервером до повторного запроса
Просмотр всех имеющихся записей DNS
При помощи опции -query=any мы можем просмотреть все записи DNS, которые у нас есть для заданного доменного имени:

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

Использование конкретного DNS-сервера
Для разрешения доменного имени можно использовать конкретный сервер имен (в данном случае ns1.redhat.com):

Обратите внимание, что в результате отсутствует фраза «Non-authoritative answer», так как ns1.redhat.com обладает всей информацией о зоне для redhat.com.
Изменение номера порта
По умолчанию DNS-серверы используют порт 53, но при необходимости можно указать другой номер порта посредством опции -port:
Изменение интервала ожидания ответа
Интервал ожидания ответа по умолчанию можно изменить, указав желаемое значение в секундах с опцией -timeout:
$ nslookup -timeout=10 google.com
Режим отладки
При помощи опции -debug вы можете включить режим отладки:

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

возвращают результат, аналогичный команде
Конечно, при поиске записей для одного имени использовать интерактивный режим бессмысленно. Но при необходимости работы с большим количеством записей он очень удобен, так как позволяет работать в режиме диалога.
Заключение
Мы рассмотрели основы работы с командой nslookup, а также основные типы записей DNS. Для более подробной информации о команде и ее опциях можно обратиться к соответствующей man-странице.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Nslookup (name server lookup) это утилита командной строки, которую можно использовать для диагностики службы DNS, проверки DNS записей и серверов и обнаружения проблем, связанных с разрешением имен в системе DNS. Утилита nslookup изначально разработана в составе пакета BIND и в дальнейшем портирована на Windows. На данный момент утилита Nslookup входит в состав всех поддерживаемых версий Windows.
Утилита Nslookup умеет отправлять запросы на DNS сервер, который указан в настройках вашего сетевого подключения. Этот адрес считается DNS севером по умолчанию (default server). Пользователь может указать адрес любого другого доступного DNS сервера, в результате чего все следующие DNS запросы будут выполнятся уже на нем.
С помощью утилиты nslookup вы можете узнать IP адрес любого сервера по его DNS имени, выполнить обратное преобразование, получить информацию о различных DNS записях домена.
Вы можете использовать утилиту nslookup в интерактивном или не-интерактивном режиме.
Чтобы выполнить DNS запрос с помощью nslookup в неинтерактивном режиме, откройте командную строку и выполните команду:

В данном примере мы запросили IP адрес сервера vmblog.ru. Утилита nslookup обратилась к DNS серверу (указан в строке Server) и он вернул, что этому имени соответствует IP адрес 37.252.2.22.
Такой ответ говорит о том, что ваш DNS сервер доступен и работает штатно, выполняя запросы на разрешение DNS имен.
Если же вы получит ответ вида:
Server: dns1.someserver.com
Address: хх.хх.хх.хх
*** dns1.contoso.com can’t find vmblog.ru: Non-existent domain
Это означает, что для данного имени не найдено записей в DNS зоне.
В том случае, если ваш DNS сервер недоступен или не отвечает, вы получите ошибки DNS request timed out.

В этом случае проверьте, указан ли у вас правильный адрес DNS сервера и нет ли проблем с сетевым подключением у провайдера.
Строка Non-authoritative answer (Не заслуживающий доверия ответ)означает, что DNS сервер, который выполнил запрос не является владельцем зоны vmblog.ru (в его базе нет записей об этом домене), а для выполнения разрешения имени использовался рекурсивный запрос к другому DNS серверу.
Можно обратиться к авторитетному серверу, указав его адрес непосредственно в параметрах утилиты nslookup. Например, чтобы выполнить разрешение имени на DNS сервере, который содержит данный домен (authoritative server), используйте команду:
nslookup vmblog.ru ns1.vmblog.ru
При запуске nslookup без параметров, утилита переходит в интерактивный режим. В этом режиме вы можете выполнять различные команды. Полный список доступных внутренних команд утилиты nslookup можно вывести, набрав знак вопроса.

Для завершения работы с nslookup наберите команду exit и нажмите Enter.
Чтобы найти DNS сервера, которые отвечают за конкретный домен (authoritative servers), выполните команды:

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

Вы можете задать тип DNS записей, которые должна вернуть утилита nslookup. Например, чтобы перечислить все почтовые сервера, заданные для определенного домена, выполните команду:
nslookup -type=mx gosuslugi.ru

Не заслуживающий доверия ответ:
gosuslugi.ru MX preference = 20, mail exchanger = mx68.gosuslugi.ru
gosuslugi.ru MX preference = 10, mail exchanger = mx.gosuslugi.ru
mx68.gosuslugi.ru internet address = 109.207.8.100
mx.gosuslugi.ru internet address = 109.207.1.100
Как вы видите, у данного домене 2 MX записи с приоритетами 10 и 20 (Чем меньше число, тем выше приоритет адреса). Если запись MX не отображается, скорее всего они просто не настроены для данного домена.
Чтобы вывести все DNS записи в доменной зоне, выполните команду:
nslookup -type=any gosuslugi.ru

gosuslugi.ru nameserver = ns2.gosuslugi.ru
gosuslugi.ru nameserver = ns8-l2.nic.ru
gosuslugi.ru nameserver = ns1.gosuslugi.ru
gosuslugi.ru nameserver = ns4-l2.nic.ru
gosuslugi.ru MX preference = 10, mail exchanger = mx.gosuslugi.ru
gosuslugi.ru MX preference = 20, mail exchanger = mx68.gosuslugi.ru
ns2.gosuslugi.ru internet address = 213.59.255.175
ns8-l2.nic.ru internet address = 91.217.21.1
ns1.gosuslugi.ru internet address = 109.207.2.218
ns4-l2.nic.ru internet address = 91.217.20.1
mx.gosuslugi.ru internet address = 109.207.1.100
mx68.gosuslugi.ru internet address = 109.207.8.100
Использование опции отладки (debug) позволяет получить дополнительную информацию, содержащуюся в заголовках запросов клиента и ответов сервера (время жизни, флаги, типы записей и т.п.):

Nslookup – отображает информацию, которую вы можете использовать для диагностики инфраструктуры доменных имен (DNS). Перед использованием этого инструмента вы должны быть знакомы с тем, как работает DNS. Инструмент командной строки nslookup доступен, только если вы установили протокол TCP / IP.
Синтаксис
Список команд на сайте Майкрософт .
Параметры
| Команда | Синтаксис | Описание |
|---|---|---|
| nslookup exit | /exit | Выход из утилиты. |
| nslookup finger | finger [ ] [<[>] |[>>] >] | Соединение с finger сервером на текущем ПК. |
| nslookup help | /help | Выводит краткий список доступных подкоманд nslookup. |
| nslookup ls | ls [ ] [<[>] |[>>] >] | Выводит информацию о домене. |
| nslookup lserver | lserver | Меняет стандартный сервер для заданного домена DNS. |
| nslookup root | root | Меняет стандартный сервер, на корневой сервер DNS. |
| nslookup server | server | Меняет стандартный сервер имён, на выбранный вами. |
| nslookup set | set [= ] | Изменение стандартной конфигурации утилиты nslookup. |
| nslookup set all | set all | Выводит параметры текущей конфигурации. |
| nslookup set class | set > | Меняет класс запроса. Класс указывает группу протоколов информации. |
| nslookup set d2 | set [no]d2 | Включает или выключает глубокий режим отладки. В режиме отладки выводятся данные о каждого пакета. |
| nslookup set debug | set [no]debug | Включает или выключает режим отладки. |
| nslookup set defname | set defname | Добавляет используемый по умолчанию домен DNS, к запросу на поиск одиночного компонента. Компонент называется одиночным, если не содержит точек. |
| nslookup set domain | set domain= | Изменяет имя домена по умолчанию (DNS) на указанное имя. |
| nslookup set ignore | set ignore | Игнорировать ошибки с неполными пакетами. |
| nslookup set port | set port= |
Примечания
- Если computerTofind является IP-адресом, а запрос хочет получить A или PTR запись, возвращается имя компьютера. Если computerTofind является именем и у него нет точки в конце, к имени добавляется имя домена DNS по умолчанию. Это зависит от состояния следующих заданных подкоманд: domain, srchlist, defname и search.
- Если вы используете дефис (-) вместо computerTofind, утилита nslookup перейдёт в интерактивный режим.
- Длина строки не может превышать 256 символов.
- nslookup имеет два режима: интерактивный и неинтерактивный. Если вы собираетесь воспользоваться утилитой единожды – используйте неинтерактивный режим. Первым параметром введите имя или IP-адрес компьютера, который вы хотите найти, а вторым параметром введите имя или IP-адрес сервера DNS-имен. Если вы опустите второй аргумент, nslookup использует DNS-сервер по умолчанию.
Если вам нужно использовать утилиту несколько раз, вы можете войти в интерактивный режим. Для этого введите дефис (-) для первого параметра и имя или IP-адрес сервера имен DNS для второго параметра. Или опустите оба параметра, и nslookup использует DNS-сервер по умолчанию.
Ниже приведены некоторые советы о работе в интерактивном режиме:
- Чтобы прервать линию интерактивных команд в любое время, нажмите CTRL + B.
- Чтобы выйти, введите exit.
- Чтобы обработать встроенную команду в качестве имени компьютера, перед ним следует использовать escape-символ ().
- Неопознанная команда интерпретируется как имя компьютера.
Если поиск не сработал, утилита nslookup выдаст сообщение об ошибке. В следующей таблице перечислены возможные сообщения об ошибках:
| Сообщение об ошибке | Описание |
|---|---|
| timed out | Сервер не отвечает на запрос, спустя какое-то время (таймаут), и какое-то количество попыток запроса. Вы можете установить таймаут запроса, использовав подкоманду set timeout. Вы можете установить количество попыток запроса, использовав подкоманду set retry. |
| No response from server | Сервер DNS не отвечает на запросы утилиты nslookup. |
| No records | На DNS сервере нет записей по вашему запросу, если конечно, вы не ошиблись в имени домена. Формат запроса определяется подкомандой set querytype. |
| Nonexistent domain | Компьютер или имя домена не существуют. |
| Connection refused или Network is unreachable | Соединение с сервером DNS не установлено. Это ошибка чаще всего происходит при использовании команд ls и finger |
| Server failure | Сервер DNS определил внутреннюю ошибку в своей базе данных, и не может предоставить правильный ответ. |
| Refused | Сервер DNS прервал соединение. |
| Format error | Сервер DNS обнаружил неверный формат в запросе. Чаще всего это происходит из-за ошибки утилиты nslookup |
Что значит “Не заслуживающий доверия ответ”?
Сообщение “Не заслуживающий доверия ответ:” (Non-authoritative answer: ) означает только то, что DNS-сервер по умолчанию, не является владельцем зоны запрашиваемого домена, т.е. записей об этом домене в его собственной базе нет, и для предоставления информации был сделан рекурсивный запрос к другому серверу DNS. Так что в принципе, в этом сообщении ничего страшного нет.
Как узнать MX запись домена с помощью nslookup?
Для того, чтобы узнать MX запись домена используйте подкоманду type:






