logo

10.2.Отображение символьных адресов на ip-адреса: служба dns

DNS (Domain Name System) - это распределенная база данных, поддерживающая иерархическую систему имен для идентификации узлов в сети Internet. Служба DNS предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Спецификация DNS определяется стандартами RFC 1034 и 1035. DNS требует статической конфигурации своих таблиц, отображающих имена компьютеров в IP-адрес.

Протокол DNS является служебным протоколом прикладного уровня. Этот протокол несимметричен - в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес.

Если данные о запрошенном соответствии хранятся в базе данного DNS-сервера, то он сразу посылает ответ клиенту, если же нет - то он посылает запрос DNS-серверу другого домена, который может сам обработать запрос, либо передать его другому DNS-серверу. Все DNS-серверы соединены иерархически, в соответствии с иерархией доменов сети Internet. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения. Этот процесс ускоряется из-за того, что серверы имен постоянно кэшируют информацию, предоставляемую по запросам. Клиентские компьютеры могут использовать в своей работе IP-адреса нескольких DNS-серверов, для повышения надежности своей работы.

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

Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны. Имена этих доменов должны следовать международному стандарту ISO 3167. Для обозначения стран используются двухбуквенные аббревиатуры (уже упоминалось выше), а для различных типов организаций используются следующие аббревиатуры:

com - коммерческие организации (например, microsoft.com);

edu - образовательные (например, mit.edu);

gov - правительственные организации (например, nsf.gov);

org - некоммерческие организации (например, fidonet.org);

net - коммерческие сети или узлы Internet (например, nsf.net);

biz – организации, занимающиеся бизнесом;

info – информационные сайты.

Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN ), которое включает имена всех доменов по направлению от хоста к корню. Пример полного DNS-имени : citint.dol.ru. Корневой домен Internet управляется несколькими организациями, в частности Network Solutions, Inc.

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

Дерево доменных имен аналогично файловой системе Unix. Корнем дерева является домен "." (точка). Полное - абсолютное или полностью определенное имя FQDN заканчивается точкой, обозначающей корень доменного дерева, но часто эта завершающая точка опускается. Доменами верхнего (первого) уровня выступают двухбуквенные национальные домены или трехбуквенные домены com, edu, org, net, gov, int, mil (см. рис 27). Укрупнено структура службы доменных имён приведена на рис.27.

Рис.27. Структура службы доменных имён.

На приведенной схеме верхний (первый) уровень обозначен I, второй уровень – II. Каждому объекту трех верхних уровней соответствуют серверы имен, которые могут взаимодействовать друг с другом при решении задачи преобразования имени в IP-адрес. Каждый сервер содержит лишь часть дерева имен. Эта часть называется зоной ответственности сервера. DNS - сервер может делегировать ответственность за часть зоны другим серверам, создавая субзоны. Когда в зоне появляется новая ЭВМ или субдомен, администратор зоны записывает ее имя и IP-адреса в базу данных сервера. Администратор зоны определяет, какой из DNS - серверов имен является для данной зоны первичным. Число вторичных серверов не лимитировано. Первичный и вторичный серверы должны быть независимыми и работать на разных ЭВМ так, чтобы отказ одного из серверов не выводил из строя систему в целом. Отличие первичного сервера имен от вторичного заключается в том, что первичный загружает информацию о зоне из файлов на диске, а вторичный получает ее от первичного сервера. Администратор вносит любые изменения в соответствующие файлы первичного сервера, а вторичные серверы получают эту информацию, периодически запрашивая первичный сервер. Пересылка информации из первичного во вторичные серверы имен называется зонным обменом.

Список корневых серверов можно получить по протоколу FTP по адресам: nic.ddn.mil или ftp.rs.internic.net. Серверы первого уровня хранят информацию об именах и адресах всех серверов доменов второго уровня.

Преобразования "доменное имя в IP адрес" ("прямое") выполняются службой DNS путем поиска в доменном дереве нужного имени и извлечения связанной с этим именем информации требуемого типа (IP-адрес). Существует также обратное DNS-преобразование "IP адрес в доменное имя".

Конфигурирование клиента DNS. При конфигурировании на хосте стека TCP/IP, кроме указания IP-адреса хоста, создания таблицы маршрутов (в простейшем случае- указания IP-адреса шлюза, т.е. строки default в таблице маршрутов), обычно конфигурируется и клиент DNS. Задача клиента- взаимодействие с DNS-сервером, который будет, по запросу клиента, выполнять описанные выше преобразования. При ручном конфигурировании DNS-клиента указываются:

имя хоста,

домен, в котором находится данный хост,

IP-адрес сервера DNS, обслуживающего этот домен.

Получение всех этих данных возможно автоматически - в случае конфигурирования стека TCP/IP с помощью DHCP-сервера.

Если DNS-сервер не может выдать ответ на поступивший запрос (т.е. необходимые данные отсутствуют в его базе и кэше предыдущих запросов), он обращается к одному из корневых серверов (root servers). Сервер после передачи полученных данных клиенту кэширует их для дальнейшего возможного использования. Также кэшируются и все дополнительные данные, полученные в процессе обработки запроса. Последние версии программного обеспечения также могут кэшировать и отрицательные результаты поиска.

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

Файл зоны. Файл зоны содержит стандартные записи ресурсов базы данных DNS для преобразования доменных имен хостов в данной зоне в IP-адреса. Файлы баз данных DNS состоят из стандартных записей ресурсов. В общем виде стандартная запись ресурса связывает данные определенного типа с некоторым именем и формируется по шаблону:

имя [время_жизни_записи] IN тип_записи данные

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

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

Типы стандартных записей ресурсов. SOA (Start Of Authority). Первая запись в файле. Заголовок зоны, включает ссылку на основной DNS – сервер домена.

Имя: полностью уточненное доменное имя зоны, данные которой содержатся в файле. Полностью уточненное доменное имя оканчивается на точку, далее все доменные имена предполагаются полностью уточненными, если явно не указано иное. Вместо явного указанного доменного имени может стоять символ @, в этом случае имя зоны будет взято из раздела (строки) конфигурационного файла, соответствующего данному файлу зоны.

Данные: доменное имя сервера, email администратора DNS (символ @ заменяется на точку), далее в скобках:

серийный номер версии данных (выбор номера произволен, но номер должен увеличиваться для каждой новой модификации);

период запроса на обновление данных со стороны вторичного сервера (в секундах);

период повтора попыток запроса данных вторичным сервером в случае неудачи (в секундах);

срок годности данных, т.е. время, через которое вторичный сервер прекратит обслуживать запросы, если ему не удастся восстановить связь с первичным сервером (в секундах);

время жизни данных зоны в кэше запросившего их сервера (в секундах).

NS (Name Server). Указание сервера DNS.

Имя: имя домена.

Данные: доменное имя сервера, обслуживающего данный домен. Указываются как первичные, так и вторичные сервера. Пример:

vvsu.ru. IN NS maria.vvsu.ru.

IN NS ints.vtc.ru.

MX (Mail Exchanger). Назначение обработчика почты.

Имя: доменное имя (имя хоста, имя домена зоны или любое доменное имя, входящее в обслуживаемую зону).

Данные: приоритет (число) и доменное имя хоста, на который должна отправляться почта, адресованная с указанным доменным именем.

A (Address). Определение IP-адреса.

Имя: имя хоста. Если имя не является полностью уточненным (на конце нет точки), то к нему присоединяется доменное имя зоны.

Данные: IP-адрес.

Пример:

gw IN A 212.17.195.1

maria IN A 212.17.195.98

wildcat IN A 212.17.195.4

Т.к. имена не полностью уточненные, то к ним добавляется имя зоны vvsu.ru, т.е. эти записи эквивалентны следующим:

gw.vvsu.ru. IN A 212.17.195.1

и т.д.

CNAME (Canonical Name). Определение псевдонимов.

Имя: псевдоним (alias) хоста- доменное имя (может быть не полностью уточненное).

Данные: каноническое (настоящее) доменное имя хоста (во всех вышеперечисленных записях используется только каноническое имя).

Пример

www IN CNAME wildcat.vvsu.ru.

означает, что www.vvsu.ru- на самом деле wildcat.vvsu.ru. При переносе WWW-сервера на другой компьютер (например, maria) достаточно будет изменить только одну строку в файле зоны, чтобы все существующие ссылки на этот сервер работали правильно:

www IN CNAME maria.vvsu.ru.

Установка DNS. В системе WINDOWS 2000 Server (2003 Server) выбрать на панели управления – УСТАНОВКА И УДАЛЕНИЕ ПРОГРАММ – СЕТЕВЫЕ СЛУЖБЫ IIS – СОСТАВ – DNS.

В данном разделе приведена подробная информация о функционировании DNS – сервера, поскольку на практических занятиях по курсу "Вычислительные системы, сети и телекоммуникации" отрабатывается ручная установка службы DNS с дальнейшим тестированием её функционирования с помощью утилиты Nslookup.

Первичные и вторичные серверы DNS. За каждую зону DNS отвечает не менее двух серверов. Один из них является первичным, primary, остальные - вторичными, secondary. Первичный сервер содержит оригинальные файлы с базой данных DNS для своей зоны. Вторичные серверы получают эти данные по сети от первичного сервера и периодически запрашивают первичный сервер на предмет обновления данных. В случае, если данные на первичном сервере обновлены, вторичный сервер запрашивает "передачу зоны" ("zone transfer")- т.е. базы данных требуемой зоны. Передача зоны происходит с помощью протокола TCP (в отличие от запросов, которые направляются на UDP/53).

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

Примечание. Вторичный сервер необязательно получает данные непосредственно с первичного сервера; источником данных может служить и другой вторичный сервер. В любом случае сервер-источник данных для данного вторичного сервера называется "главным" ("master").

Итак, первичный - сервер, содержащий полную информацию о зоне. Вторичный - сервер, содержащий копию полной информации о зоне, полученную с первичного сервера. Кэширующий - содержит записи, которые уже были запрошены

Программа (утилита) NSLOOKUP. Программа позволяет произвести DNS-преобразования в явном виде. Служит для диагностики DNS – серверов. Может использоваться из командной строки в формате NSLOOKUP. Например, просмотрим все сервера имён домена microsoft.com. Вводим через команду ПУСК - ВЫПОЛНИТЬ – cmd команду:

nslookup -type=ns microsoft.com

Результат выполнения команды:

Server: msuvx1.memphis.edu

Address: 141.225.1.2

Non-authoritative answer:

MICROSOFT.COM nameserver = DNS3.NWNET.NET

MICROSOFT.COM nameserver = DNS4.NWNET.NET

MICROSOFT.COM nameserver = ATBD.MICROSOFT.COM

MICROSOFT.COM nameserver = DNS1.MICROSOFT.COM

DNS3.NWNET.NET internet address = 192.220.250.7

DNS4.NWNET.NET internet address = 192.220.251.7

ATBD.MICROSOFT.COM internet address = 131.107.1.7

DNS1.MICROSOFT.COM internet address = 131.107.1.7

DNS1.MICROSOFT.COM internet address = 131.107.1.240

В этом примере использован ключ -type=ns, так как был необходим лишь список DNS-серверов. Выданы имена серверов доменных имён и их IP - адреса.

Утилита может использоваться в интерактивном режиме, перенаправляя запросы другим серверам. Для получения информации о параметрах утилиты следует ввести её имя со знаком "?":

nslookup /?