Nslookup команда как ее использовать. Использование утилит Ping, Tracert и NSLookup. Dns - доменная служба имен программа nslookup

Программа 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-сервером.

Предоставляет сведения, предназначенные для диагностики инфраструктуры DNS. Для использования этого средства необходимо быть знакомым с принципами работы системы DNS. Средство командной строки Nslookup доступно, только если установлен протокол TCP/IP.

Синтаксис
nslookup [- подкоманда... ] [{искомый_компьютер | [- сервер ]}]
Параметры

- подкоманда … Задает одну или несколько подкоманд nslookup как параметры командной строки. Список подкоманд см. в разделе «См. также». искомый_компьютер Ищет данные для параметра искомый_компьютер , используя текущий, заданный по умолчанию сервер имен DNS, если никакого другого сервера не указано. Чтобы получить сведения о компьютере не из текущего домена DNS, в конец имени должна быть добавлена точка. - сервер Указывает, что данный сервер следует использовать в качестве сервера имен DNS. Если параметр -сервер не указан, используется сервер DNS, заданный по умолчанию. {help |? } Выводит краткое описание подкоманд nslookup .

Замечания

  • Если искомый_компьютер задан IP-адресом, а запрашивается запись ресурса типа A или PTR, будет выведено имя компьютера. Если искомый_компьютер задан именем без замыкающей точки, имя домена DSN, используемого по умолчанию, будет добавлено к указанному имени. Поведение зависит от состояния следующих подкоманд команды set : domain , srchlist , defname и search .
  • Если в командной строке введен дефис (-) вместо параметра искомый_компьютер , команда nslookup перейдет в интерактивный режим.
  • Длина строки вызова команды не может превышать 256 символов.
  • Команда nslookup может работать в двух режимах: интерактивном и обычном (автономном).
    Если требуется вывод только небольшой части информации, следует использовать обычный режим. В качестве первого параметра следует использовать имя или IP-адрес компьютера, о котором требуется получить данные. В качестве второго параметра введите имя или IP-адрес сервера имен DNS. Если второй параметр не задан, командой nslookup используется сервер имен DNS, установленный по умолчанию.
    Если требуется получить более полные сведения, следует использовать интерактивный режим. В качестве первого параметра следует ввести знак дефиса (-) и имя или IP-адрес сервера имен DNS в качестве второго параметра. Если оба параметра не заданы, командой nslookup используется сервер имен DNS, установленный по умолчанию. Далее перечислено несколько советов по работе в интерактивном режиме.
    • Для прерывания интерактивной команды в любой момент следует нажать CTRL+B.
    • Для выхода необходимо ввести exit .
    • Для ввода имени компьютера, совпадающего с какой-либо командой, перед именем следует ввести обратную косую черту (\).
    • Нераспознанные команды воспринимаются как имена компьютеров.
  • Если при обработке запроса возникла ошибка, командой nslookup на экран будет выведено сообщение. В следующей таблице перечислены возможные сообщения об ошибках.
    Сообщение об ошибке Описание
    Timed out Сервер не ответил на запрос в течение определенного времени и после определенного числа повторных попыток. Имеется возможность установить период ожидания с помощью подкоманды set timeout . Имеется возможность установить число повторных попыток с помощью подкоманды set retry .
    No response from server Сервер имен DNS не запущен на сервере
    No records Сервер имен DNS не содержит записей о ресурсах указанного типа, хотя имя сервера задано верно. Тип запроса задается командой set querytype .
    Nonexistent domain Заданный компьютер или имя домена DNS не существует.
    Connection refused
    -или-

    Network is unreachable

    Невозможно подключиться к серверу имен DNS или к серверу службы finger. Эта ошибка обычно возникает с запросами команд ls и finger .
    Server failure Сервер имен DNS обнаружил внутреннее несоответствие в своей базе данных и не может корректно ответить на запрос.
    Refused Отказано в обработке запроса сервером имен DNS.
    Format error Сервер DNS обнаружил ошибку в формате полученного пакета. Это может свидетельствовать об ошибке в команде nslookup .

Примеры
Каждый параметр состоит из дефиса (-) и следующей за ним без пробелов команды, а также, в некоторых случаях, знака равенства (=) и значения. Например, чтобы изменить установленный по умолчанию тип запроса о сведениях для узла и установить начальное время ожидания равным 10 секундам, следует ввести команду:
nslookup -querytype=hinfo -timeout=10

Утилита 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. Для использования этого средства необходимо быть знакомым с принципами работы системы DNS. Средство командной строки Nslookup доступно, только если установлен протокол TCP/IP.

Синтаксис

nslookup [- подкоманда... ] [{искомый_компьютер | [ - сервер ]}]

Параметры

- подкоманда... Задает одну или несколько подкоманд nslookup как параметры командной строки. Список подкоманд смотрите . искомый_компьютер Ищет данные для параметра искомый_компьютер , используя текущий, заданный по умолчанию сервер имен DNS, если никакого другого сервера не указано. Чтобы получить сведения о компьютере не из текущего домена DNS, в конец имени должна быть добавлена точка. - сервер Указывает, что данный сервер следует использовать в качестве сервера имен DNS. Если параметр -сервер не указан, используется сервер DNS, заданный по умолчанию. {help |? } Выводит краткое описание подкоманд nslookup .

Замечания

  • Если искомый_компьютер задан IP-адресом, а запрашивается запись ресурса типа A или PTR, будет выведено имя компьютера. Если искомый_компьютер задан именем без замыкающей точки, имя домена DSN, используемого по умолчанию, будет добавлено к указанному имени. Поведение зависит от состояния следующих подкоманд команды set : domain , srchlist , defname и search .
  • Если в командной строке введен дефис (-) вместо параметра искомый_компьютер , команда nslookup перейдет в интерактивный режим.
  • Длина строки вызова команды не может превышать 256 символов.
  • Команда nslookup может работать в двух режимах: интерактивном и обычном (автономном).

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

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

    • Для прерывания интерактивной команды в любой момент следует нажать CTRL+B.
    • Для выхода необходимо ввести exit .
    • Для ввода имени компьютера, совпадающего с какой-либо командой, перед именем следует ввести обратную косую черту (\).
    • Нераспознанные команды воспринимаются как имена компьютеров.
  • Если при обработке запроса возникла ошибка, командой nslookup на экран будет выведено сообщение. В следующей таблице перечислены возможные сообщения об ошибках.
    Сообщение об ошибке Описание
    Timed out Сервер не ответил на запрос в течение определенного времени и после определенного числа повторных попыток. Имеется возможность установить период ожидания с помощью подкоманды set timeout . Имеется возможность установить число повторных попыток с помощью подкоманды set retry .
    No response from server Сервер имен DNS не запущен на сервере
    No records Сервер имен DNS не содержит записей о ресурсах указанного типа, хотя имя сервера задано верно. Тип запроса задается командой set querytype .
    Nonexistent domain Заданный компьютер или имя домена DNS не существует.
    Connection refused

    Network is unreachable

    Невозможно подключиться к серверу имен DNS или к серверу службы finger. Эта ошибка обычно возникает с запросами команд ls и finger .
    Server failure Сервер имен DNS обнаружил внутреннее несоответствие в своей базе данных и не может корректно ответить на запрос.
    Refused Отказано в обработке запроса сервером имен DNS.
    Format error Сервер DNS обнаружил ошибку в формате полученного пакета. Это может свидетельствовать об ошибке в команде nslookup .

Примеры

Каждый параметр состоит из дефиса (-) и следующей за ним без пробелов команды, а также, в некоторых случаях, знака равенства (=) и значения. Например, чтобы изменить установленный по умолчанию тип запроса о сведениях для узла и установить начальное время ожидания равным 10 секундам, следует ввести команду:

nslookup -querytype=hinfo -timeout=10

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

nslookup -type=MX yandex.ru

nslookup -type=MX сайт 8.8.8.8

nslookup -type=mx wikipedia.org ns2.wikimedia.org

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

nslookup - 8.8.8.8

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

Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).

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

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