База знаний по Open Source
Авторизация
Поиск по базе знаний

Продолжение. Начало – “Основные сведения о DNS. Введение.

Сервис системы доменных имен строится по стандартной для информационных технологий схеме “клиент-сервер”. В качестве клиентской части выступает прикладной процесс, который запрашивает информацию о соответствии имени адресу (или наоборот адреса имени). Это программное обеспечение и называют resolver.

В качестве сервера выступает специализированная программа-сервер DNS. Распределенное хранение таблиц базы данных соответствия доменных имен IP-адресам, поиск по этой распределенной базе данных и формирование ответа осуществляется именно DNS серверами.

В этой связи в системе доменных имен Интернет существует понятие – “зона”. Зоной (zone) называется часть пространства имен DNS, за управление которой отвечает определенный сервер или группа серверов DNS. Она является в DNS основным механизмом для делегирования полномочий и применяется для установки границ, в пределах которых определенному серверу разрешено выполнять запросы. Любой сервер, который обслуживает какую-то определенную зону, считается полномочным или ответственным за эту зону.

Зона – это “зона ответственности” конкретного сервера доменных имен, т.е. понятие домена шире, чем понятие зоны. Если домен разбивается на поддомены, то у каждого из них может появиться свой сервер, отвечающий за свою зону – в данном случае поддомен и поддомены более высокого уровня.

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

При заказе своего доменного имени mysite.ru можно делегировать управление им серверам регистратора (благо, что практически все регистраторы предоставляют такую услугу бесплатно), можно поднять свой собственный DNS сервер и делегировать управление доменным именем ему (только поднимать нужно не один, а 2 сервера и на разных физических серверах, о чем говорят регулирующие документы Интернет) или использовать сторонние DNS сервера (например yandex или mail.ru, которые предоставляют свои DNS сервера бесплатно).

У регистратора нужно только прописать ссылку на эти сервера. То-есть при настройке сервера, в его файлах конфигурации можно непосредственно прописать адреса серверов зон. В этом случае обращения к корневому серверу не производятся, т.к. местный сервер сам знает адреса удаленных серверов зон, которым он же и делегировал права управления этими зонами.

Корневые серверы DNS — DNS-серверы, содержащие информацию о доменах верхнего уровня (TLD), указывающую на DNS-серверы, поддерживающие работу каждого из этих доменов.

Основные корневые серверы DNS размещены в домене root-servers.org и обозначаются латинскими буквами от A до М, IP-адреса которых широко известны. Они управляются различными организациями, действующими по согласованию с ICANN.

Из-за существовавших в прошлом ограничений на размеры DNS-пакета (512 байт) в DNS-ответ могло быть помещено всего 13 серверов (от A до M — тринадцатой буквы в алфавите), сейчас за этими 13 именами стоят более 200 серверов. В частности, российское зеркало сервера F расположено в РосНИИРОС в Москве, сервера K — в Новосибирске, а сервера L — в Ростове-на-Дону.

Ближайший (к пользователю) адрес «зеркала» корневого сервера выбирается автоматически благодаря IP AnyCast. Так, при обращении к K.root-servers.net пользователь из Новосибирска скорее всего обратится к новосибирскому серверу (в NSK-IX).

В качестве серверов доменных имен чаще всего используются различные версии BIND (Berkeley Internet Name Domain). Если сервер реализован на платформе Windows, то тогда используют решение от Microsoft, хотя для этой платформы также существуют версии BIND.

В качестве клиентской части выступает прикладной процесс, который запрашивает информацию о соответствии имени адресу (или наоборот адреса имени). Это программное обеспечение и называют resolver.

Иногда, resolver не является отдельным сервисом или системной компонентой. Это набор процедур из библиотеки прикладного программного обеспечения (например, из библиотеки libc), которые позволяют программе, отредактированной с ними, выполнять запросы к системе доменных имен и получать ответы на них. Эти процедуры обращаются к серверу доменных имен и, таким образом, обслуживает запросы прикладных программ пользователя.

В некоторых операционных системах resolver (или его часть, отвечающая за кэширование запросов) является отдельным процессом, и прикладные программы через него реализуют взаимодействие с DNS.

Самостоятельный resolver может быть собран и в BIND версии 9. Это так называемый lightweight resolver. Он состоит из resolver-демона и библиотеки взаимодействия с этим демоном, процедуры которой линкуются с прикладным ПО. Данный resolver позволяет не только посылать запросы к серверу доменных имен, но кэшировать соответствия между доменным именем и IP-адресом.