Как известно, имена запоминаются проще, чем числа. Многие люди обладают феноменальной способностью запоминать телефонные номера, адреса, денежные суммы и другие числа, но в настоящее время существует слишком много IP-адресов, чтобы можно было запомнить хотя бы их малую часть. По этой причине была разработана методика присваивания имен IP-адресам, основанная на мнемоническом принципе. Например, C|Net было присвоено доменное имя www.cnet.com (обратите внимание на отсутствие вертикальной черты и прописных букв). По сравнению с именем сайта оно выглядит невыразительно, но тем не менее оно работает и прекрасно ассоциируется с именем сайта. C|Net — один из самых больших и посещаемых сайтов в мире.
Система DNS появилась из-за очевидной необходимости в системе, которая бы транслировала символические имена в IP-адреса. В результате трансляции или разрешения доменного имени сайта (например, www.cnet.com) возвращается IP-адрес (204.162.80.181), который используется для обращения к данным. Именно таким образом в ваш браузер доставляется запрашиваемая информация. Процесс требовал создания сети систем, которые назывались серверами DNS (Domain Name Service).
Частью работы по поддержанию системы DNS в Интернете является поддержка первичных (корневых) доменных серверов, к которым остальные серверы DNS обращаются для получения информации о доменах верхнего уровня, зарегистрированных в Интернете. Информация DNS распределяется по большому количеству серверов DNS. Если ваш сервер DNS не может преобразовать доменное имя в IP-адрес, он обращается к другому серверу DNS, который, как предполагается, обладает более полной информацией о преобразуемом имени. Если этот сервер тоже не справляется с преобразованием имени, он может вернуть ссылку на другой сервер DNS, который может знать ответ. Процесс повторяется до тех пор, пока не произойдет тайм-аут. В этом случае исходному узлу возвращается признак ошибки и выводится соответствующее сообщение (если такая возможность поддерживается клиентом). Если поиски web-сайта завершаются неудачей, браузер выводит сообщение о том, что сайт найти не удалось или произошла ошибка DNS.
Ссылочный механизм, описанный выше, обычно используется серверами DNS при обращении с запросами к другим серверам DNS. Подобный тип запроса DNS называется итеративным. Резольвер DNS (другое название клиента DNS) находится на узле, выдавшем запрос DNS. Резольвер не генерирует итеративные запросы, вместо этого он выдает запрос другого типа — так называемый рекурсивный запрос. Узел, отправивший рекурсивный запрос серверу DNS, ожидает, что последний вернет окончательный ответ или информацию о том, что имя разрешить не удалось. Получив рекурсивный запрос, сервер DNS не возвращает ссылку на другой сервер DNS; он должен самостоятельно сгенерировать итеративные запросы для получения окончательного ответа.
Система DNS начинается с корневых серверов DNS верхнего уровня, далее информация об именах и IP-адресах распространяется по серверам DNS, расположенным по всему миру. Иерархическое строение системы, непосредственно обусловленное ее организационной структурой, наглядно демонстрирует простой пример — отсутствие локальной информации о преобразовании на сервере DNS. Если сервер не может найти нужный IP-адрес в собственной базе данных, он обращается к другому серверу DNS; это продолжается до тех пор, пока информация не будет найдена или не произойдет тайм-аут. В следующем разделе приводится более подробное описание структуры DNS, поскольку иерархическое строение системы имеет другой, очень важный аспект.

Иерархическое строение DNS

В исходном документе RFC 819, опубликованном в 1982 году, Зав-Синг Су (Zaw-Sing Su) и Джон Постел (Jon Postel) изложили основные планы и концепции DNS. Ниже приведен фрагмент, который дает представление об уровне изложения.

«...Совокупность доменов формирует иерархию. Используя представление из теории графов, эту иерархию можно смоделировать в виде направленного графа. Направленный граф представляет собой набор узлов и ребер, при этом ребра определяются упорядоченными парами узлов [1]. Каждый узел графа представляет домен. Упорядоченная пара (В, А), то есть ребро, следующее от В к А, означает, что В является субдоменом А, а В является простым именем, уникальным в А*.

Понять такой текст непросто, поэтому мы воспользуемся более простым объяснением. Основной принцип прост: имеется некий домен верхнего уровня — например, com или edu. Домены com и edu находятся на верхнем уровне и не имеют вышестоящих доменов. Впрочем, существует одно исключение: на самом деле после com должна стоять точка (com.). Она обозначает домен еще более высокого уровня, чем com, который называется корневым доменом. Домены верхнего уровня (такие, как com, edu и org) называются универсальным множеством имен, потому что они содержат домены и субдомены, расположенные на более низких уровнях иерархии.

После верхнего уровня следуют промежуточные домены, или домены второго уровня. В качестве примеров промежуточных доменов можно привести домены coke.com, whitehouse.gov и disney.com. Эти домены также могут регистрироваться, но обычно это делается только для того, чтобы зарезервировать целый диапазон логически связанных доменных имен. На практике чаще встречается регистрация субдоменов, или конечных (endpoint) доменов, как их называли Су и Постел. Примеры — www.coke.com, www.whitehouse.gov и www.disney.com. Разумеется, все эти домены типичны для регистрационной системы InterNIC. В других системах, находящихся за пределами Соединенных Штатов, используются различные схемы обозначения направленности и страны, к которой относится домен. Например, имя www.bbc.co.uk указывает на то, что сайт ВВС имеет коммерческую направленность (со, аналог com) и находится в Соединенном Королевстве (uk).

Имена субдоменов выбираются почти произвольно. Примеры — www.netscape. com, home.netscape.com, wwwl.netscape.com. Они могут находиться в разных местах Интернета и содержать разную информацию. Конечно, если web-мастер сочтет нужным, несколько имен могут ссылаться на один сайт и одну страницу. Именно так обстоит дело с сайтом Netscape; к нему можно обратиться по любому из перечисленных URL.

Исходная иерархия доменов

 

 

U – универсальноемножествоимен;
I – промежуточныйдомен;
E – конечныйдомен.

Рис. 1. Исходная иерархия доменов


ПРИМЕЧАНИЕ
Другой пример: Webopædia также решила зарегистрировать субдомен webopedia.com, поскольку у многих пользователей возникали проблемы с дифтонгом æ.

Делегирование полномочий

Устройство системы DNS позволяет серверам, подчиненным по отношению к корневым серверам имен, контролировать заданный домен. Хорошим примером является локальный поставщик услуг Интернета, который обеспечивает хостинг web-сайтов для отдельных лиц и организаций. Когда некая организация X регистрирует в InterNIC свое доменное имя (www.companyx.com), она включает в заявку первичный и вторичный серверы DNS своего поставщика. InterNIC заносит эту информацию на свой корневой сервер .com и обеспечивает ее дальнейшее распространение.

ПРИМЕЧАНИЕ
Серверы DNS периодически синхронизируют свои локальные базы данных с базами данных других серверов DNS и проверяют, не появились ли новые записи на корневых серверах. Этот процесс называется распространением (propagation). Регистрация доменных имен требует некоторого времени, но зарегистрированное имя распространяется в Интернете в течение примерно трех-четырех дней и становится доступным во всем мире.

Чтобы эта система нормально работала, возникла потребность в средствах определения местонахождения компьютера в сети. Из этой потребности стала развиваться иерархия систем и механизмы классификации компьютеров по выполняемым функциям. Например, если компьютер находится в учебном заведении, он принадлежит к домену верхнего уровня .edu. Сайты коммерческой направленности принадлежат к домену верхнего уровня .com и т. д. Данная концепция формирует основу логической иерархии DNS, но не определяет структуру корневых серверов имен (вскоре мы вернемся к этой теме).