Архитектура распределенной базы данных, заложенная в основу DNS, обладает большими возможностями. Как упоминалось выше, полномочия делегируются другим серверам, местонахождение которых лучше подходит для обработки трафика некоторого домена или субдомена. Распространение информации по серверам происходит по хорошо продуманному плану.

Каждому домену назначается владелец. Информация о владельце определяется как часть доменных данных SOA (Start of Authority), которые будут более подробно рассмотрены ниже. Домен верхнего уровня — например, com. — делегирует полномочия контроллера для некоторого доменного имени (скажем, disney.com) серверам DNS, указанным в качестве первичных. Тем самым контроллер домена верхнего уровня освобождается от необходимости обрабатывать каждый запрос DNS в Интернете.

После того как с контроллером домена будут связаны данные SOA, он сможет делегировать полномочия контроллера для субдоменов другим серверам DNS и т. д. По этому принципу организуется делегирование полномочий в иерархии серверов DNS от верхнего уровня до нижнего.

Домены и зоны

Домены и зоны часто работают вместе, но между ними существует тонкое различие. Зоной (zone) называется первичный домен универсального множества имен, делегированный другому серверу DNS для административных целей. Например, Disney.com — это зона, а www.disney.com — хост, находящийся в этой зоне. Зона может состоять из одного домена или нескольких субдоменов. Например, студия Диснея может создать субдомены с именами east-coast.Disney.com и west-coast. Disney.com. В случае делегирования эти субдомены образуют отдельные зоны с именами east-coast.Disney.com и west-coast.Disney.com, которые будут иметь собственные серверы DNS. Без делегирования эти субдомены останутся частью зоны Disney.com и будут обслуживаться серверами DNS сервера Disney.com.
Административные обязанности делегируются первичному серверу DNS. Первичный сервер DNS сайта Диснея, huey.disney.com, имеет IP-адрес 204.128.192.10. Поскольку Huey назначается первичным сервером DNS для домена Disney, он также является первичным сервером DNS для зоны Disney.com. Назначенный владелец этого сервера имеет адрес root@huey.disney.com, который хранится в SO A в виде root.huey.disney.com.

ПРИМЕЧАНИЕ
Учтите, что в правильно отформатированных данных SOA символ @ в адресе электронной почты администратора заменяется точкой. В некоторых компаниях используются адреса электронной почты, в которых перед @ стоит дополнительный разделитель. В этом случае возникнут проблемы, потому что адрес вида host.admin@example.com будет храниться в SOA в виде host.admin. example.com. Любая система, пытающаяся преобразовать этот адрес, интерпретирует его в виде host@admin.example.com, что приводит к ошибке DNS (если ошибочно интерпретированный адрес не существует).

Домены верхнего уровня в Интернете

Существует несколько доменов верхнего уровня, из которых наибольшей известностью пользуются домены COM, EDU, GOV, MIL, NET и ORG. Тем не менее существует множество других доменов, большинство из них находится в других странах. Каждой стране присвоен домен верхнего уровня, имя которого состоит из двух букв. Так, Великобритании присвоен домен UK (на самом деле официальный домен верхнего уровня этой страны называется GB, но это имя используется редко); Новой Зеландии — домен NZ, Японии — JP и т. д. Пример использования национального домена верхнего уровня приводился выше — www.bbc.co.uk.
ПРИМЕЧАНИЕ    
В адресах, находящихся за пределами США, используются и другие домены. Так, домен СО, означающий коммерческую направленность, является близким аналогом домена InterNIC COM.
ВНИМАНИЕ    
Ничто не мешает регистрировать домены в других странах, даже если сервер находится вдали от страны, указанной в URL.

Выбор сервера имен

Серверы имен существуют на многих платформах, включая Windows NT/2000/ ХР, Unix, NetWare, Macintosh и т. д. В Windows NT/2000 имеется готовая реализация сервера DNS. Для Apple существует бесплатный сервер DNS, который называется MacDNS. В системах семейства Unix присутствует широко распространенный и надежный сервер BIND. Тем не менее существует ряд мощных серверов DNS, разработанных независимыми фирмами.
Оценку различных серверов DNS можно найти на таких сайтах, как Dave Central (www.davecentral.com) и Tucows (www.tucows.com, также существует ряд местных филиалов). Эти сайты рецензируют практически все программное обеспечение, проходящее через них, и дают хорошее представление о различных реализациях.

Процесс разрешения имен

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

Рекурсивные запросы

Наиболее типичными являются рекурсивные запросы. Если запрос поступает на сервер и в кэше сервера обнаруживается запись А (см. ниже), поиск на этом останавливается. В противном случае сервер должен обратиться с запросом к другому серверу, то есть передать запрос на более высокий уровень. При этом также учитывается значение TTL (срока жизни) запроса. Если поиск записи А занимает слишком много времени, запрос «умирает», а исходный сервер DNS возвращает ошибку «address not found».

Итеративные запросы

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

Кэширование

По мере выполнения своих текущих задач сервер DNS собирает информацию и сохраняет ее в виде ресурсных записей (RR, Resource Records), содержащих сведения о запрашиваемых URL. При этом также учитывается значение TTL. Сервер кэширует столько информации, сколько ему разрешено кэшировать, и хранит ее, пока информация остается действительной.

Запросы на обратное разрешение

Типичный «прямой» запрос пытается найти IP-адрес по известному URL. При обратном разрешении решается противоположная задача — поиск URL по известному IP-адресу. В настоящее время существует несколько утилит, выполняющих поиск подобного рода. Для системы Windows лучшей программой такого рода является CyberK.it Люка Ниенса (Luc Niejens) — бесплатная сетевая утилита, которую можно загрузить по адресу www.ping.be/cyberkit.

Безопасность DNS

Клиенты могут производить безопасное обновление данных на динамическом сервере DNS, чтобы их записи автоматически обновлялись без участия администратора.

Делегированные домены

Механизм делегирования снимает основную ответственность за администрирование домена и передает ее от основного сервера другому, подчиненному. ICANN осуществляет административный контроль над .com и делегирует права по администрированию всех доменов следующего уровня их соответствующим доменам. На практике большинство сайтов работает на базе хостинга, то есть серверное пространство арендуется внешним пользователем, и владельцу сайта не приходится следить за оборудованием — этим занимается техническая служба хостинга. Для сайтов, работающих на базе хостинга, контроль над доменами часто поручается администратору сервера DNS. Впрочем, вы также можете воспользоваться бесплатными серверами DNS.