Команда nslookup, получение информации от DNS

Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.

Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.

Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.

Синтаксис команды nslookup

nslookup [ОПЦИИ] [ИМЯ/АДРЕС] [СЕРВЕР ИМЕН]

Наиболее распространенные опции и типы аргументов мы рассмотрим ниже в соответствующих примерах.

Получение IP-адреса домена

Если указать в качестве аргумента команды nslookup доменное имя, она возвращает его «запись A» (A — address, IP-адрес).

$ nslookup yandex.ru

Здесь поле Server означает IP-адрес DNS-сервера, а затем выводится информация об IP-адресе домена «yandex.ru».

Авторитативный и неавторитативный ответы

В приведенном результате присутствует фраза «Non- Authoritative Answer» (неавторитативный ответ).

Авторитативным считается ответ от DNS-сервера, на котором есть полная информация о зоне домена. Во многих случаях на DNS-серверах такой информации нет, они хранят кэш с результатами прошлых запросов, на которые был получен авторитативный ответ. Когда такой сервер получает запрос, он осуществляет поиск в файле кэша и при наличии необходимых данных отправляет их как неавторитативный ответ, как в рассматриваемых нами примерах.

Запрос записи MX

Запись MX (Mail eXchange, обмен почтой) хранит соответствие доменного имени почтовому серверу этого домена. Например, для redhat.com в этих записях содержатся почтовые серверы домена, через которые должна отправляться вся электронная почта на адреса «@redhat.com». Получить запись MX можно при помощи опции -query=mx:

$ nslookup -query=mx redhat.com

В рассмотренном выше примере для домена «redhat.com» есть 2 записи MX. Число рядом с именем сервера (5, 10) означает его приоритет. Чем меньше число, тем выше приоритет. То есть при отправке письма на адрес «@redhat.com» сначала будет использоваться сервер mx1.redhat.com, а если он недоступен — mx2.redhat.com.

Запрос записи NS

Запись NS (Name Server, сервер имен) содержит соответствие доменного имени DNS-серверу, авторитативному для заданного домена. Ее можно получить при помощи опции -query=ns:

$ nslookup -query=ns yandex.ru

Запрос записи SOA

Запись SOA (Start of Authority, начальная запись зоны) содержит информацию о зоне домена, адрес его администратора, серийный номер и т.д. Ее можно получить при помощи опции -query=soa:

$ nslookup -query=soa yandex.ru


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

Просмотр всех имеющихся записей DNS

При помощи опции -query=any мы можем просмотреть все записи DNS, которые у нас есть для заданного доменного имени:

$ nslookup -type=any google.com

Обратный поиск DNS

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

$ nslookup 5.255.255.70

Использование конкретного DNS-сервера

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

$ nslookup redhat.com ns1.redhat.com

Обратите внимание, что в результате отсутствует фраза «Non-authoritative answer», так как ns1.redhat.com обладает всей информацией о зоне для redhat.com.

Изменение номера порта

По умолчанию DNS-серверы используют порт 53, но при необходимости можно указать другой номер порта посредством опции -port:

$ nslookup port 56 yandex.ru

Изменение интервала ожидания ответа

Интервал ожидания ответа по умолчанию можно изменить, указав желаемое значение в секундах с опцией -timeout:

$ nslookup -timeout=10 google.com

Режим отладки

При помощи опции -debug вы можете включить режим отладки:

$ nslookup -debug redhat.com

В режиме отладки при поиске выводится информация о пакетах.

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

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

$ nslookup

возвращают результат, аналогичный команде

$ nslookup -query=soa yandex.ru

Конечно, при поиске записей для одного имени использовать интерактивный режим бессмысленно. Но при необходимости работы с большим количеством записей он очень удобен, так как позволяет работать в режиме диалога.

Заключение

Мы рассмотрели основы работы с командой nslookup, а также основные типы записей DNS. Для более подробной информации о команде и ее опциях можно обратиться к соответствующей man-странице.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: