DNS и доменные имена. Dns - доменная служба имен программа nslookup Nslookup примеры

Предоставляет сведения , предназначенные для диагностики инфраструктуры DNS. Для использования этого средства необходимо быть знакомым с принципами работы системы DNS.
Синтаксис : nslookup [-подкоманда …] [{искомый_компьютер| [-сервер]}]
Параметры
-подкоманда …
Задает одну или несколько подкоманд nslookup как параметры ко-мандной строки.
искомый_компьютер
Ищет данные для параметра искомый_компьютер, используя текущий, заданный по умолчанию сервер имен DNS, если никакого другого сервера не указано.
-сервер
Указывает, что данный сервер следует использовать в качестве сервера имен DNS. Если параметр -сервер не указан, используется сервер DNS, заданный по умолчанию.
{help|?}
Выводит краткое описание подкоманд nslookup.
Подкоманды:
exit — осуществляет выход из nslookup.
finger — осуществляет подключение к серверу finger на текущем компьютере.
ls — выводит сведения для домена DNS.
help – выводит краткое описание подкоманд.
lserver — производит изменение сервера, используемого по умолча-нию для заданного домена DNS.
root — производит замену сервера, используемого по умолчанию, на корневой сервер пространства имен DNS.
server — gроизводит замену сервера, используемого по умолчанию, для заданного домена DNS.
set — изменяет настройки, которые определяют работу функций lookup.
set all — выводит текущие значения параметров настройки.
set class — изменяет класс запроса. Класс запроса определяет группу протоколов с информацией.
set d2 — включает и отключает углубленный режим отладки. В этом режиме будут выводиться все поля каждого пакета.
set debug — включает и отключает режим отладки.
set defname — добавляет имя домена DNS, используемого по умолчанию, к запросу поиска одиночного компонента. Одиночным называется компонент, не содержащий точек.
set domain — производит замену имени сервера DNS, используемого по умолчанию, на указанное имя.
set ignore — игнорирует ошибки усечения пакетов.
set port — производит изменение порта TCP/UDP сервера имен DNS, используемого по умолчанию, на указанное значение.
set querytype -изменяет тип записи ресурса для запроса.
set requrse — указывает серверу имен DNS, что необходимо отправить запрос другим серверам в случае, если он сам не располагает требуемой информацией.
set retry — устанавливает число повторных попыток.
set root — производит замену имени корневого сервера, используемо-го для запросов.
set search — Присоединяет имена доменов DNS из списка поиска доменов DNS в запрос, пока не будет получен ответ. Это применяется, когда запросы set и lookup содержат по крайней мере одну точку, но содержат завершающей точки.
set srchlist — производит изменение используемого по умолчанию имени домена DNS и списка поиска.
set timeout — изменяет начальный период времени в секундах, в те-чение которого система будет ожидать ответа на запрос.
set type — изменяет тип записи ресурса для запроса.
set vc — указывает, использовать или нет виртуальную цепь при оп-равке запросов серверу.
view — сортирует и перечисляет вывод предыдущих подкоманд и команд ls.

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

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) за данный домен. В целях безопасности некоторые серверы не выполняют эту команду (запрещена пересылка баз данных зоны - см. п.

Утилита 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, которые рассматриваются в следующих статьях.

Сомнительные достоинства старой доброй утилиты

Nslookup является одной из моих любимых утилит в Windows NT 4.0. Вот уже несколько лет при возникновении проблем с разрешением имен при использовании DNS я обращаюсь только к этой программе. Однако с тех пор, как наша компания перешла на Windows 2000 Professional, за Nslookup водятся некоторые странности: неудачные попытки запроса, обращение к дополнительному серверу DNS, а не к основному, и другие. Прежде чем подробно рассмотреть причуды программы Nslookup в Windows 2000 Professional, вспомним, как просто и надежно работала утилита Nslookup в среде NT 4.0.

DNS как образец качества

Утилита Nslookup позволяет напрямую опрашивать серверы DNS для выяснения соответствия адресов IP и имен хостов, для поиска определенных типов записей в файле зоны DNS и проверки их работоспособности. Эта информация важна для поиска неисправностей в работе сервера DNS и создания нового файла зоны DNS. Для выполнения прямого (имя хоста – адрес IP) или реверсивного (адрес IP – имя хоста) запроса просто наберите в командной строке Nslookup, указав в качестве параметра имя хоста или IP-адрес. Утилита вернет нужное соответствие – либо IP-адрес, либо имя хоста. В рамках домена на серверах DNS в соответствующих файлах содержатся записи типа Address (A), задающие отображение имя хоста – адрес IP . Когда используется команда Nslookup, как раз и анализируются записи типа А. Кроме того, программу Nslookup можно использовать для опроса серверов DNS на предмет анализа записей других типов, таких как Name Server (NS), в которых указывается поддержка определенного имени домена; Canonical Name (CNAME), описывающие псевдонимы для серверов DNS, которые были ранее определены через записи типа А; Mail Exchanger (MX), в которых задаются имена почтовых систем для данного домена. С помощью Nslookup можно опросить как записи всех перечисленных типов, так и записи какого-то определенного типа. Почтовые серверы Internet используют запросы к DNS для получения информации из записи MX, такой как адрес сервера и стоимость маршрута. Когда возникает ошибка в работе почтового сервера Internet, например, возврат небольшого фрагмента переданного сообщения его отправителю по причине сбоя при отправке или же доставка сообщения не на тот почтовый сервер, ручной опрос сервера DNS может оказаться весьма полезным. В результате анализа полученных данных становится ясно, какую информацию из DNS "видят" удаленные серверы, а в этом может быть ключ к решению проблемы. Программа Nslookup также используется для ручного опроса файла зоны DNS. Другая полезная функция Nslookup – отображение всех почтовых серверов данного домена. Для этого установите опрос только одного типа записей – MX и сообщите имя интересующего домена. В приведенном ниже примере используется домен xcedia.com: nslookup Нажмите Enter, после чего наберите: set type=mx xcedia.com На Рисунке 1 показаны результаты работы введенных команд.

Странность номер один: сбой в опросе DNS

Первая странность в работе Nslookup в Windows 2000 Professional была обнаружена при возникновении случайных сбоев в процессе запросов к записям в DNS. На некоторых станциях результаты опроса записей MX были примерно такими же, как и при использовании NT 4.0. Однако с других станций запрос на MX выводил не записи этого типа, а общие данные из файла зоны - имя основного сервера, серийный номер файла зоны, установки Time to Live (TTL) – время жизни. Когда команды из рассмотренного выше примера были выполнены с сетевой станции Windows 2000 Professional, оказалось, что записи типа MX отсутствуют (см. Рисунок 2). После того, как один из читателей Windows 2000 Magazine написал мне о похожей проблеме с утилитой Nslookup в Windows 2000 Professional, я решил выяснить, что Microsoft изменила в новой версии утилиты, и почему с разных машин результаты работы программы Nslookup разные. Для начала один и тот же запрос на наличие записей MX выдавался с различных станций Windows 2000 Professional. В результате на каждой станции запрос на MX завершился неудачно. Но при регистрации на станции NT 4.0 аналогичный запрос прекрасно все показывал. В конце концов мне удалось получить нормальные результаты запросов к записям MX со станций Windows 2000 Professional. Для этого пришлось вручную изменить DNS-сервер, используемый в системе по умолчанию, задав команду server server_name в среде Nslookup (в команде server параметр server_name – это имя хоста DNS или IP-адрес сервера DNS, который запрашивается утилитой Nslookup.) По умолчанию, Nslookup устанавливает в качестве основного сервера DNS самый первый сервер из стека настроек IP клиента. После того как этот сервер был изменен, с различных систем Windows 2000 Professional запросы на тип записей MX стали выдавать нормальные результаты. Я заподозрил, что такое поведение Nslookup связано с ошибкой инициализации утилиты, когда обнаружил, что при изменении настроек сервера DNS случайно поменял тип сервера DNS, к которому подключались клиенты сети. Когда сессии Nslookup на Windows 2000 Professional были проанализированы повторно, обнаружилось, что в каждом случае соединение происходило с сервером DNS на NT 4.0. При изменении настроек сервера DNS мне следовало указать сервер DNS с Windows 2000. Может быть, проблема с Nslookup возникает на стыке клиента Windows 2000 Professional и сервера DNS NT 4.0? Дальнейшие эксперименты подтвердили это предположение. Оказалось, что только серверы DNS на NT 4.0 представляют проблему для Nslookup из Windows 2000 Professional. С другими серверами DNS – на базе Windows 2000 DNS или BIND - клиенты Windows 2000 Professional работают нормально. Есть несколько обходных путей для выхода из этой ситуации. Можно воспользоваться командой server server_name для отказа от сервера DNS на NT 4.0. Или можно настроить IP-протокол на клиентах на сервер DNS, отличный от NT 4.0 DNS. Наконец, можно скопировать версию Nslookup из NT 4.0 на станции Windows 2000 Professional. Я пробовал – это помогает. Установка Windows 2000 Service Pack 2 (SP2) тоже решает проблему.

Странность номер два: выбор сервера

Выбор сервера DNS по умолчанию – другая странность команды Windows 2000 Professional Nslookup. В среде NT 4.0 утилита Nslookup при инициализации иногда выдает такое сообщение об ошибке: DNS request timed out Timeout was x seconds Can"t find server name for address: Timed out Default servers are not available Default Server: UnKnown Address: где xxx.xxx.xxx.xxx – это IP-адрес самого первого сервера DNS, сконфигурированного на станции клиента, с которым работает Nslookup. Похоже, что для NT 4.0 это путанное сообщение никак не отражается на функциональности программы. Не обращайте на него внимания, Nslookup обрабатывает запросы нормально. В статье Microsoft "DNS Request Timed Out" Error Message When You Start Nslookup from a Command Line" (http://support.microsoft.com/support/kb/articles/q242/9/06.asp) объясняется, что это особенность процедуры инициализации Nslookup, когда предпринимаются попытки выполнить реверсивный запрос для IP-адреса самого первого сервера DNS. Если запрос завершается неудачно (поскольку нет записей Pointer - PTR), Nslookup выдает приведенное выше сообщение. Несмотря на эту ошибку, в NT 4.0 утилита продолжает опрашивать первый в списке сервер DNS, даже при неудачном реверсивном запросе. Для Windows 2000 Professional команда Nslookup сообщает об ошибке в процессе инициализации. А потом, когда выдается очередной запрос, Nslookup пропускает первый DNS-сервер в списке настроек клиента и перебирает список до тех пор, пока не сможет нормально обработать реверсивный запрос (в статье Microsoft об этом не упоминается). В моем случае это привело к тому, что вместо основного сервера Windows 2000 DNS стал использоваться вспомогательный сервер NT 4.0 DNS, что послужило причиной сбоев (см. описание странности №1). Я был разочарован, когда разработчики Microsoft сократили возможности такой важной утилиты в процессе перехода на новую версию. Обычно обновление означает улучшение, но в случае с Nslookup это оказалось не так.

Шон Дейли - один из редакторов журнала Windows NT Magazine и президент компании iNTellinet Solutions, занимающейся консалтингом и сетевой интеграцией. Имеет сертификат MCSE. Последней из его книг была «Optimizing Windows NT», выпущенная издательством IDG Books. С ним можно связаться по адресу.

Nslookup – отображает информацию, которую вы можете использовать для диагностики инфраструктуры доменных имен (). Перед использованием этого инструмента вы должны быть знакомы с тем, как работает DNS. Инструмент командной строки nslookup доступен, только если вы установили протокол TCP / IP.

PowerShell

nslookup [<-SubCommand ...>] [{ | -}] nslookup /exit nslookup /finger [] [{[>] |[>>] }] nslookup /{help | ?} nslookup /ls [

nslookup [ < -SubCommand . . . > ] [ { < computerTofind > | - < Server > } ]

nslookup / exit

nslookup / finger [ < UserName > ] [ { [ > ] < FileName > | [ >> ] < FileName > } ]

nslookup / { help | ? }

nslookup / ls [ < Option > ] < DNSDomain > [ { [ > ] < FileName > | [ >> ] < FileName > } ]

nslookup / lserver < DNSDomain >

nslookup / root

nslookup / server < DNSDomain >

nslookup / set < KeyWord > [ = < Value > ]

nslookup / set all

nslookup / set class = < Class >

nslookup / set [ no ] d2

nslookup / set [ no ] debug

nslookup / set [ no ] defname

nslookup / set domain = < DomainName >

nslookup / set [ no ] ignore

nslookup / set port = < Port >

nslookup / set querytype = < ResourceRecordtype >

nslookup / set [ no ] recurse

nslookup / set retry = < Number >

nslookup / set root = < RootServer >

nslookup / set [ no ] search

nslookup / set srchlist = < DomainName > [ / . . . ]

nslookup / set timeout = < Number >

nslookup / set type = < ResourceRecordtype >

nslookup / set [ no ] vc

nslookup / view < FileName >

Параметры

Команда Синтаксис Описание
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 class= Меняет класс запроса. Класс указывает группу протоколов информации.
nslookup set d2 set d2
Включает или выключает глубокий режим отладки. В режиме отладки выводятся данные о каждого пакета.
nslookup set debug set debug
Включает или выключает режим отладки.
nslookup set defname set defname Добавляет используемый по умолчанию домен DNS, к запросу на поиск одиночного компонента. Компонент называется одиночным, если не содержит точек.
nslookup set domain set domain= Изменяет имя домена по умолчанию (DNS) на указанное имя.
nslookup set ignore set ignore Игнорировать ошибки с неполными пакетами.
nslookup set port set port= Изменяет стандартный TCP/UDP порт сервера DNS на указанный.
nslookup set querytype set querytype=
nslookup set recurse set recurse
Указывает DNS серверу по умолчанию, опросить другие сервера в сети, если у него нет необходимой информации.
nslookup set retry set retry=
Указать число необходимых повторов запроса.
nslookup set root set root=
Изменяет адрес коренного сервера.
nslookup set search set search Добавляет имена доменов DNS из списка поиска доменов DNS в запрос, до тех пор пока не будет получен ответ. Данный метод используется в тех случаях, когда set и lookup содержат хотя-бы одну точку, но не содержат завершающей точки.
nslookup set srchlist Set srchlist=
Изменяет стандартное имя домена DNS и список поиска.
nslookup set timeout set timeout=
Изменяет таймаут ожидания ответа в секундах.
nslookup set type set type= Изменяет тип записи ресурса для запроса.
nslookup set vc set vc Указывает использовать или не использовать виртуальную цепь при отправке запросов на сервер.
nslookup view view Вывод и сортировка данных, полученных ранее при помощи команды ls.

Примечания

  • Если computerTofind является IP-адресом, а запрос хочет получить A или PTR запись, возвращается имя компьютера. Если computerTofind является именем и у него нет точки в конце, к имени добавляется имя домена DNS по умолчанию. Это зависит от состояния следующих заданных подкоманд: domain, srchlist, defname и search.
  • Если вы используете дефис (-) вместо computerTofind , утилита nslookup перейдёт в интерактивный режим.
  • Длина строки не может превышать 256 символов.
  • nslookup имеет два режима: интерактивный и неинтерактивный. Если вы собираетесь воспользоваться утилитой единожды – используйте неинтерактивный режим. Первым параметром введите имя или IP-адрес компьютера, который вы хотите найти, а вторым параметром введите имя или IP-адрес сервера DNS-имен. Если вы опустите второй аргумент, nslookup использует по умолчанию.
    Если вам нужно использовать утилиту несколько раз, вы можете войти в интерактивный режим. Для этого введите дефис (-) для первого параметра и имя или IP-адрес сервера имен DNS для второго параметра. Или опустите оба параметра, и nslookup использует DNS-сервер по умолчанию.
    Ниже приведены некоторые советы о работе в интерактивном режиме:
    • Чтобы прервать линию интерактивных команд в любое время, нажмите CTRL + B.
    • Чтобы выйти, введите exit.
    • Чтобы обработать встроенную команду в качестве имени компьютера, перед ним следует использовать escape-символ (\).
    • Неопознанная команда интерпретируется как имя компьютера.
  • Если поиск не сработал, утилита nslookup выдаст сообщение об ошибке. В следующей таблице перечислены возможные сообщения об ошибках .

Похожие статьи