Другими словами, корневые серверы являются распределенной и децентрализованной компьютерной системой, но это лишь транспорт, механизм доставки. Корневая зона DNS ими ретранслируется из единого центрального источника. Поэтому расхожее мнение о децентрализованной и никем в одиночку не управляемой DNS, которое часто можно встретить в интернетовских форумах, в корне неверно.
Ключевую роль в системе имен Интернета играют также серверы доменов первого уровня (например, RU), обеспечивающие распространение по всей Сети DNS информации о домене, находящемся в их зоне ответственности.
Все хитрые технологические решения в построении практически работающей DNS направлены на то, чтобы каждый из сотен миллионов разбросанных по всему миру компьютеров, подключенных к Интернету, имел возможность корректного преобразования адресов.
Важно понимать, что все серверы DNS делятся на два типа согласно основной роли, которую они играют. Одни отвечают за хранение и распространение информации о вверенном им домене в глобальной Сети, другиеза поиск информации о том или ином адресе DNS. Иногда обе роли могут быть объединены в одном физическом сервере, но использовать такую конфигурацию не рекомендуется.
Серверы, выполняющие поиск информации в DNS, призваны отвечать на запросы своих клиентов о тех или иных адресах. Ответы они ищут, опрашивая другие серверы DNS. То есть в рамках обеспечения работы сервиса доменных имен различные DNS-серверы обмениваются между собой информацией.
Серверы, опрашивающие DNS в поисках нужных адресов, называются рекурсивными резолверами (от англ. resolveрешать, решение, резолюция), или просто резолверами (также иногда используются термины «сопоставитель» и «рекурсор»).
С точки зрения пользователя и в сильно упрощенном виде алгоритм работы DNS-резолвера по поиску адресов сайтов можно описать следующим образом. Когда пользователь вводит в адресной строке браузера адрес сайта, например hat.nic.ru, компьютер выполняет запрос к тому или иному известному ему DNS-резолверу, спрашивая этот сервер о том, какой IP-адрес связан с «доменным адресом», указанным пользователем. В ответ сервер-резолвер DNS, проверив соответствие по своим внутренним таблицам или выполнив запрос к другим серверам, присылает искомый IP-адрес. Далее браузер устанавливает соединение с сайтом уже по IP-адресу.
По отношению к другим серверам DNS-резолвер выступает клиентом, так как отправляет запросы, на которые они отвечают с теми или иными данными. У резолвера есть и свои клиенты, для них онсервер. Это операционные системы на компьютерах, обслуживаемых данным резолвером. Например, в сети интернет-провайдера обязательно существует резолвер, обслуживающий его клиентов. Традиционно им является сервер, доступный изнутри сети по известному IP-адресу.
В ряде случаев работа DNS-резолвера, пытающегося выяснить IP-адрес, соответствующий заданному имени домена, начинается с запроса к одному из корневых серверов. Корневой сервер, конечно, не знает ответа для каждого из имен, существующих в Интернете, однако он может сообщить клиенту адреса тех серверов, которые располагают информацией об искомом имени, и клиент обратится к следующим серверам с тем же запросом. В этом и состоит рекурсия. Ниже мы разберем процесс подробно.
Попробуем проследить за запросами на простом примере. Предположим, что требуется определить IP-адрес, соответствующий домену www.nic.ru.
Сразу нужно обговорить пару важных моментов. Во первых, резолвер, занимающийся поиском имен, это обычно специальная программа, работающая на том или ином компьютере. Как мы разобрались, резолвер обрабатывает запросы вида «А какой адрес у www.nic. ru?», поступающие от других программ и компьютеров. Резолвер может быть и локальным, то есть работающим на том же компьютере, где, например, запущен браузер. Во-вторых, наиболее важные из резолверов (кэширующие DNS-серверы) обслуживают множество разных запросов и имеют собственный кэш адресов (особую память), в котором в течение определенного времени сохраняются ранее полученные из DNS сведения об адресации внутри доменов. Наличие такого кэшированияважнейшая особенность DNS, делающая эту систему распределенной и устойчивой к большим нагрузкам.
Вернемся к нашему примеру: получив запрос о www. nic.ru резолвер прежде всего проверит свой кэш; если там не удастся найти ответа на вопрос об адресе узла с именем www.nic.ru, то рекурсивный резолвер начнет опрос глобальной DNS с запроса к одному из корневых серверов. Конечно, корневой сервер не знает ответа на вопрос о www.nic.ru, но он сообщит резолверу адреса тех серверов, которые отвечают за доменную зону .ru, благо они содержатся в корневой доменной зоне. Серверы .ru в свою очередь отправят резолвер к серверам, отвечающим за .nic.ru, и те наконец ответят о www.nic.ru, то есть об адресе узла, соответствующего домену третьего уровня www.nic.ru. Вот так рекурсивно работает DNS.
Надо заметить, что сейчас на подавляющем большинстве пользовательских компьютеров используются так называемые глупые (dumb или stub в англоязычной литературе) или, если выразиться более корректно, «простые» резолверы, которые не умеют выполнять сложные рекурсивные DNS-запросы, требующие обхода множества серверов имен. Они целиком полагаются на тот или иной известный им «умный» резолверкэширующий сервер DNS, просто передавая свои запросы ему. Традиционно это сервер интернет-провайдера, обеспечивающего доступ к Сети. В такой конфигурации запросы к корневым серверам, а равно и к серверам, отвечающим за другие доменные зоны, выполняет сервер провайдера, делая за «глупого» всю сложную работу.
Беглое ознакомление с устройством глобальной DNS наводит на следующий вопрос: откуда только что подключенный к Интернету компьютер может узнать адреса корневых серверов? Обычно они задаются в специальных файлах, распространяемых в составе дистрибутивов операционных систем. А компьютер, программное обеспечение которого использует простой, «глупый» ре-золвер, может начать работать с глобальной DNS после того, как получит IP-адрес того или иного DNS-сервера. Этот IP-адрес указывается при начальной настройке операционной системы или при настройке сетевого соединения.
Здесь важно запомнить следующее: адреса корневых серверов требуются для работы полноценного рекурсивного резолвера, такой резолвер предоставляет интернет-провайдер (или другой сервис-провайдер); «глупый» резолвер, являющийся стандартным для большинства пользовательских компьютеров, нуждается в адресе хотя бы одного полноценного рекурсивного резолвера, которому он будет переправлять поступающие запросы.
Существуют автоматические методы настройки адресов DNS для пользовательских компьютеров, подключенных к локальной сети. Их подробное рассмотрение выходит за рамки книги. Ключевой момент тут простой: базовые адреса для работы DNS жестко задаются извне, но при этом никто не может помешать сделать нестандартные настройки, то есть, например, использовать какие-то другие корневые серверы. Именно здесь и коренится основа доменных войн (или так называемых войн DNS, приведших в конце 1990-х годов к серьезным изменениям в политике управления Сетью). Подробнее об этой основе и ее историческом значении рассказывается в главе 3.
Другой особенностью корневых серверов глобальной DNS является то, что изменение их IP-адресов (напомню, что именно по этим адресам компьютеры в Сети находят друг друга) очень большая проблема. Действительно, использовать DNS для первичного поиска адресов корневых серверов не получится, так как именно с обращения к ним начинается работа с самой DNS. Сохраненные в исходных настройках той или иной операционной системы компьютера IP-адреса корневых серверов очень сложно будет поддерживать в актуальном состоянии, если они начнут часто изменяться.
Посудите сами: разнообразных классов/типов/линеек/ версий операционных систем в лучшем случае насчитываются как минимум сотни. Дистрибутивы (наборы файлов, служащие для установки операционной системы на компьютер) также бывают самыми разными и сохраняются в неизменном состоянии годами. Что уж говорить про уже настроенное программное обеспечениеоно также не всегда обновляется, а если и обновляется, то далеко не оперативно. В итоге получается, что изменить IP-адрес корневого сервера не так трудно, но вот отследить и скорректировать все директивные упоминания старого адресазадача чрезвычайной сложности. Если такое произойдет, многие компьютеры продолжат обращаться по старому адресу корневого сервера и не смогут получить ответ. Впрочем, так как серверов несколько, возможна постепенная «миграция» адресов: не сумев установить соединение с одним из корневых серверов, компьютер, пытающийся работать с DNS, соединится с другим корневым сервером, адрес которого не изменялся, и получит возможность определить актуальные адреса всех 13, уже задействовав DNS.
На практике, однако, после изменения IP-адресов некоторых корневых серверов запросы по старым адресам продолжали фиксироваться еще долгие годы после «переезда». Эта особенность только подтверждает факт, что DNS в глобальном плане требует очень непростого управления и весьма чувствительна к изменениям. Одно неловкое движениеи случится неприятность: Интернет для всех рядовых пользователей «погаснет».
С DNS связано множество проблем безопасности, актуальных как для клиентских компьютеров, так и для всей Глобальной сети в целом. Например, особо продвинутые хакеры могут проводить атаки на серверы DNS с целью их перегрузки, вызывающей отказы в обслуживании. Подмена адресов в DNS может приводить к тому, что пользователи, набирающие в адресной строке привычное имя домена, ранее привязанного к одному сайту, будут соединяться с совсем другим сервером, например с сервером злоумышленников, представляющим собой поддельный интернет-магазин, собирающий данные о кредитных картах посетителей.
Проблемы безопасности в DNS в основном связаны с тем, что, когда эта система создавалась в 1980-х годах, Интернет был другимв нем все друг друга знали. Так что во время становления Глобальной сети не задумывались об атаках, оказавшихся возможными теперь. Важную роль сыграл и тот факт, что на базе вычислительных мощностей, типичных для компьютерного коммуникационного оборудования конца 70-х годов прошлого века, просто невозможно было реализовать DNS, защищенную от недобросовестных участников, такая система обошлась бы слишком дорого.
Система DNS активно развивается и, очевидно, продолжит оставаться ключевым элементом Интернета еще долгие годы. Несомненно, сохранится и ее определяющая роль в привычных механизмах адресации.
Сейчас в результате исторического развития к услугам рядового пользователя Глобальной сети имеются три механизма перехода к сетевому ресурсу: можно набрать адрес сайта в адресной строке браузера; можно перейти на тот или иной сайт с помощью поисковой машины, кликнув по ссылке на странице результатов поиска документов в Интернете; можно перейти по ссылке с одного сайта на другой.
На практике в современном Интернете все эти три механизма базируются на DNS и доменных именах.
Меняются технологии публикации информации в Сети, развивается веб, появляются новые средства разработки, позволяющие создавать все более оригинальные сайты. Но пока ни одна из технологий не смогла предложить каких-то новых механизмов адресации, столь же удобных пользователю, как система доменных имен, и способных ее потеснить.
Глава 3Администраторы и реестры
Права и уровни доменов
Доменов в Интернете очень много. Особое значение имеют домены первого уровня, среди которых принято особо выделять домены общего назначения (или, как их иногда называли раньше, домены общего пользования) и национальные. Например, к доменам общего назначения принадлежит самая популярная (по количеству зарегистрированных имен) зона .com с практически ничем не ограниченной регистрацией. В качестве примера национального домена можно назвать RU, выделенный России. Впрочем, в такой сложной и многогранной глобальной виртуальной среде, как Интернет, не следует ожидать жесткого деления доменов по классам. Напротив, это деление временамиочень условное.
Итак, доменэто кусочек виртуального интернет пространства. Любой подобный кусочек ценен, он дорожает вместе с интернет-пространством и может быть в той или иной мере полезен своему хозяину. Важно только правильно понимать, кто в домене хозяин.
Любая хозяйственная деятельность для верного исполнения требует записей и отчетов. Доменыне исключение. Автомобиль, дом или быстроходный катер, как объекты вполне материальные, учитываются с помощью присвоения им номеров и регистрации в соответствующих государственных структурах. С доменами несколько иная ситуация, хотя момент регистрации также играет важную роль.
Так, среди доменов «общего» назначения есть такие, регистрация в которых фактически ограничена по государственной принадлежности регистрирующего доменное имя лица: например, домен первого уровня MIL, который на эксклюзивной основе «оккупировали» государственные военные структуры США.А среди необычных национальных доменов широко известен домен первого уровня SU. В свое время этот домен выделили Советскому Союзу. И вот государства не существует уже более двух десятков лет, а домен остается в строю, иногда даже демонстрируя всплески числа регистрацийнастолько мощным оказалось международное правовое наследие СССР.
Прежде всего нужно разобраться, чем предстает домен с точки зрения компьютеров, обеспечивающих работу Интернета. А он для нихлишь запись в специальной базе данных, не более. Каких-либо других форм существования у домена нет. Это не компакт-диск, не кусок микросхемы. Домены не перевозят трехтонными грузовичками, как персидские ковры. Наверное, максимум физического воплощения домена, которое мог бы придумать лирик, это какое-то множество электромагнитных импульсов, размазанных по кабелям и электронике глобальной Сети.
Тем не менее внесение записи о домене в базу данных приводит к тому, что некоторый кусочек Интернета начинает функционировать по-другому, главноеправильно выбрать базу данных.
Мы уже выяснили, что параметры функционирования домена как единицы системы адресации Интернета задаются соответствующими ему серверами DNS (авторитативными серверами имен, name serversNS). А сами эти серверы, в свою очередь, определяет администратор домена.
Заметьте, что тот, кто способен установить какие-либо серверы имен для домена, полностью контролирует этот домен в техническом смысле. Так, обладающее подобными полномочиями лицо может поменять содержимое сайта, адресуемого доменом (это делается при помощи замены одного сервера, хранящего сайт, на другой), и получить любую электронную почту, поступающую на адреса в этом домене (достаточно заменить почтовые сервера на свои). Такими полномочиями обладает администратор домена.
Администратор доменаглавное лицо в домене. Именно он обладает правами по управлению доменом и определяет, какой сайт или ресурс будет доступен под данным доменом.
Конечно, на практике администратор не обязан владеть техническими навыками управления доменом, ведь он может поручить фактическое выполнение процедур квалифицированным техническим службам. Точно так же владельцу грузового судна не обязательно быть капитаном дальнего плавания: капитана и команду можно нанять. (Главноене ошибиться при выборе капитана, иначе он может увести судно к пиратам. Иногда, впрочем, передать судно пиратам способен и кок, если он является их главарем, но это несколько более редкая история, тем более в доменном бизнесе.)
Как мы рассказывали в предыдущей главе, доменное пространство Интернета обладает иерархической структурой. Соответственно, иерархическую структуру имеет и делегирование полномочий администраторам доменов.
В настоящий момент (на 2014 год) во главе иерархии находится корпорация ICANN. ICANNэто аббревиатура от Internet Corporation for Assigned Names and Numbers, что означает буквально «Интернет-корпорация по распределяемым именам и числам».
Несколько корявое название ICANN для англоязычного человека не выглядит такой уж нелепицей.
А вот с переводом названия на русский язык часто возникали сложности. В итоге сейчас принято переводить ICANN как «Интернет-корпорация по распределяемым именам и числам» (что более близко к англоязычному оригиналу) или как «Организация по присвоению имен и адресов» (что несколько лучше отражает суть деятельности ICANN).
ICANN управляет распределением абсолютно всех адресных ресурсов Интернета. То есть в ведении этой организации находятся не только домены, но и другой вид адресов: IP-адреса, а также разные специальные номера и числа, определяющие использование большого числа протоколов и стандартов в Интернете. Конечно, ICANN не работает с отдельными пользователями Интернета, а задает только генеральную политику развития систем адресации. Например, специальные комиссии ICANN определяют, какие новые домены первого уровня вводить в глобальной Сети. Как мы упоминали ранее, в ведении ICANN находятся «общемировые» корневые серверы DNS, определяющие успешную работу всего Интернета в целом.