Россия, Казань, Казанский Национальный Исследовательский Технический Университет |
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.
Параметр | Описание |
---|---|
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-сервером.