Читаем без скачивания TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) - Сидни Фейт
Шрифт:
Интервал:
Закладка:
Address: 137.65.2.5 Ответ сохранялся на диске r2d2 и был выведен
пользователю.
> Www.novell.com. Пользователь повторяет запрос об удаленном
хосте.
Server: r2d2.jvnc.net Снова вывод идентификатора и адреса сервера.
Address: 128.121.50.2
Non-authoritative answer: Ответ получен из локального кеша.
Name: www.novell.com Запрашиваемое имя,
Address: 137.65.2.5 Ответ.
Для чего сервер постоянно идентифицирует себя? Вспомним, что организацию могут обслуживать два или более серверов, один из которых может оказаться слишком загруженным или выключенным на профилактику. В этом случае определитель не сможет получить ответ от первой в своем списке системы и пошлет запрос к следующей системе из списка. По выводимым в nslookup сведениям администратор сможет быстро определить, какой из серверов отвечает на запросы.
Отметим, что в конце каждого запроса стоит символ точки. Ниже в мы рассмотрим причину этого.
12.6 Авторитетные ответы и ответы из кеша
Все данные вводятся и изменяются на первичном сервере имен. Они хранятся на собственном жестком диске этого сервера. Вторичный сервер имен загружает информацию с первичного сервера.
Когда система посылает запрос к DNS, она не заботится о том, куда попадет запрос — на первичный или на вторичный сервер имен. Все серверы имен (первичные и вторичные) авторитетны (authoritative) для своего домена.
Для снижения трафика локальный сервер кеширует уже полученные ответы на своем жестком диске. При повторном запросе данные (если они еще находятся в кеше) извлекаются из кеша, формируя локальный ответ.
Как долго информация находится в кеше? Максимальное время хранения конфигурируется авторитетным сервером и сообщается запрашивающей системе вместе с ответом.
12.7 Трансляция адресов в имена
Система DNS обратима, т.е. может выполнять обратную трансляцию адресов в имена. Однако способ, используемый для этого в nslookup, несколько необычен:
■ Установить тип запроса в ptr.
■ Записать адрес наоборот, дописав в конце его .in-addr.arpa.
Например:
> set type = ptr
> 143.50.121.128.in-addr.arpa.
Server: r2d2.jvnc.net
Address: 128.121.50.2
143.50.121.128.in-addr.arpa host name = mickey.jvnc.net
>
Эта странность становится осмысленной, если рассмотреть архитектуру глобального обратного просмотра. Организация, владеющая сетевым адресом, несет ответственность за запись в базе данных DNS всех своих трансляций адресов в имена. Это делается в таблице, иной чем таблица отображения имен в адреса.
Поддерево специального домена in-addr.arpa (см. рис. 12.2) создается для указания на все сетевые таблицы. Когда в это дерево помещается адрес, имеет смысл разместить первое число вверху, а оставшиеся числа сверху вниз. В этом случае все адреса 128.x.x.x окажутся ниже узла 128.
Рис. 12.2. Поддерево домена in-addr.arpa
Если читать метки на дереве с помощью тех же правил, что и для имен (сверху вниз), адреса получатся записанными в обратном порядке — в частности 143.50.121.128.in-addr.arpa.
Разумеется, пользовательский интерфейс программы nslookup мог бы скрыть эту технологию. Но это все же Unix, и на рис. 12.3 показана более дружественная для пользователя программа NSLookup, разработанная в Ashmount Research Ltd. Запросы вводятся в небольшом вторичном окне в нижней части общего окна программы, а ответы выводятся в верхнюю область окна. Отметим, что в обоих ответах присутствуют имена и адреса сервера имен, содержащего авторитетные сведения для данного запроса.
Рис. 12.3. Вопрос к DNS
12.8 Локальные и глобальные серверы имен доменов
В изолированной сети TCP/IP можно применять любое бесплатное программное обеспечение DNS для создания первичной базы данных трансляции имен и репликации этой базы данных в определенные точки сети. Все пользовательские запросы будут обрабатываться локальным сервером имен.
Но при соединении сети с Интернетом сервер имен должен быть способен извлекать глобальную информацию. Ключом к пониманию данной операции является то, что, когда организация (например, microsoft.com) желает подключиться к Интернету, она обязана оформить сведения о себе в соответствующем комитете регистрации авторизации (registration authority), в нашем случае это InterNIC, и указать имена и адреса не менее чем двух серверов DNS. InterNIC добавит эти сведения в свой корневой список серверов имен доменов.
Корневой список реплицируется на несколько корневых серверов, играющих основную роль в обработке удаленных запросов DNS. Предположим, что запрос на трансляцию имени в адрес для www.microsoft.com поступил на локальный сервер имен trigger. Тогда:
■ Сервер проверяет принадлежность www.microsoft.com локальному домену.
■ Если имя не принадлежит локальному домену, проверяется его наличие в кеше.
■ Если имени нет и в кеше, сервер посылает запрос корневому серверу.
■ Корневой сервер возвращает имя и адрес сервера DNS, который содержит сведения о www.microsoft.com.
Для просмотра текущего списка корневых серверов следует запустить nslookup и указать тип запроса ns. Если ввести точку (что означает корень дерева), будут возвращены имена и адреса нескольких корневых серверов.
> nslookup
> set type = ns
> .
Server: r2d2.jvnc.net
Address: 128.121.50.2
Non-authoritative answer:
(Root) nameserver = C.ROOT-SERVERS.NET
(Root) nameserver = D.ROOT-SERVERS.NET
(Root) nameserver = E.ROOT-SERVERS.NET
(Root) nameserver = I.ROOT-SERVERS.NET
(Root) nameserver = F.ROOT-SERVERS.NET
(Root) nameserver = G.ROOT-SERVERS.NET
(Root) nameserver = A.ROOT-SERVERS.NET
(Root) nameserver = H.ROOT-SERVERS.NET
(Root) nameserver = B.ROOT-SERVERS.NET
Authoritative answers can be found from:
C.ROOT-SERVERS.NET internet address = 192.33.4.12
D.ROOT-SERVERS.NET internet address = 128.8.10.90
E.ROOT-SERVERS.NET internet address = 192.203.230.10
I.ROOT-SERVERS.NET internet address = 192.36.148.17
F.ROOT-SERVERS.NET internet address = 192.5.5.241
F.ROOT-SERVERS.NET internet address = 39.13.229.241
G.ROOT-SERVERS.NET internet address = 192.112.36.4
A.ROOT-SERVERS.NET internet address = 198.41.0.4
H.ROOT-SERVERS.NET internet address = 128.63.2.53
B.ROOT-SERVERS.NET internet address = 128.9.0.107
>
Корневой сервер обеспечивает прямые ссылки на серверы доменов второго уровня (как microsoft.com или yale.edu), расположенные ниже доменов COM, EDU, GOV и других доменов первого уровня. Примером может служить часть информации о 3com.com. полученная непосредственно из файла корневого списка (во втором столбце приведено значение тайм-аута в секундах, используемое в данном элементе):
3COM.COM. 172800 NS NS.3COM.COM.
NS.3COM.COM. 172800 А 129.213.128.2
3COM.COM. 172800 NS TMC.EDU.
TMC.EDU. 172800 А 128.249.1.1
Отметим, что второй сервер имен 3com не принадлежит сети 3com. Организации часто имеют серверы имен в сетях своих провайдеров или в общеуниверситетских сетях.
Можно получить полную информацию о серверах имен организации, указав в команде nslookup тип запроса ns:
> set type = ns
> 3com.com.
3com.com nameserver = NS.3COM.COM
3com.com nameserver = TMC.EDU
3com.com nameserver = XANTH.CS.ODU.EDU
3com.com nameserver = AEROSPACE.AERO.ORG
3com.com nameserver = ANTARES.AERO.ORG
Authoritative answers can be found from:
NS.3COM.COM inet address = 129.213.128.2
TMC.EDU inet address = 128.249.1.1
XANTH.CS.ODU.EDU inet address = 128.82.4.1
AEROSPACE.AERO.ORG inet address = 130.221.192.10
>
12.9 Делегирование
Комитет InterNIC не обслуживает централизованно все обновляющиеся списки серверов для Австралии, Канады или Швейцарии. Каждая страна несет ответственность за собственную службу регистрации и публикует списки своих серверов доменов на собственном корневом сервере.
Производя просмотр имен серверов по коду страны, база данных InterNIC возвращает список имен и адресов корневых серверов этой страны. Диалог с программой nslookup показывает получение списка корневых серверов Канады:
> ca.
ca nameserver = RELAY.CDNNET.СА
ca nameserver = RSO.INTERNIC.NET
ca nameserver = CLOUSO.CRIM.СА
ca nameserver = SNORT.UTCC.UTORONTO.СА
ca nameserver = NS2.UUNET.CA