Nslookup примеры использования. DNS и доменные имена

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

Для опроса серверов DNS эту команду можно запустить отдельно. Добавив одну из подкоманд, можно расширить функциональность утилиты. Основная команда nslookup имеет следующий синтаксис:

Nslookup [-<подкоманда>] [узел] [-<сервер имен>]

Предоставив утилите в качестве параметра имя узла, полностью определенное доменное имя или адрес IP, можно проверить способность системы выполнять преобразование имен. Часто перед установкой сетевых агентов для таких продуктов, как программное обеспечение для резервного копирования, хорошей идеей является проверка связи каждой системы с остальными системами в сети. Если служба DNS настроена неправильно, то это можно выяснить с помощью команды nslookup.

Предположим, что необходимо определить способность системы преобразовать имя butthead.cartoons.com в адрес IP. Для этого необходимо выполнить команду nslookup butthead.cartoons.com . Команда вернет имя и адрес IP сервера преобразования имен, к которому выполнялся запрос, а так же имя и адрес IP узла, который был указан в запросе (beavis). Такой тип проверки позволяет удостовериться в правильности конфигурации зоны прямого преобразования на сервере DNS.

Точно так же можно проверить зону обратного преобразования на сервере DNS. Для этого в качестве параметра вместо имени узла необходимо предоставить адрес IP узла. То есть, можно выполнить команду nslookup 10.5.10.82. И в этот раз команда вернет имя и адрес IP сервера DNS, к которому выполнялся запрос. Кроме этого, будет выдано имя и адрес IP узла, указанного в качестве параметра. При возврате записи отображается один из двух типов ответов сервера преобразования имен:

  • Авторитетный ответ - сервер DNS содержит у себя запись для этого узла ("У меня есть эта запись, держи!")
  • Неавторитетный ответ - сервер DNS получил информацию об этой записи от другого сервера DNS ("Мне пришлось спросить у другого, но, кажется, это правильная запись")

Хотя в идеальном мире предоставляются ответы этих двух типов, в нашей реальности серверы DNS иногда оказываются неправильно настроенными или не содержат информации об определенных записях. В таких случаях утилита nslookup не в состоянии выполнить преобразование предоставленного имени. Ответы утилиты nslookup, которые выдаются при невозможности преобразовать имя, перечислены далее.

Ошибки nslookup

Сообщение об ошибке

Connection refused (В соединении отказано)

Невозможно установить соединение с сервером DNS. Эта ошибка распространена при использовании подкоманды ls в случае подключения к серверу, разрешающему передачу зоны только определенным серверам

Format error (Ошибка формата)

Сервер DNS обнаружил ошибку в пакете запроса команды nslookup. Запустите утилиту nslookup еще раз для повторного подключения к серверу DNS

Network is unreachable (Сеть недоступна)

Невозможно установить соединение с сервером DNS. Постарайтесь выяснить существование маршрутизации для сети сервера DNS, отправив тестовый эхо-пакет узлу в подсети сервера DNS

No records (Нет записей)

Для указанного с помощью подкоманды querytype (рассматривается далее) типа запроса не существует записей

No response from server (Нет ответа сервера)

На указанном (в параметрах команды или в свойствах протокола TCP/IP) узле не запущена служба DNS

Nonexistent domain (Несуществующий домен)

Невозможно найти записи о запрошенном доменном имени

Refused (Отказано)

Сервер преобразования имен ответил отказом на запрос утилиты nslookup. Эта ошибка широко распространена при использовании подкоманды ls, когда подключение осуществляется к серверу, настроенному на передачу зон только определенным серверам

Server failure (Отказ сервера)

Ошибка или нарушение целостности файла с данными зоны на сервере DNS. Восстановите файл данных зоны из более ранней резервной копии

Timed out (Превышение таймаута)

Сервер DNS не ответил в течение указанного промежутка времени и интервала повторного запроса (Retry Interval). По умолчанию таймаут равен 5 секундам. Интервал повтора равен 4. Это означает, что утилита будет ожидать ответа в течение 20 секунд перед тем, как выдать это сообщение об ошибке

Большая часть функциональности утилиты nslookup доступна через соответствующие подкоманды. Самым простым способом получить доступ к меню подкоманд является ввод команды nslookup и нажатие клавиши . Это приведет к запуску интерактивного режима команды nslookup. Далее представлены ссылки на описание всех подкоманд утилиты nslookup, которые связаны с диагностикой и решением проблем в работе службы преобразования имен.

Команды nslookup:

Отдельно остановимся на команде set. Она используется для настройки способа запроса и получения записей текущей командной оболочкой утилиты nslookup. Существует несколько подкоманд set, которые рассматриваются в следующих статьях.

Обеспечивает данные, которые будут необходимы для проведения диагностических мер по отношению к DNS. Нужно обладать познаниями об особенностях функционирования указанной системы. Деятельность с указанной командой допускается исключительно в тех ситуациях, когда предварительно установили протокол TCP/IP.

Синтаксис

nslookup [-подкоманда...] [{изначальное_устройство | [-сервер_имен_DNS]}]

Расшифровка параметров

-подкоманда...

Позволяет указывать на одну ил большее количество подкоманд в качестве параметров для КС. Предусматривается наличие специального перечня подкоманд nslookup .

изначальное_устройство

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

-сервер_имен_ DNS

Задает конкретный сервер имен DNS для применения. Можно не прописывать указанный параметр и тогда станет применять сервер, заданный по умолчанию.

{help|?}

Позволяет предоставить сокращенное описание для подкоманд.

Особенности команды

  • Нельзя вписывать в строку команды текст, превышающий по своим размерам 256 символов. В ином случае, выполнение не станет происходить.
  • При обработке способна возникнуть ситуация выдача ошибки. Предусматривается несколько вариантов сообщений.
  • Можно осуществить переход в интерактивный режим. Для этого, требуется ввести в КС специальный символ - дефис (-).
  • Допускается работа в интерактивном и стандартном режиме. Второй вариант рекомендуется для выдачи относительно небольших объемов данных. Когда нужна расширенная информация, следует применять интерактивный режим.

Nslookup: exit

Позволяет выполнить выход из nslookup

Написание

Расшифровка значений

{help|?}

Позволяет получить справочную информацию.

Nslookup: finger

Выполняет подсоединение к серверу finger на действующем устройстве.

Написание

finger [имя_юзера] [{[> ] название_документа|[>> ] название_документа }]

Расшифровка значений

имя_юзера

Требуется указать имя юзера, о котором будет предоставлена информация.

название_документа

Устанавливается название документ, куда произойдет сохранение полученных сведений. Для выполнения задачи перенаправления применяются специальные символы (>) и (>>).

Nslookup: help

Позволяет выдать информацию обо всех подкомандах nslookup

Написание

{help|?}

Расшифровка значений

{help|?}

Производится выдача справочных сведений.

Nslookup: ls

Выдается информация для домена DNS.

Написание

ls [параметр] домен_DNS [{[> ]название_документа |[>> ] название_документа }]

Расшифровка

параметр

В установленном случае, необходимо отметить возможность использования нескольких вариантов. Они более подробно рассмотрены в таблице ниже

домен_DNS

Позволяет установить название для домена DNS. Именно о нем предусматривается обеспечение информации.

название_документа

Требуется установить документ, куда станет осуществляться сохранение сведений. Для выполнения задачи перенаправления применяются специальные символы (>) и (>>).

Nslookup: lserver

Позволяет изменить сервер, который применяется по умолчанию для указанного домена DNS.

Написание

lserver домен_DNS

Расшифровка значений

домен_DNS

Позволяет установить новый домен.

{help|?}

Предоставляет справочные данные.

Nslookup: root

Осуществляет замену сервера, который применяется по умолчанию, на сервер пространства имен DNS.

Написание

root

Расшифровка значений

{help|?}

Позволяет получить справочные данные.

Nslookup: server

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

Написание

server домен_DNS

Расшифровка значений

домен_DNS

Описанный параметр должен прописываться всегда. Он устанавливает новый домен DNS для сервера, который применяется по умолчанию.

{help|?}

Nslookup: set

Вводит коррективы в настройки, задающие деятельность функции lookup. Можно получить перечень всех действующих параметров. С целью обеспечения подобной задачи требуется прописать set all.

Написание

set ключевое_слово[=показатель]

Расшифровка

ключевое_слово

Позволяет выполнить задание подкоманд, которые получаются от set.

показатель

Устанавливает показатель параметра конфигурации для всех подпрограмм.

{help|?}

Используется для предоставления справочных данных.

Nslookup: set all

Позволяет предоставить действующие показатели параметров настроек.

Написание

Расшифровка значений

{help|?}

Применяется с целью выдачи справочных сведений

Nslookup: set class

Осуществляет изменение класса запроса. Он устанавливает группу протоколов со сведениями.

Написание

set [ class]= класс

Расшифровка

класс

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

{help|?}

Применяется с целью выдачи справочных сведений

Nslookup: set d2

Применяется для запуска и отключения режима более подробной отладки. Если использовать указанный режим, предусматривается выдача всех полей для каждого существующего пакета.

Написание

set d 2

Расшифровка значений

Применяется для того, чтобы режим более подробной проверки был отключен.

Применяется для того, чтобы режим более подробной проверки был запущен.

{help|?}

Применяется с целью выдачи справочных сведений

Nslookup: set debug

Применяется для запуска и отключения режима отладки. Следует учитывать тот факт, что включение предусматривает выдачу детальных данных о пакетах, переданных серверу.

Написание

set [ no ] deb [ ug ]

Расшифровка значений

nodeb

Применяется для того, чтобы режим отладки был отключен. Подобный вариант будет задан в том случае, если ничего не указывать.

Применяется для того, чтобы режим отладки был запущен.

{help|?}

Применяется с целью выдачи справочных сведений

Nslookup: set defname

Необходима для того, чтобы добавить название домена DNS, применяемого без задания других параметров, к запросу розыска одиночного компонента (не включает точки).

Написание

set def

Расшифровка значений

nodef

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

def

Дописывает название домена DNS, применяемого без задания других параметров, к запросу розыска одиночного компонента.

{help|?}

Применяется с целью выдачи справочных сведений

Nslookup: set domain

Выполняет замену названия сервера DNS, применяемого по умолчанию, на заданное название.

Написание

set do [main ]=название_домена

Расшифровка значений

название_домена

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

{help|?}

Применяется с целью выдачи справочных сведений

Nslookup: set ignore

Написание

set ig

Расшифровка значений

noig

В ходе усечения пакетов не будет происходить игнорирование ошибок. Именно этот параметр применяется по умолчанию.

ig

В ходе усечения пакетов будет происходить игнорирование любых ошибок.

{help|?}

Применяется с целью выдачи справочных сведений

Nslookup: set port

Выполняется изменение порта TCP/UDP сервера имен DNS, применяемого в качестве основного, на заданный параметр.

Написание

set po[ rt]= порт

Расшифровка значений

порт

Устанавливается новое значение порта TCP/UDP сервера имен DNS

{help|?}

Применяется с целью выдачи справочных сведений

Nslookup: set querytype

Вносит изменения в вид записи ресурса для осуществления запроса.

Написание

set q[ uerytype]= вид_записи

Расшифровка значений

вид_записи

Задает IP адрес устройства

Задает все виды информации

Задает почтовый обменник

Задает идентификатор юзера

{help|?}

Nslookup: set recurse

Задает серверу имен DNS требование, заключающееся в пересылке запроса для других серверов при отсутствии нужных сведений.

Написание

set rec

Расшифровка значений

norec

Устраняет необходимость сервера имен DNS передавать запрос иным серверам в тех ситуациях, когда нужных сведений нет.

rec

Задает необходимость сервера имен DNS передавать запрос иным серверам в тех ситуациях, когда нужных сведений нет.

{help|?}

Применяется с целью выдачи справочных сведений.

Nslookup: set retry

Задает количество повторных попыток.

Написание

set ret [ ry ]=количество

Расшифровка

количество

Задает показатель, предусматривающий количество повторных попыток. Если ничего не прописывать, предусматривается число 4.

{help|?}

Применяется с целью выдачи справочных сведений.

Nslookup: set root

Выполняет замену названия корневого сервера, применяемого для осуществления запросов.

Написание

set ro[ ot]= корневой_сервер

Расшифровка значений

корневой_сервер

Обеспечивает новое название для корневого сервера. Когда ничего не устанавливается, то будет применяться название ns.nic.ddn.mil.

{help|?}

Применяется с целью выдачи справочных сведений.

Nslookup: set search

Осуществляет прибавление названий доменов DNS из перечня доменов DNS в запрос. Подобная задача станет проводиться до момента возврата ответа. Происходит в тех ситуациях, если set и lookup включают минимум 1 точку, но она не является конечной.

Написание

set sea

Расшифровка

nosea

Осуществляет окончание прибавлений названий доменов DNS из перечня поиска доменов DNS в запрос.

sea

Осуществляет прибавление названий доменов DNS из перечня доменов DNS в запрос. Подобная задача станет проводиться до момента возврата ответа.

{help|?}

Применяется с целью выдачи справочных сведений.

Nslookup: set srchlist

Осуществляет внесение коррективов в название домена DNS и перечня поиска, которые применяются по умолчанию.

Написание

set srchl [ ist ]=название_домена

Расшифровка

название_домена

Задает новые названия для применяемого по умолчанию домена DNS и перечня поиска. Разрешается применять до 6-ти названий. Следует выполнять разделение специальными символами (/).

{help|?}

Применяется с целью выдачи справочных сведений.

Nslookup: set timeout

Осуществляет изменение стартового интервала, на протяжении которого предусматривается ожидание системой ответа на запрос. Предполагается задание подобного числа в секундах.

Написание

set ti =количество_секунд

Расшифровка значений

количество_секунд

Задается количество секунд для интервала ожидания. Если ничего не прописывать, будет установлено число 5.

{help|?}

Применяется с целью выдачи справочных сведений.

Nslookup: set type

Вносит коррективы в вид записи для определенного ресурса

Написание

set ty= вид_записи

Расшифровка значений

вид_записи

Устанавливает вид записи ресурса DNS. Если ничего не прописывать, то будет задан вид А. Ниже представлена таблица, где подробно рассмотрены существующие варианты.

Задает IP адрес устройства

Задает все виды информации

Задает каноническое название для псевдонима

Задает идентификатор группы для названия

Задает вид процессора и применяемой на устройстве ОС

Задает название домена ящика почты

Задает участника почтовой группы

Обеспечивает информацию о конкретном почтовом ящике или перечне отправки сообщений

Задает название домена для смены имени почты

Задает почтовый обменник

Задает сервер названий DNS для конкретной области

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

Задает стартовую запись для области DNS

Осуществляет вывод текстовых сведений

Задает идентификатор юзера

Осуществляет вывод сведений юзера

Предоставляет описание существующих служб

{help|?}

Применяется с целью выдачи справочных сведений.

Nslookup: set vc

Задает, применять ли виртуальную цепь в ходе передачи запросов серверу.

Написание

set [ no ] v [ c ]

Расшифровка

Задает необходимость никогда не применять виртуальную цепь при осуществлении передачи запросов серверу.

Устанавливает необходимость в любых случаях применять виртуальную цепь при осуществлении передачи запросов серверу.

{help|?}

Применяется с целью выдачи справочных сведений.

Nslookup: view

Выполняет сортирование и перечисление выдачи предшествующих команд ls , а также подкоманд.

Написание

view название_документа

Расшифровка

название_документа

Задает название документа, который включает итоги деятельности предшествующих команд ls , а также подкоманд

{help|?}

Применяется с целью выдачи справочных сведений.

На нашем сайте

DNS - ДОМЕННАЯ СЛУЖБА ИМЕН
Программа nslookup

Программа nslookup (обычно - /usr/sbin/nslookup в Unix)позволяет произвести DNS-преобразования в явном виде. Например:

%nslookup www.ibm.com

Вывод программы означает, что был опрошен сервер maria.vvsu.ru (его IP-адрес 212.16.195.98) и получен ответ IP(www.ibm.com) = 204.146.18.33.

Пример обратного преобразования:

%nslookup 204.146.18.33 Server: maria.vvsu.ru Address: 212.16.195.98 Name: www.ibm.com Address: 204.146.18.33

Программа nslookup работает также в режиме командной строки. Необходимые команды:

server [имя_опрашиваемого_сервера ] lserver [имя_опрашиваемого_сервера ] сменить опрашиваемый DNS сервер, например: server ns.kiae.su . Без аргумента - установить сервер по умолчанию ("свой" сервер). Все запросы (кроме команды lserver - см. след. абзац) отправляются к опрашиваемому серверу, установленному в данный момент. Nslookup позволяет напрямую обращаться с запросами к серверам, непосредственно отвечающим за ту или иную зону. Если же ответ поступил от сервера, не отвечающего за зону, для хоста которой запрашивалась информация (например, данные были извлечены из кэша), такой ответ будет помечен как "non-authoritative answer ".

server и lserver отличаются тем, что при смене сервера командой server адрес нового сервера преобразуется с помощью текущего сервера, а команда lserver производит то же преобразование с помощью сервера, установленного для nslookup по умолчанию - "своего" сервера. Это имеет значение, когда текущий сервер по какой-либо причине не отвечает на запросы.

set type=тип_данных установить запрос данных определенного типа. Например:

>set type=NS >ibm.com

означает запрос списка DNS-серверов, отвечающих (authoritative) за домен ibm.com. (Запрос в этом случае должен состоять из имени домена, а не отдельного хоста.)

Возможные типы:

  • SOA (Start Of Authority) - заголовок зоны,
  • NS (Name Server) - сервер DNS,
  • A (Address) - IP-адрес, если указано доменное имя, или доменное имя, если указан IP-адрес (выбрано по умолчанию),
  • MX (Mail Exchanger) - обработчик почты,
  • CNAME (Canonical Name) - каноническое имя,
  • PTR (Pointer) - запрос по обратной зоне,
  • ANY - все записи.

Более подробно о типах данных в базе данных DNS см. часть 2 этой темы "Конфигурирование сервера DNS" .

set recurse отправлять рекурсивные запросы (выбрано по умолчанию).

set norecurse отправлять итеративные запросы.

set domain=имя_домена установить имя домена, добавляемое к неполностью определенным доменным именам (по умолчанию берется из /etc/resolv.conf).

set debug подробно показывать содержимое поступающих ответов.

set nodebug отменить set debug (отменено по умолчанию).

set d2 подробно показывать содержимое отправляемых запросов.

set nod2 отменить set d2 (отменено по умолчанию).

set all показать значения всех опций.

ls имя_домена вывести список хостов указанного домена, например ls vvsu.ru. Предварительно следует переключиться на опрос сервера, отвечающего (authoritative) за данный домен. В целях безопасности некоторые серверы не выполняют эту команду (запрещена пересылка баз данных зоны - см. п.

Being able to retrieve DNS TXT records is very useful in multiple scenarios. In this post we will look at checking the TXT domain verification record for Office 365 and also for the Sender protection Framework .

In addition to a MX record, we also have the option to prove domain ownership to Office 365 by using a TXT record. Why do we want to manually check for these Office 365 TXT records? Rather than blindly running the HCW and getting multiple failures, we can check that the correct record is present. This can help prevent the MaxUriReached: Same URI cannot be attached to different AppId on a single day error , which is discussed in KB 3027942 .

When configuring the Sender Protection Framework (SPF), we need to create then add the SPF record into the external DNS zone file for a given domain. This is of type TXT nowadays. This allows external mail servers to consume the SPF record and make an intelligent decision based upon who the sender purports to be.

If we want to ensure that these records are correct, and available in public DNS we can use the nslookup tool. This is very useful if we do not have direct access to the DNS provider, as that may be owned by a different team within the organization.

If we want to talk to the authoritative server directly, we can do so. We just need to know who that is. For redundancy purposes there should be at least two authoritative DNS servers specified in the DNS zone. While we can look for the SOA record, we should query for the Name Server (NS) record.

Note that the query type is now NS, which stands for “Name Server”.

Now we know that for the tailspintoys.ca domain the two authoritative DNS servers are called ns78.domaincontrol.com and ns77.domaincontrol.com, we can query them directly. The IPv4 Addresses for those name servers are:

ns77.domaincontrol.com 216.69.185.49

ns78.domaincontrol.com 208.109.255.49

Note in the below screenshot, when we directly target those specific name servers, there is no mention of non-authoritative.

SPF Reference

For a quick reference, Microsoft has multiple SPF resources. The SPF wizard below helps to construct the content of your SPF record.

Update 17-11-2016 - Looks like the Microsoft SPF wizard has gone the way of the dinosaurs...... Take a look at some of the other tools out there.....

All SPF records contain three parts: the declaration that it is an SPF record, the domains & IP addresses that should be sending email, and an enforcement rule. You need all three in a valid SPF record. Here’s an example of the most common SPF record for Office 365:

TXT Name @ Values: v=spf1 include:spf.protection.outlook.com include:sharepointonline.com -all

Do not simply copy the above SPF record into your DNS zone. You need to plan to correctly implement SPF.

DNS Query Issues

Some issues that you might run into are listed below. It is not an exhaustive list.

Issue #1 – Use IPv4

One of my European colleagues noted they were having issues with NSlookup. They were seeing the below where every lookup was saying DNS request timed out.

This was a weird one. Netmon never lies. But when I sniffed the traffic from my Windows 10 laptop and a Windows Server 2012 R2 VM, no packets were visible on the wire.

To resolve this, get the IPv4 Address of the DNS server and use that specifically in the server command. This is shown below.

Issue #2 - Do Not Anger the Case Sensitivity Gods

In Windows there are very few things that are case sensitive. Because of this we tend to get careless with case sensitivity. Take the below example when trying to set the query type:

Note that the Q in query type is in capitals. This must be in lower case. Yes. Really.

The big yellow arrow (is it big enough??) shows that the working option is in lowercase.

Issue #3 – Beware Caching Devices

Multiple locations have implemented DNS caching devices that may or may not follow RFC standards. It is regrettable and quite common to find that some DNS caching device is quite happily ignoring the TTL on a DNS record and caching it for several days. Yes that does happen. Take the below example. This is written from some airport lounge in Canada that serves Glenfiddich. Though the amount of single malt consumed has nothing to do with any spelling mistak3s in this post!

In the below example we target the authoritative name server for the tailspintoys.ca domain. But note that we only get a non-authoritative answer.

Compare this to running exactly the same commands from a VM in Azure with no DNS shenanigans:

Those are indeed authoritative replies!

Issue #4 – Driving me Dotty

The devil is in the details, and also the dot sometimes. Note that in the below example, when we query for outlook.office365.com the query has the local computer’s DNS search suffix appended to it.

Compare the above queries (underlined in red) to the below screenshot. What is the difference? Note that the query below has a dot at the end of the query. This tells nslookup not to append the domain suffix.

Alternatively, we can tell nslookup not to add the DNS suffix by specifying the nosearch option. This is shown below, note that there is no dot after the search term “outlook.office365.com ”.

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

nslookup [-option...] ]

Если в командной строке задать параметр host-to-find , то nslookup будет работать в неинтерактивном режиме и возвратит ответ на запрос примерно в том же виде, что и утилита host . Если аргументы не заданы или первый аргумент - дефис (- ), то nslookup будет работать в интерактивном режиме. При необходимости с помощью аргумента -server можно указать другой DNS-сервер, где server - IP-адрес запрашиваемого DNS-сервера. В противном случае nslookup будет по умолчанию обращаться к DNS-серверу, который задается в файле /etc/resolv.conf .

Параметры nslookup можно изменить тремя способами. Во-первых, можно задать параметры в командной строке вместе с командой nslookup . Во-вторых, можно указать их в интерактивной командной строке nslookup с помощью команды set . И в-третьих, можно создать в своем рабочем каталоге $HOME файл .nslookuprc и указать в нем желаемые параметры, по одному на строку. Список параметров, которые можно использовать с командой nslookup , приведен в табл. 4.6 .

Таблица 4.6. Параметры nslookup
Параметр Описание
all Выводит текущие значения параметров
class Устанавливает класс DNS (по умолчанию = IN )
debug Включает/выключает режим отладки (по умолчанию = nodebug )
d2 Включает/выключает режим полной отладки (по умолчанию = nod2 )
domain=name Устанавливает доменное имя по умолчанию name
srchlist=name1/name2.. . Изменяет домен по умолчанию на name1 и производит поиск по списку name1/name2.. .
defname Добавляет доменное имя по умолчанию к компоненту запроса
search Добавляет доменные имена в списке к имени хоста (по умолчанию = search )
port=value Изменяет номер порта TCP/UDP (по умолчанию = 53 )
querytype=value Изменяет тип запрашиваемой записи (по умолчанию = А )
type=value То же, что и querytype .
recurse Указывает серверу имен запросить другие серверы для получения ответа (по умолчанию = recurse )
retry=number Устанавливает число повторов запроса при неудачном ответе (по умолчанию = 4)
root=host Изменяет имя корневого сервера на хост с именем host (по умолчанию = ns.internic.net )
timeout=number Изменяет интервал времени ожидания ответа на значение, равное number (по умолчанию = 5 сек)
vc Всегда использовать виртуальную цепочку (по умолчанию = novc )
ignoretc Игнорировать ошибки при урезании пакета (по умолчанию = noignoretc )

В листинге 4.6 показан пример сеанса nslookup , во время которого запрашивается информация о хосте www.linux.org . На запрос с установленными по умолчанию параметрами для указанного имени просто возвращается соответствующий ему IP-адрес. В нашем примере демонстрируется изменение параметров с целью поиска почтовых серверов для данного домена.

1 $ nslookup 2 Default Server: ns1.isp.net 3 Address: 10.0.0.1 4 5 > www.linux.org 6 Server: ns1.isp.net 7 Address: 10.0.0.1 8 9 Non-authoritative answer: 10 Name: www.linux.org 11 Address: 198.182.196.56 12 13 > set type=MX 14 > www.linux.org 15 Server: ns1.isp.net 16 Address: 10.0.0.1 17 18 Non-authoritative answer: 19 www.linux.org preference =20, mail exchanger = router.invlogic.com 20 www.linux.org preference =30, mail exchanger = border-ai.invlogic.com 21 www.linux.org preference = 10, mail exchanger = mail.linux.org 22 23 Authoritative answers can be found from: 24 linux.org nameserver = NS0.AITCOM.NET 25 linux.org nameserver = NS. invlogic. com 26 router.invlogic.com internet address = 198.182.196.1 27 border-ai.invlogic.com internet address = 205.134.175.254 28 mail.linux.org internet address = 198.182.196.60 29 NS0.AITCOM.NET internet address = 208.234.1.34 30 NS.invlogic.com internet address = 205.134.175.254 31 > exit 32 $ Листинг 4.6. Пример сеанса nslookup

В строке 5 формируется запрос для хоста с именем www.linux.org . В строках 6 и 7 показан DNS-сервер, который обрабатывает данный запрос, а в строках 9–11 отображается, что сервер выдает неавторитетный ответ об IP-адресе. Очевидно, что кто-то уже обращался к этому же хосту и его IP-адрес хранился в кэше локального DNS-сервера. В строке 13 устанавливается параметр, с помощью которого запрашивается информация о почтовых серверах для данного домена. В строках 18–30 отображается информация, полученная от DNS-сервера. Строки 18–21 являются по сути разделом ответа пакета DNS, который сигнализирует о том, что ответ не является авторитетным, и далее показывает три почтовых сервера, ответственных за доставку электронной почты на хост www.linux.org . В строках 23–30 показан авторитетный ответ и дополнительная информация из пакета DNS. Так, строки 23–25 показывают два авторитетных DNS-сервера для домена linux.org , в которых содержаться исходные записи о www.linux.org . В строках 26–30 отображается дополнительная информация об IP-адресах хостов, содержащихся в ответах. Этот пример можно немного расширить, установив в качестве DNS-сервера по умолчанию один из авторитетных серверов (с помощью команды server ) и запросив еще раз информацию об МХ записях. Теперь сравните, отличается ли полученная информация от той же, но выданной неавторитетным DNS-сервером.