nslookup - это инструмент отладки, который входит в состав пакета BIND. Программа позволяет пользователю напрямую обращаться к серверу имен с запросами и получать любую информацию, хранимую в распределенной базе данных DNS.
Команда nslookup помогает определить факт работоспособности сервера и корректность его настройки, а также запросить информацию, которой владеют удаленные серверы.
Программа nslookup позволяет выполнять запросы в диалоговом режиме либо при помощи параметров командной строки. В следующем примере nslookup применяется для создания запроса IP-адреса определенного узла:
% nslookup crab.wrotethebook.com Server: rodent.wrotethebook.com Address: 172.16.12.2 Name: crab.wrotethebook.com Address: 172.16.12.1
Пользователь просит программу nslookup отобразить адрес узла crab.wrotethebook.com. nslookup отображает имя и адрес сервера, который использовался для получения ответа, а затем и собственно ответ. Удобная возможность, однако nslookup чаще используется в диалоговом режиме.
В диалоговом режиме работы заключена истинная сила nslookup. Чтобы приступить к работе в диалоговом режиме, выполните команду nslookup без аргументов. Завершается диалоговый сеанс сочетанием клавиш <Ctrl>+<D> ID) или набором команды exit в приглашении nslookup. В качестве диалогового сеанса предшествующий запрос выглядит следующим образом:
% nslookup Default Server: rodent.wrotethebook.cor Address: 172.16.12.2 > crab.wrotethebook.com Server: rodent.wrotethebook.com Address: 172.16.12.2 Name: crab.wrotethebook.com Address: 172.16.12.1 > ^D
По умолчанию nslookup выполняет запрос А-записей, но при помощи команды set type можно запросить любой тип RR-записей либо выполнить специальный запрос с типом ANY. ANY позволяет получить все доступные RR-записи для конкретного узла.
В следующем примере выполняется поиск МХ-записей для узлов crab и rodent. Обратите внимание, что указание типа запроса действует на все последующие запросы - автоматического возврата к типу А не происходит. Чтобы выполнить сброс типа запроса, необходима еще одна команда set type.
% nslookup Default Server: rodent.wrotethebook.com Address: 172.16.12.2 > set type=MX > crab.wrotethebook.com Server: rodent.wrotethebook.com Address: 172.16.12.2 crab.wrotethebook.com preference = 5, mail exchanger = crab.wrotethebook.com crab.wrotethebook.com inet address = 172.16.12.1 > rodent.wrotethebook.com Server: rodent.wrotethebook.com Address: 172.16.12.2 rodent.wrotethebook.com preference = 5, mail exchanger = rodent.wrotethebook.com rodent.wrotethebook.com inet address = 172.16.12.2 > exit
Сервер, к которому обращены запросы, можно изменить при помощи команды server. Данная возможность особенно полезна в случае необходимости обратиться за информацией напрямую к компетентному серверу. В следующем примере выполняется именно такая операция. Фактически он содержит ряд интересных команд:
- Во-первых, мы выполняем команду set type=NS и получаем NS-записи домена zoo.edu.
- Исходя из полученной информации, мы выбираем сервер и при помощи команды serveг предписываем nslookup обращаться к этому серверу.
- Затем при помощи команды set domain определяем домен по умолчанию - zoo.edu. nslookup использует доменные имена по умолчанию для дополнения имен узлов в запросах точно так же, как это делает клиент DNS для доменного имени по умолчанию, определенного в файле resolv.conf.
- Мы переустанавливаем тип запроса в ANY. Если этого не сделать, nslookup будет по-прежнему искать NS-записи.
- Наконец, мы запрашиваем информацию об узле tiger.zoo.edu. Поскольку значение домена по умолчанию - zoo.edu, мы набираем в приглашении nslookup только имя узла - tiger.
А вот и сам пример:
% nslookup Default Server: rodent.wrotethebook.com Address: 172.16.12.2 > set type=NS > zoo.edu Server: rodent.wrotethebook.com Address: 172.16.12.2 Non-authoritative answer: zoo.edu nameserver = NOC.ZOO.EDU zoo.edu nameserver = NI.Z00.EDU zoo.edu nameserver = NAMESERVER.AGENCY.GOV Authoritative answers can be found from: N0C.Z00.EDU inet address = 172.28.2.200 NI.Z00.EDU inet address = 172.28.2.240 NAMESERVER.AGENCY.GOV inet address = 172.21.18.31 > server N0C.Z00.EDU Default Server: NOC.ZOO.EDU Address: 172.28.2.200 > set domain=zoo.edu > set type=any > tiger Server: NOC.ZOO.EDU Address: 172.28.2.200 tiger.zoo.edu inet address = 172.28.172.8 tiger.zoo.edu preference = 10, mail exchanger = tiger.ZOO.EOU tiger.zoo.edu CPU=ALPHA OS=Unix tiger.zoo.edu inet address = 172.28.172.8, protocol = 6 7 21 23 25 79 tiger.ZOO.EDU inet address = 172.28.172.8 > exit
Последний пример демонстрирует, как загрузить целый домен с компетентного сервера и изучить его в локальной системе. Команда Is запрашивает передачу зоны и отображает содержимое полученной зоны. Если в файле зоны много строк, перенаправьте вывод в файл и воспользуйтесь командой view, чтобы изучить его содержимое, (view сортирует файл и отображает его строки посредством Unix-команды more.) Сочетание Is и view полезно при поиске определенного удаленного узла. В данном примере команда Is инициирует передачу зоны big.com и сохраняет информацию в файле temp.file. Для просмотра temp.file применяется view.
rodent% nslookup Default Server: rodent wrotethebook.com Address: 172.16.12.2 > server minerals.blg.com Default Server: minerals.big.com Address: 192.168.20.1 > Is big.com > temp.file [minerals.big.com] mtttttttttt Received 406 records. > view temp.file acmite 192.168.20.28 adamite 192.168.20.29 adelite 192.168.20.11 agate 192.168.20.30 alabaster 192.168.20.31 albite 192.168.20.32 allanite 192.168.20.20 altaite 192.168.20.33 alum 192.168.20.35 aluminum 192.168.20.8 amaranth 192.168.20.85 amethyst 192.168.20.36 andorite 192.168.20.37 apatite 192.168.20.38 beryl 192.168.20.23 --More-q > exit
Приведенные примеры показывают, что nslookup позволяет:
- Запрашивать RR-записи любого из стандартных типов
- Напрямую обращаться к компетентным серверам доменов
- Записывать полное содержимое домена в файл для последующего про- смотра
Чтобы узнать о других возможностях nslookup, воспользуйтесь командой help. Включите отладку (команда set debug) и изучите дополнительную информацию. По мере изучения инструмента nslookup вы обнаружите много полезных возможностей.