Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1811 / 140 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 4:

DNS и доменные имена

Утилита nslookup

Программа nslookup является наиболее универсальным средством, которое можно использовать в различных ситуациях, в том числе при поиске неполадок. Она может запускаться в двух режимах. В неинтерактивном режиме nslookup ведет себя подобно утилите host, которая обсуждалась выше. Однако используя nslookup в интерактивном режиме, можно извлечь гораздо больше пользы. В этом режиме с ее помощью можно получить наиболее подробную информацию об удаленных компьютерах и доменах, так как с помощью опций можно указать, какая информация должна быть получена из базы DNS. Основной формат команды nslookup:

nslookup [-option...] [host-to-find | -[server]]

Если в командной строке задать параметр 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 )
[no]debug Включает/выключает режим отладки (по умолчанию = nodebug )
[no]d2 Включает/выключает режим полной отладки (по умолчанию = nod2 )
domain=name Устанавливает доменное имя по умолчанию name
srchlist=name1/name2... Изменяет домен по умолчанию на name1 и производит поиск по списку name1/name2...
[no]defname Добавляет доменное имя по умолчанию к компоненту запроса
[no]search Добавляет доменные имена в списке к имени хоста (по умолчанию = search )
port=value Изменяет номер порта TCP/UDP (по умолчанию = 53 )
querytype=value Изменяет тип запрашиваемой записи (по умолчанию = А )
type=value То же, что и querytype.
[no]recurse Указывает серверу имен запросить другие серверы для получения ответа (по умолчанию = recurse )
retry=number Устанавливает число повторов запроса при неудачном ответе (по умолчанию = 4)
root=host Изменяет имя корневого сервера на хост с именем host (по умолчанию = ns.internic.net )
timeout=number Изменяет интервал времени ожидания ответа на значение, равное number (по умолчанию = 5 сек)
[no]vc Всегда использовать виртуальную цепочку (по умолчанию = novc )
[no]ignoretc Игнорировать ошибки при урезании пакета (по умолчанию = noignoretc )

В листинге 4.6 показан пример сеанса nslookup, во время которого запрашивается информация о хосте www.linux.org. На запрос с установленными по умолчанию параметрами для указанного имени просто возвращается соответствующий ему IP-адрес. В нашем примере демонстрируется изменение параметров с целью поиска почтовых серверов для данного домена.

1 [katie@shadrach katie]$ 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 [katie@shadrach katie]$
Листинг 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-сервером.