5.1.2. Доменная система имен
Доменная система имен
Человеку запомнить числовой адрес нелегко, поэтому для удобства пользователей Интернета была введена доменная система имен. Доменная система имен ставит в соответствие IP-адресу некоторое уникальное доменное имя.
Каждый компьютер, подключенный к Интернету, имеет IP-адрес, однако он может не иметь доменного имени. Доменные имена имеют серверы Интернета, но обычно не имеют компьютеры, подключающиеся к Интернету периодически.
Единицей именования в этой среде является домен — именованное объединение узлов в дереве DNS.
Доменная система имен имеет иерархическую структуру: корень — домены верхнего уровня — домены второго уровня — домены третьего уровня.
Доменное имя сервера Интернета состоит из последовательности (справа налево) имен домена верхнего уровня, домена второго уровня и собственно имени компьютера. Так, основной сервер компании Microsoft имеет имя www.microsoft.com, а сервер Московского института открытого образования имеет имя www.mioo.ru.
Домены верхнего уровня бывают двух типов: географические и административные. Каждой стране мира выделен свой географический домен, обозначаемый двухбуквенным кодом. Например, России принадлежит географический домен ru, в котором российские организации и граждане имеют право зарегистрировать домен второго уровня.
База данных «Доменная система имен» основана на иерархической модели данных. На верхнем уровне находится реляционная база данных, содержащая перечень доменов верхнего уровня (всего 269 доменов), из которых 12 — административные, а остальные 257 — географические. Наиболее многочисленным доменом (данные на январь 2008 г.) является административный домен net (около 190 миллионов имен), а в некоторых доменах (например, в географическом домене zr) до сих пор не зарегистрировано ни одного сервера.
На втором уровне (в доменах первого уровня) регистрируются домены организаций или групп людей.
На третьем уровне чаще всего перечисляются имена отдельных узлов. Самым популярным оказывается имя www.
База данных «Доменная система имен» является распределенной — ее составные части находятся на разных DNS-серверах. Поиск информации в такой иерархической распределенной базе данных ведется следующим образом. Например, мы хотим ознакомиться с содержанием WWW-сервера фирмы Microsoft.
Сначала наш запрос, содержащий доменное имя сервера www.microsoft.com, будет отправлен на DNS-сервер нашего провайдера, который переадресует его на DNS-сервер самого верхнего уровня базы данных. Будет найден интересующий нас домен сот, и запрос будет адресован на DNS-сервер второго уровня, который содержит перечень доменов второго уровня, зарегистрированных в домене сот.
На DNS-сервере, хранящем записи второго уровня, будет найден домен microsoft, и при необходимости запрос будет переадресован на DNS-сервер третьего уровня. Поскольку имя www запрашивается часто, то, скорее всего, оно будет найдено сразу. Поиск информации в базе данных «Доменная система имен» будет завершен и начнется поиск компьютера в сети по его IР-адресу.
Следующая страница Контрольные вопросы
Cкачать материалы урока
Файлы зоны
Мы уже упоминали в перечисленных выше процессах «файлы зоны» и «записи».
Файлы зоны это способ, с помощью которого DNS-сервер хранит информацию о доменах, которые он знает. Каждый домен, информация о котором есть у DNS-сервера, хранится в файле зоны. Если DNS-сервер настроен для работы c рекурсивные запросами, как публичный DNS-сервер, он найдет ответ и предоставит его. В противном случае он укажет пользователю, где искать дальше. Чем больше у сервера файлов зоны, тем больше ответов на запросы он сможет предоставить.
Файл зоны описывает DNS «зону», которая, по существу, является подмножеством всей системы DNS. Как правило, она используется для настройки только одного домена. Она может содержать некоторое количество записей, которые указывают, где находятся ресурсы для запрашиваемого домена.
Параметр зоны $ORIGIN эквивалентен высшему уровню полномочий в зоне по умолчанию.
Таким образом, если файл зоны используется для настройки домена «example.com.», то параметр $ORIGIN также будет установлен для этого домена.
Это настраивается на верхнем уровне файла зоны или может быть указано в настройках файла DNS-сервера, который ссылается на файл зоны. В любом случае этот параметр описывает то, за что зона будет ответственна.
Точно так же $TTL настраивает «время жизни» информации, которую он предоставляет. По сути, это таймер. Кэширующий DNS-сервер может использовать ранее запрошенные результаты для ответа на вопросы, пока заданное значение TTL не истечет.
DNS-резолвер
Это компьютеры, которые провайдеры используют для поиска в их базе данных конкретного узла, запрашиваемого пользователем. Когда данные получены, пользователь перенаправляется на соответствующий IP-адрес. Резолверы играют крайне важную роль в DNS.
DNS-резолвер кэширует информацию. К примеру, сайт расположен на машине с IP-адресом . Поэтому кэши резолверов со всего мира будут содержать следующее соответствие: →.
Считается, что в будущем сайт может переместиться на любой другой хост с другим IP, скажем, . Кэши DNS-резолверов по всему миру некоторое время будут хранить прежний IP-адрес. Это может привести к недоступности сайта, пока изменения не дойдут до всех DNS.
Его можно установить в панели управления сервиса, на котором приобретался домен.
Типы DNS-запросов
Существует 3 типа DNS-запросов:
- Рекурсивный: подобные запросы выполняют пользователи к резолверу. Собственно, это первый запрос, который выполняется в процессе DNS-поиска. Резолвером чаще всего выступает ваш интернет провайдер или сетевой администратор.
- Нерекурсивные: в нерекурсивных запросах резолвер сразу возвращает ответ без каких-либо дополнительных запросов на другие сервера имён. Это случается, если в локальном DNS-сервере закэширован необходимый IP-адрес либо если запросы поступают напрямую на авторитативные серверы, что позволяет избежать рекурсивных запросов.
- Итеративный: итеративные запросы выполняются, когда резолвер не может вернуть ответ, потому что он не закэширован. Поэтому он выполняет запрос на корневой DNS-сервер. А тот уже знает, где найти фактический TLD-сервер.
К примеру, если вы пытаетесь получить IP-адрес medium.com, то корневой доменный сервер выдаст адрес TLD-сервера для . Этот адрес корневой сервер вернёт резолверу. После этого резолвер опросит TLD-сервер. TLD-сервер может не знать нужный IP-адрес, зато он может дать адрес авторитативного DNS-сервера для .
Попробуем рассмотреть этот процесс на рисунке:
Разберём рисунок выше:
- Пользователь выполняет запрос к резолверу для поиска IP-адреса. Это рекурсивный запрос.
- Резолвер по возможности просматривает свой кэш на наличие необходимого IP-адреса.
- Если у резолвера есть необходимый IP-адрес, то он возвращает его.
- В противном случае резолвер выполняет итеративный запрос на корневой DNS-сервер. Корневой DNS-сервер ищет нужный TLD для запрашиваемого адреса. К примеру, если хост — , то TLD — . Корневой DNS-сервер находит адрес .com-домена и возвращает ответ резолверу.
- Теперь резолвер выполняет итеративный запрос на TLD-сервер, чтобы получить необходимый IP-адрес. TLD-сервер возвращает адрес авторитативного сервера для запрашиваемого хоста.
- Авторитативный сервер хранит фактические записи сопоставления имени хоста с IP-адресом, который возвращается резолверу (тот, в свою очередь, возвращает его пользователю).
- Если на авторитативном сервере нужной записи не существует, то возвращается ошибка «».
- Для всех серверов, через которые проходит запрос, результат кэшируется, и в случае повторного запроса результат уже будет на сервере.
- В среднем для DNS-поиска потребуется около 4 запросов, но время этого поиска будет составлять всего несколько миллисекунд.