zaLinux.ru

Как пользоваться командой nslookup для DNS запросов


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

Программа nslookup умеет работать в двух режимах: интерактивном и не интерактивном.

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

Для входа в интерактивный режим достаточно запустить программу без опций:

nslookup

Любо указать дефис. Кроме дефиса также можно указать имя домена или адрес DNS сервера для запросов:

nslookup - 8.8.4.4

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

В интерактивной сессии командой

server домен_или_IP

можно установить используемый для запросов DNS сервер, например:

server 8.8.4.4

Можно просмотреть текущие значения всех опций командой:

set all

Пример вывода:

Set options:
  novc			nodebug		nod2
  search		recurse
  timeout = 0		retry = 3	port = 53	ndots = 1
  querytype = A       	class = IN
  srchlist =

Значения всех показанных опций можно изменить.

С помощью равнозначных команд:

set querytype=ЗАПИСЬ
set type=ЗАПИСЬ

Можно изменить тип запрашиваемой DNS записи, например, чтобы установить тип записи на MX:

set type=MX

После этого все запросы будут делаться с учётом установвленных настроек, то есть например будет показываться только указанный тип записи. Кстати, чтобы узнать о всех типах записях и чем они различаются, а также как вообще работает DNS, смотрите статью «Введение в DNS терминологию, компоненты и концепции».

Чтобы выводились сразу все DNS записи установите эту настройку следующим образом:

set type=ANY

Пример вывода информации о сразу всех найденных DNS записях домена suip.biz:

> suip.biz
Server:		8.8.4.4
Address:	8.8.4.4#53

Non-authoritative answer:
Name:	suip.biz
Address: 185.117.153.79
suip.biz	nameserver = ns1.marosnet.ru.
suip.biz	nameserver = ns2.marosnet.ru.
suip.biz
	origin = dns-manager_marosnet_net
	mail addr = proghoster.gmail.com
	serial = 2016040402
	refresh = 3600
	retry = 3600
	expire = 604800
	minimum = 86400
suip.biz	mail exchanger = 10 mail.suip.biz.
suip.biz	mail exchanger = 20 mail.suip.biz.
Name:	suip.biz
Address: 2a02:f680:1:1100::3d5f

Authoritative answers can be found from:

Рекурсивные запросы можно включить или отключить командами:

set recurse
set norecurse

По умолчанию рекурсивные запросы включены.


Поменять порт по умолчанию для TCP/UDP соединений при запросах к DNS серверу можно командой вида:

set port=ПОРТ

Портом по умолчанию является 53.

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

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

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

Для работы с nslookup в неинтерактивном режиме достаточно указать после команды имя домена для поиска:

nslookup suip.biz

Поиск A и AAAA записей (IP адрес сайта) с nslookup

По умолчанию показываются записи A и AAAA. То есть если вы хотите узнать IP сайта, то достаточно запустить команду без опций, достаточно указать только имя домена:

nslookup zalinux.ru

Как по IP адресу узнать имя хоста в nslookup

Если вам нужно для IP адреса узнать связанное с ним доменное имя, то достаточно указать этот IP:

nslookup 185.117.153.79

Пример вывода:


79.153.117.185.in-addr.arpa	name = suip.biz.

Как узнать IP адрес субдомена

Командой nslookup можно узнать IP адрес субдомена любого уровня:


nslookup lh5.googleusercontent.com

Поиск записей MX (Mail Exchange)

Для показа хостов, используемых для обмены почты, запустите команду вида:

nslookup -query=mx zalinux.ru

DNS запрос записей SOA (Start of Authority)

nslookup -type=soa zalinux.ru

Как узнать все DNS записи домена

nslookup -query=any zalinux.ru

Как в nslookup указать сервер для запросов

Если вы хотите сделать запрос к определённому DNS серверу (а по умолчанию адреса серверов берутся из файла /etc/resolv.conf), то после доменного имени достаточно указать имя хоста или IP DNS сервера:

nslookup zalinux.ru 8.8.4.4

Как получить записи NS (Name Server) в nslookup

NS запись содержит сервера имён данного домена, для их просмотра выполните команду вида:

nslookup -query=ns zalinux.ru

Сервера Имён — это авторитативные сервера для данного домена, которые являются самый первым источником данных о DNS записях для данного домена.

Как правило, конечный пользователь обращается не к авторитативному серверу (поскольку их много — для каждого домена может быть свой), а к кэширующему DNS серверу.

Что означает Non-authoritative answer

В большинстве ответов вы будете видеть надпись Non-authoritative answer. Чтобы понять её причину, нужно быть знакомым с работой DNS.

Если вы прочитали статью по ссылке, то вы знаете, что DNS сервер является авторитативным (authoritative) для данного домена, если он указан в качестве Сервера Имён (NS) в соответствующих записях для данного домена, а сам DNS сервер содержит файлы зоны для данного домена.

Как получить авторитативный ответ?

Предположим, я хочу узнать IP адрес домена suip.biz, но хочу получить ответ только от авторитативного DNS сервера для данного домена.

Для начала нам нужно узнать, какие сервера имён являются авторитативными для данного домена, то есть какие у этого сайта сервера имён. Как мы узнали чуть выше, нам нужно командой узнать сервера имён для данного домена:

nslookup -query=ns suip.biz

Получено сразу два сервера имён (на случай, если с одним из них будут проблемы).

Мы также уже рассмотрели, как делать запросы к определённому DNS серверу, поэтому выбираем любой из двух (кстати, их может быть больше) и делаем запрос непосредственному к данному DNS серверу:

nslookup suip.biz ns1.marosnet.ru

Обратите внимание, что надпись «Non-authoritative answer.» больше не выводится.

Как включить режим отладки nslookup

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

nslookup -debug suip.biz

Поддержка IDN

Если nslookup был скомпилирован с поддержкой IDN (internationalized domain name — интернационализированных доменных имён), он может принимать и отображать доменные имена не ASCII. nslookup соответствующим образом преобразует кодировку символов доменного имени перед отправкой запроса на DNS-сервер или отображением ответа с сервера. Если по какой-то причине вы хотите отключить поддержку IDN, определите переменную среды IDN_DISABLE. Поддержка IDN отключена, если переменная установлена при запуске nslookup или когда стандартный вывод не является tty.

Также смотрите

Дополнительная информация о DNS и программах для DNS запросов:


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *