Как пользоваться nslookup | Losst
Иногда может возникнуть необходимость проверить работоспособность DNS, посмотреть как быстро работает сервер, увидеть IP адрес и скорость его получения для определенного домена. Для этого используется утилита nslookup. С помощью нее вы можете не только получить IP адрес по домену, но и выполнить обратное преобразование, а также проверить установлены все необходимые записи DNS.
В этой статье мы рассмотрим как пользоваться nslookup, что делает эта утилита, а также ее синтаксис и опции.
Содержание статьи:
Как работает DNS?
Служба DNS позволяет преобразовывать сложные для запоминания ip адреса в простые и легкие доменные имена, которые намного проще запомнить. Если не вдаваться в подробности, то существует сеть DNS серверов, на которых хранится вся необходимая информация об IP адресах и соответствующих им доменах. Время от времени они обмениваются между собой информацией, чтобы база данных была полной и актуальной.
Когда компьютеру нужно обратиться к какому-либо сайту по домену, он запрашивает его IP адрес у DNS сервера, а затем сохраняет его в локальном кэше. Но DNS запросы могут отсылаться не только автоматически, их может формировать и отправлять утилита nslookup в Linux или Windows.
Команда nslookup
Перед тем как мы перейдем дальше, к практике и примерам, давайте рассмотрим синтаксис и опции утилиты. Синтаксис достаточно прост:
$ sudo nslookup опции домен сервер
Домен — это то доменное имя, для которого необходимо посмотреть информацию, а сервер — необязательный параметр, который указывает, что нужно использовать другой dns сервер. Основные опции nslookup:
- -type — тип информации, которую хотим получить, возможные типы: txt, soa, ptr, ns, mx, mr, minfo, mg, mb, hinfo, gid, cname, a, any;
- -port — другой порт DNS сервера;
- -recurse — использоваться другие DNS серверы, если на этом нет ответа;
- -retry — количество попыток получить нужную информацию;
- -timeout — время между попытками запросов к серверу;
- -fail — пробовать другой сервер имен, если этот вернул ошибку.
Самое интересное, что команду можно выполнять не только в обычном, но и в интерактивном режиме, если запустить ее без параметров. А теперь перейдем ближе к самим примерам как работает команда nslookup linux.
Как пользоваться nslookup?
Сначала посмотрим ip адрес для losst.ru. Для этого не нужно передавать никаких дополнительных параметров, только само доменное имя:
nslookup losst.ru
В выводе утилиты мы можем видеть ip адрес 192.168.137.1, это не адрес сервера, а наш, системный DNS сервер. В следующей строке выводится тот же ip адрес и порт, это адрес DNS сервера вместе с портом. По умолчанию порт — 53. И только после этого находится информация про запрашиваемый сайт. Наш ip адрес 194.67.215.125, это означает, что все пакеты, которые вы будете отправлять на losst.ru будут приходить на этот адрес.
Иногда вы можете получить в ответе утилиты сообщение «Non-authoritative answer». Ответ считается авторитетным, только если наш DNS сервер имеет полную информацию о зоне, для рассматриваемой области. Чаще всего, у нашего сервера будет не вся информация, а кэш последнего ответа от авторитетного сервера. Такая информация считается не авторитетной, хотя она была получена из авторитетного источника, но сам DNS сервер таковым не считается.
Также вы можете выполнить обратное преобразование IP адреса в домен. Для этого передайте утилите IP адрес:
nslookup 194.67.215.125
Первоисточник информации о домене, это его ns сервера. Вы можете их получить, использовав команду с опцией type=ns:
nslookup -type-ns losst.ru
Команда выведет список используемых серверов имен, например, у нас это ns1.nameself.com. Обычно это от двух до четырех серверов. Если есть авторитетный источник для получения информации, то он указывается в нижней части вывода. Например, если мы запросим информацию у сервера имен ns1.nameself.com, то это уже будет авторитетный ответ:
nslookup losst.ru ns1.nameself.com
Еще вы можете получить MX запись для домена, для этого нужно установить тип запроса в mx:
nslookup -type=mx linux.com
Здесь будут отображены все настроенные почтовые серверы, у каждого сервера есть свой приоритет, например, 10, 15 или 5. Чем меньше число, тем выше приоритет адреса.
SOA или Start Of Authority предоставляет техническую информацию о домене, для получения этого поля используйте тип запроса soa:
nslookup -type=soa losst.ru
Здесь будет выведена такая информация:
- origin — происхождение полученной информации;
- mail addr — адрес электронной почты администратора домена;
- serial — время с момента последнего обнволения домена в формате timestamp;
- refresh — количество секунд, с момента последнего обновления, когда его нужно повторить;
- retry — количество секунд, через которое нужно повторить попытку подключения, если DNS сервер недоступен;
- expire — количество секунд, по истечении которых полученная от первичного DNS информация будет считаться устаревшей;
- minimum — минимальное количество секунд до следующего обновления.
Также возможно использование nslookup для просмотра всех доступных записей DNS:
nslookup -type=any losst.ru
Для просмотра более подробной информации про выполнение запроса вы можете использовать опцию -debug:
nslookup -type=any -debug linux.com
Здесь отображается сообщение, отправленное на сервер и полученный от него ответ. Если ip адресов несколько, то система может отобразить ttl для каждого из них. Некоторые крупные сайты размещены на нескольких серверах, это сделано для противостояния DDoS атакам.
Команда nslookup linux может использоваться и в интерактивном режиме, для этого нужно выполнить ее без параметров:
nslookup
Дальше просто наберите имя домена, чтобы узнать его IP:
losst.ru
С помощью команды set вы можете задавать различные параметры, например, порт, или тип запроса:
set port=53
set type=mx
Чтобы завершить работу с утилитой, используйте команду exit.
Выводы
В этой статье мы рассмотрели как пользоваться nslookup, утилитой для просмотра DNS записей для домена. Она может быть очень полезной для веб-мастеров и системных администраторов, поскольку очень просто предоставляет всю необходимую информацию. Если у вас остались вопросы, спрашивайте в комментариях!
losst.ru
Утилита nslookup
DNS является клиент-серверной службой; однако, она отличается от других клиент-серверных служб, рассмотренных ранее. Тогда как другие службы используют клиента, который является приложением (таким как веб браузер, e-mail клиент), клиент DNS сам запускается как служба. DNS клиент, который иногда называют DNS преобразователь, поддерживает разрешение имен для других сетевых приложений и других служб, которые в этом нуждаются.
При конфигурации сетевого устройства, мы вообще говоря прописываем один или более адресов DNS Серверов, которые DNS клиент может использовать для разрешения имен. Обычно провайдер сервиса Интернета предоставляет адреса, которые следует использовать в качестве адресов DNS серверов. Когда пользовательское приложение запрашивает подключение к удаленному устройству по имени, DNS клиент запрашивающего компьютера опрашивает один из этих серверов имен, чтобы конвертировать имя в числовой адрес.
Операционные системы компьютера также имеют утилиту, называемую nslookup , которая позволяет пользователю вручную опрашивать сервера имен, чтобы разрешить заданное имя хоста. Эта утилита также может использоваться для устранения неполадок при проблемах с разрешением имен, а также чтобы проверить текущий статус серверов имен.
На рисунке, когда выполняется nslookup, отображается DNS сервер по умолчанию, сконфигурированный для вашего хоста. В этом примере DNS сервером является ahl-dc01.alrosa.ru, который имеет адрес 10.151.3.10.
Мы можем напечатать имя хоста или домен, для которого хотелось бы получить адрес. В первом запросе на рисунке, запрос делается для alrosa.ru. Отвечающий сервер предоставляет ответ 10.151.3.10.
Запросы, показанные на рисунке являются лишь простыми тестами. Утилита nslookup имеет много опций, доступных для более исчерпывающиго тестирования и проверки DNS процесса.
Далее: Формат DNS записей
Смотрите также
Написать
datanets.ru
работа с сервером DNS из командной строки.
    Утилита NSLOOKUP присутствует в операционных системах Windows, начиная с Windows NT , и предназначена для формирования запросов к серверам DNS из командной строки. Фактически, утилита является аналогом службы DNS-клиент и позволяет диагностировать проблемы с разрешением имен в системе DNS. По умолчанию, все запросы отправляются на DNS-сервер, адрес которого задан настройками сетевого подключения. В терминах утилиты такой сервер является сервером по умолчанию (default server). Команда ipconfig /all позволяет получить информацию о настройках протокола IP и, в том числе, о серверах DNS, используемых в системе.При запуске nslookup без параметров, утилита переходит в интерактивный режим, ожидая ввод команд пользователя. Ввод знака вопроса или help позволяет отобразить справку о внутренних командах и опциях nslookup:
Команды nslookup:
(идентификаторы отображаются в верхнем регистре, квадратные скобки «[]» обозначают необязательные параметры)
NAME — печать сведений об узле или домене NAME с помощью сервера по умолчанию
NAME1 NAME2 — та же операция, но в качестве сервера используется NAME2
help или ? — печать сведений о стандартных командах
set OPTION — установить параметр
all — печать параметров, текущего сервера и узла
[no]debug — печать отладочных сведений
[no]d2 — печать полных отладочных сведений
[no]defname — добавить имя домена ко всем запросам
[no]recurse — запрос рекурсивного ответа на запрос
[no]search — использовать список поиска доменов
[no]vc — всегда использовать виртуальную схему
domain=NAME — установить имя домена по умолчанию NAME
srchlist=N1[/N2/…/N6] — установить домен N1 и список поиска N1,N2 и т.д.
root=NAME — установить корневой сервер NAME
retry=X — установить число повторов X
timeout=X — установить интервал времени ожидания в X секунд
type=X — установить тип запроса (пр. A,AAAA,A+AAAA,ANY,CNAME,MX ,NS,PTR,SOA,SRV)
querytype=X — то же, что и type
class=X — установить класс запроса ( IN (Internet), ANY)
[no]msxfr — использовать быструю зону MS для передачи
ixfrver=X — текущая версия, использующаяся в передаче запросов IXFR
server NAME — установить сервер по умолчанию NAME, используя текущий сервер по умолчанию
lserver NAME — установить сервер по умолчанию NAME, используя первоначальный сервер
root — сделать текущий сервер по умолчанию корневым сервером
ls [opt] DOMAIN [> FILE] — перечисление адресов в домене DOMAIN (необязательно: вывод в файл FILE)
-a — перечисление канонических имен и псевдонимов
-d — перечисление всех записей
-t TYPE — перечисление записей указанного типа RFC (пр. A,CNAME,MX,NS,PTR etc.)
view FILE — сортировка файла «ls» и его просмотр с помощью pg
exit — выход из программы
Примеры использования команды NSLOOKUP
При запуске с некоторыми из выше перечисленных параметров, команда nslookup выполняется в не интерактивном режиме без диалога с пользователем:
nslookup yandex.ru. — выполнить запрос к DNS-серверу, заданному по умолчанию, на разрешение доменного имени yandex.ru. Для уменьшения количества ненужных запросов к серверам имен, имя домена нужно вводить в виде полностью определенного имени (fully qualified domain name) , т.е. с точкой в конце. Если этого не делать, то nslookup будет сначала выполнять запрос на разрешение имени относительно домена того компьютера, на котором она выполняется, т.е. yandex.ru.mydomain.ru если имя локального домена — mydomain.ru.
nslookup -type=mx yandex.ru — то же, что и в предыдущем примере, но с указанием типа запрашиваемой записи -type=mx. Сервер DNS ответит на запрос утилиты nslookup перечислением почтовых серверов, обслуживающих домен yandex.ru
nslookup odnoklassniki.ru 8.8.8.8 — определить IP-адрес узла odnokassniki.ru с использованием DNS-сервера 8.8.8.8 (публичный DNS-сервер Google), вместо DNS-сервера, заданного в настройках сетевого подключения.
nslookup -type=mx -timeout=8 vk.com 208.67.220.220 — отобразить запись MX для домена vk.com из базы данных сервера с IP-адресом 208.67.220.220 (сервер OpenDNS). При выполнении команды, максимальное время ожидания ответа сервера — 8 секунд.
nslookup -type=any -timeout=8 vk.com 208.67.220.220 — то же, что и в предыдущем примере, но выполняется запрос на отображение любых типов записей.
Пример отображаемых данных:
Сервер: 208.67.220.220
Не заслуживающий доверия ответ:
vk.com internet address = 87.240.131.119
vk.com internet address = 87.240.131.99
vk.com nameserver = ns2.vkontakte.ru
vk.com nameserver = ns4.vkontakte.ru
vk.com nameserver = ns1.vkontakte.ru
vk.com nameserver = ns4.vkontakte.ru
vk.com nameserver = ns2.vkontakte.ru
vk.com nameserver = ns1.vkontakte.ru
ns1.vkontakte.ru internet address = 93.186.237.2
ns2.vkontakte.ru internet address = 93.186.224.100
Для разных версий nslookup и разных DNS-серверов, обслуживающих запрос, отображаемая информация может незначительно отличаться. Тот же запрос, сформированный англоязычной версией утилиты nslookup.exe и направленный на обработку DNS-серверу компании Google приведет к отображению следующих данных:
Address: 8.8.8.8
Non-authoritative answer:
vk.com internet address = 87.240.131.120
vk.com internet address = 87.240.143.244
vk.com
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:901
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:902
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:903
vk.com nameserver = ns1.vkontakte.ru
vk.com nameserver = ns2.vkontakte.ru
vk.com nameserver = ns4.vkontakte.ru
vk.com MX preference = 10, mail exchanger = mail.vk.com
vk.com text =»v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlemail.com ~all»
Сообщение «Не заслуживающий доверия ответ:» (Non-authoritative answer: ) говорит о том, что выполняющий запрос DNS-сервер, не является владельцем зоны vk.com т.е. записи для узла vk.com в его базе отсутствуют, и для разрешения имени использовался рекурсивный запрос к другому DNS-серверу. Если отправить запрос DNS-серверу ns1.vkontakte.ru, то будет получен авторитетный ответ (authoritative answer) :
Server: ns1.vkontakte.ru
Address: 93.186.237.2
vk.com
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
vk.com internet address = 87.240.131.118
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:904
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:905
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:906
vk.com nameserver = ns4.vkontakte.ru
vk.com nameserver = ns1.vkontakte.ru
vk.com nameserver = ns2.vkontakte.ru
vk.com MX preference = 10, mail exchanger = mail.vk.com
vk.com text = «v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlemail.com ~all»
ns4.vkontakte.ru internet address = 93.186.239.253
ns4.vkontakte.ru AAAA IPv6 address = 2a00:bdc0:ff:4::2
ns1.vkontakte.ru internet address = 93.186.237.2
ns1.vkontakte.ru AAAA IPv6 address = 2a00:bdc0:ff:1::2
ns2.vkontakte.ru internet address = 93.186.224.100
ns2.vkontakte.ru AAAA IPv6 address = 2a00:bdc0:ff:2::2
mail.vk.com internet address = 93.186.236.94
Использование опции отладки (debug) позволяет получить дополнительную информацию, содержащуюся в заголовках запросов
клиента и ответов сервера (время жизни, флажки, типы записей и т.п.):
> server ns1.vkontakte.ru
————
Got answer:
HEADER:
opcode = QUERY, id = 5, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 1, additional = 0
QUESTIONS:
ns1.vkontakte.ru, type = A, class = IN
AUTHORITY RECORDS:
-> (root)
ttl = 440 (7 mins 20 secs)
primary name server = a.root-servers.net
responsible mail addr = nstld.verisign-grs.com
serial = 2013101600
refresh = 1800 (30 mins)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 86400 (1 day)
————
————
Got answer:
HEADER:
opcode = QUERY, id = 6, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0
QUESTIONS:
ns1.vkontakte.ru, type = A, class = IN
ANSWERS:
-> ns1.vkontakte.ru
internet address = 93.186.237.2
ttl = 6350 (1 hour 45 mins 50 secs)
————
Default Server: ns1.vkontakte.ru
Address: 93.186.237.2
> vk.com
Server: ns1.vkontakte.ru
Address: 93.186.237.2
————
Got answer:
HEADER:
opcode = QUERY, id = 7, rcode = REFUSED
header flags: response, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
vk.com, type = ANY, class = IN
————
————
Got answer:
HEADER:
opcode = QUERY, id = 8, rcode = NOERROR
header flags: response, auth. answer, want recursion
questions = 1, answers = 11, authority records = 0, additional = 7
QUESTIONS:
vk.com, type = ANY, class = IN
ANSWERS:
-> vk.com
ttl = 900 (15 mins)
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
-> vk.com
internet address = 87.240.131.99
ttl = 900 (15 mins)
-> vk.com
internet address = 87.240.131.119
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:901
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:902
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:903
ttl = 900 (15 mins)
-> vk.com
nameserver = ns1.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
nameserver = ns2.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
nameserver = ns4.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
MX preference = 10, mail exchanger = mail.vk.com
ttl = 900 (15 mins)
-> vk.com
text = «v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlemail.com ~all»
ttl = 900 (15 mins)
ADDITIONAL RECORDS:
-> ns1.vkontakte.ru
internet address = 93.186.237.2
ttl = 9000 (2 hours 30 mins)
-> ns1.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:1::2
ttl = 9000 (2 hours 30 mins)
-> ns2.vkontakte.ru
internet address = 93.186.224.100
ttl = 9000 (2 hours 30 mins)
-> ns2.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:2::2
ttl = 9000 (2 hours 30 mins)
-> ns4.vkontakte.ru
internet address = 93.186.239.253
ttl = 9000 (2 hours 30 mins)
-> ns4.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:4::2
ttl = 9000 (2 hours 30 mins)
-> mail.vk.com
internet address = 93.186.236.94
ttl = 900 (15 mins)
————
vk.com
ttl = 900 (15 mins)
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
vk.com
internet address = 87.240.131.99
ttl = 900 (15 mins)
vk.com
internet address = 87.240.131.119
ttl = 900 (15 mins)
vk.com
ab57.ru
Утилита NSLOOKUP | Энциклопедия Windows
Утилита 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 и нажатие клавиши <Enter>. Это приведет к запуску интерактивного режима команды nslookup. Далее представлены ссылки на описание всех подкоманд утилиты nslookup, которые связаны с диагностикой и решением проблем в работе службы преобразования имен.
Команды nslookup:
Отдельно остановимся на команде set. Она используется для настройки способа запроса и получения записей текущей командной оболочкой утилиты nslookup. Существует несколько подкоманд set, которые рассматриваются в следующих статьях.
windata.ru
Команда NSLOOKUP — работа с сервером DNS из командной строки
> server ns1.vkontakte.ru
————
Got answer:
HEADER:
opcode = QUERY, id = 5, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 1, additional = 0
QUESTIONS:
ns1.vkontakte.ru, type = A, class = IN
AUTHORITY RECORDS:
-> (root)
ttl = 440 (7 mins 20 secs)
primary name server = a.root-servers.net
responsible mail addr = nstld.verisign-grs.com
serial = 2013101600
refresh = 1800 (30 mins)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 86400 (1 day)
————
————
Got answer:
HEADER:
opcode = QUERY, id = 6, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0
QUESTIONS:
ns1.vkontakte.ru, type = A, class = IN
ANSWERS:
-> ns1.vkontakte.ru
internet address = 93.186.237.2
ttl = 6350 (1 hour 45 mins 50 secs)
————
Default Server: ns1.vkontakte.ru
Address: 93.186.237.2
> vk.com
Server: ns1.vkontakte.ru
Address: 93.186.237.2
————
Got answer:
HEADER:
opcode = QUERY, id = 7, rcode = REFUSED
header flags: response, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
vk.com, type = ANY, class = IN
————
————
Got answer:
HEADER:
opcode = QUERY, id = 8, rcode = NOERROR
header flags: response, auth. answer, want recursion
questions = 1, answers = 11, authority records = 0, additional = 7
QUESTIONS:
vk.com, type = ANY, class = IN
ANSWERS:
-> vk.com
ttl = 900 (15 mins)
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
-> vk.com
internet address = 87.240.131.99
ttl = 900 (15 mins)
-> vk.com
internet address = 87.240.131.119
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:901
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:902
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:903
ttl = 900 (15 mins)
-> vk.com
nameserver = ns1.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
nameserver = ns2.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
nameserver = ns4.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
MX preference = 10, mail exchanger = mail.vk.com
ttl = 900 (15 mins)
-> vk.com
text =
«v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlem
ail.com ~all»
ttl = 900 (15 mins)
ADDITIONAL RECORDS:
-> ns1.vkontakte.ru
internet address = 93.186.237.2
ttl = 9000 (2 hours 30 mins)
-> ns1.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:1::2
ttl = 9000 (2 hours 30 mins)
-> ns2.vkontakte.ru
internet address = 93.186.224.100
ttl = 9000 (2 hours 30 mins)
-> ns2.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:2::2
ttl = 9000 (2 hours 30 mins)
-> ns4.vkontakte.ru
internet address = 93.186.239.253
ttl = 9000 (2 hours 30 mins)
-> ns4.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:4::2
ttl = 9000 (2 hours 30 mins)
-> mail.vk.com
internet address = 93.186.236.94
ttl = 900 (15 mins)
————
vk.com
ttl = 900 (15 mins)
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
vk.com
internet address = 87.240.131.99
ttl = 900 (15 mins)
vk.com
internet address = 87.240.131.119
ttl = 900 (15 mins)
vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:901
ttl = 900 (15 mins)
vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:902
ttl = 900 (15 mins)
vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:903
ttl = 900 (15 mins)
vk.com
nameserver = ns1.vkontakte.ru
ttl = 900 (15 mins)
vk.com
nameserver = ns2.vkontakte.ru
ttl = 900 (15 mins)
vk.com
nameserver = ns4.vkontakte.ru
ttl = 900 (15 mins)
vk.com
MX preference = 10, mail exchanger = mail.vk.com
ttl = 900 (15 mins)
vk.com
text =
«v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlem
ail.com ~all»
ttl = 900 (15 mins)
ns1.vkontakte.ru
internet address = 93.186.237.2
ttl = 9000 (2 hours 30 mins)
ns1.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:1::2
ttl = 9000 (2 hours 30 mins)
ns2.vkontakte.ru
internet address = 93.186.224.100
ttl = 9000 (2 hours 30 mins)
ns2.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:2::2
ttl = 9000 (2 hours 30 mins)
ns4.vkontakte.ru
internet address = 93.186.239.253
ttl = 9000 (2 hours 30 mins)
ns4.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:4::2
ttl = 9000 (2 hours 30 mins)
mail.vk.com
internet address = 93.186.236.94
ttl = 900 (15 mins)
corp2.info
Howto nslookup. Полезный инструмент для работы с ДНС
Может возникнуть необходимость проверить работоспособность DNS, посмотреть как быстро работает сервер, увидеть IP адрес и скорость его получения для определенного домена. Для этого cсуществует отличная утилита nslookup. С помощью которой Вы можете получить IP адрес по домену, выполнить обратное преобразование, а также проверить установлены все необходимые записи DNS.
КАК РАБОТАЕТ DNS?
Служба DNS позволяет преобразовывать сложные для запоминания ip адреса в простые и легкие доменные имена, которые намного проще запомнить. Если не вдаваться в подробности, то существует сеть DNS серверов, на которых хранится вся необходимая информация об IP адресах и соответствующих им доменах. Время от времени они обмениваются между собой информацией, чтобы база данных была полной и актуальной.
Когда компьютеру нужно обратиться к какому-либо сайту по домену, он запрашивает его IP адрес у DNS сервера, а затем сохраняет его в локальном кэше. Но DNS запросы могут отсылаться не только автоматически, их может формировать и отправлять утилита nslookup в Linux или Windows.
КОМАНДА NSLOOKUP
Перед тем как мы перейдем дальше, к практике и примерам, давайте рассмотрим синтаксис и опции утилиты. Синтаксис достаточно прост:
$ sudo nslookup опции домен сервер
Домен — это то доменное имя, для которого необходимо посмотреть информацию, а сервер — необязательный параметр, который указывает, что нужно использовать другой dns сервер. Основные опции nslookup:
- -type — тип информации, которую хотим получить, возможные типы: txt, soa, ptr, ns, mx, mr, minfo, mg, mb, hinfo, gid, cname, a, any;
- -port — другой порт DNS сервера;
- -(no)recurse — использоваться другие DNS серверы, если на этом нет ответа;
- -retry — количество попыток получить нужную информацию;
- -timeout — время между попытками запросов к серверу;
- -fail — пробовать другой сервер имен, если этот вернул ошибку.
Самое интересное, что команду можно выполнять не только в обычном, но и в интерактивном режиме, если запустить ее без параметров. А теперь перейдем ближе к самим примерам как работает команда nslookup linux.
КАК ПОЛЬЗОВАТЬСЯ NSLOOKUP?
Посмотрим ip адрес для disnetern.ru.
@ns:~$ nslookup disnetern.ru
В выводе утилиты видно ip адрес 10.3.5.21, это не адрес сервера, а системный DNS сервер. В следующей строке выводится тот же ip адрес и порт, это адрес DNS сервера вместе с портом. По умолчанию порт — 53. И только после этого находится информация про запрашиваемый сайт. Наш ip адрес 87.236.16.171 (от отлично хостинг-провайдера Beget), это означает, что все пакеты, которые вы будете отправлять на disnetern.ru будут приходить на этот адрес.
Иногда вы можете получить в ответе утилиты сообщение «Non-authoritative answer» (или на русском: “Не заслуживающий доверия ответ”). Ответ считается авторитетным, только если наш DNS сервер имеет полную информацию о зоне, для рассматриваемой области. Чаще всего, у нашего сервера будет не вся информация, а кэш последнего ответа от авторитетного сервера. Такая информация считается не авторитетной, хотя она была получена из авторитетного источника, но сам DNS сервер таковым не считается.
Первоисточник информации о домене, это его ns сервера. Вы можете их получить, использовав команду с опцией type=ns:
@ns:~$
nslookup -type=ns disnetern.ru
Команда выведет список используемых серверов имен, например, у нас это ns1.beget.com. Обычно это от двух до четырех серверов. Если есть авторитетный источник для получения информации, то он указывается в нижней части вывода.
Например, если мы запросим информацию у сервера имен ns1.beget.com, то это уже будет авторитетный (“Заслуживающий доверия”) ответ:
@ns:~$
nslookup disnetern.ru ns1.beget.com
Еще можете получить MX запись для домена, для этого нужно установить тип запроса в mx:
@ns:~$
nslookup -type=mx disnetern.ru
Здесь будут отображены все настроенные почтовые серверы, у каждого сервера есть свой приоритет, например, 10 или 20. Чем меньше число, тем выше приоритет адреса.
SOA или Start Of Authority предоставляет техническую информацию о домене, для получения этого поля используйте тип запроса soa:
@ns:~$
nslookup -type=soa disnetern.ru
Здесь будет выведена такая информация:
- origin — происхождение полученной информации;
- mail addr — адрес электронной почты администратора домена;
- serial — время с момента последнего обнволения домена в формате timestamp;
- refresh — количество секунд, с момента последнего обновления, когда его нужно повторить;
- retry — количество секунд, через которое нужно повторить попытку подключения, если DNS сервер недоступен;
- expire — количество секунд, по истечении которых полученная от первичного DNS информация будет считаться устаревшей;
- minimum — минимальное количество секунд до следующего обновления.
Также возможно использование nslookup для просмотра всех доступных записей DNS:
@ns:~$
nslookup -type=any disnetern.ru
Для просмотра более подробной информации про выполнение запроса вы можете использовать опцию -debug:
@ns:~$
nslookup -type=any -debug disnetern.ru
Здесь отображается сообщение, отправленное на сервер и полученный от него ответ. Если ip адресов несколько, то система может отобразить ttl для каждого из них. Некоторые крупные сайты размещены на нескольких серверах, это сделано для противостояния DDoS атакам.
Команда nslookup linux может использоваться и в интерактивном режиме, для этого нужно выполнить ее без параметров:
@ns:~$
nslookup
Дальше просто наберите имя нужного домена, чтобы узнать его IP
С помощью команды set вы можете задавать различные параметры, например, порт, или тип запроса:
set port=53
set type=mx
Чтобы завершить работу с утилитой, используйте команду exit.
ВЫВОДЫ
В этой статье рассмотрено пользование nslookup, утилитой для просмотра DNS записей для домена. Она может быть очень полезной для веб-мастеров и системных администраторов, поскольку очень просто предоставляет всю необходимую информацию.
Ну и напоследок – если вы хотите узнать список мировых root серверов-имен, пропишите: ” @ns:~$ nslookup -type=ns . ” И вы увидите актуальный список главных мировых серверов DNS.
disnetern.ru
Этот странный Nslookup | Windows IT Pro/RE
Сомнительные достоинства старой доброй утилиты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. С ним можно связаться по адресу: [email protected].
www.osp.ru