26. Система DNS. Записи ресурсов в DNS. Серверы имен. Зоны DNS.

Служба имен доменов DNS(Domain Name System) Хотя программы теоретически могут обращаться к хостам, почтовым ящикам и другим ресурсам по их сетевым адресам

(например, IP), пользователям запоминать их тяжело. Кроме того, отправка электронной почты на адрес Таnуа@128.111.24.41 будет означать, что в случае переезда сервера таниного провайдера или организации на новое место с новым IP-адресом придется изменить ее адрес e-mail. Для отделения имен машин от их адресов было решено использовать текстовые ASCII-имена. Поэтому танин адрес более привычно выглядит в таком виде: Tanya@art.ucsb.edu. Тем не менее, сеть сама по себе понимает только численные адреса, поэтому нужен механизм преобразования ASCII-строк в сетевые адреса. Суть системы DNS заключается в иерархической схеме имен, основанной на доменах, и распределенной базе данных, реализующей эту схему имен. В первую очередь эта система используется для преобразования имен хостов и пунктов назначения электронной почты в IP-адреса, но также может использоваться и в других целях. В общих чертах система DNS применяется следующим образом. Для преобразования имени в IP-адрес прикладная программа обращается к библиотечной процедуре, называющейся распознавателем, передавая ей имя в качестве параметра. Распознаватель посылает UDP-пакет локальному DNS-серверу, который ищет имя в базе данных и возвращает соответствующий IP адрес распознавателю, который, в свою очередь, передает этот адрес вызвавшей его прикладной программе. Имея IP-адрес,

программа может установить TCP-соединение с адресатом или послать ему UDP-пакеты.

 

Записи ресурсов

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

Запись ресурса состоит из пяти частей. Хотя для эффективности они часто перекодируются в двоичную форму, в большинстве описаний записи представляются в виде ASCII-текста, по одной строке на запись ресурса. Мы будем использовать следующий формат:

Domain_name Time_to_live Class Type Value

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

Поле Time_to_live (время жизни) указывает, насколько стабильно состояние записи. Редко меняющимся данным присваивается высокое значение этого поля, например, 86 400 (число

секунд в сутках). Непостоянная информация помечается небольшим значением, например, 60 (1 минута).

Третьим полем каждой записи является поле Class (класс). Для информации Интернета значение этого поля всегда равно IN. Для прочей информации применяются другие коды, однако на практике они встречаются редко.

Поле Туре (тип) означает тип записи:

Запись SOA (Start Of Authority — начальная точка полномочий) сообщает имя первичного источника информации о зоне сервера имен (описанного ниже), адрес электронной почты его администратора, уникальный порядковый номер, различные флаги и тайм-ауты.

Самой важной является запись A (Address — адрес). Она содержит 32-разрядный IP-адрес хоста. У каждого хоста в Интернете должен быть по меньшей мере один IP-адрес, чтобы другие машины могли с ним общаться. На некоторых хостах может быть одновременно установлено несколько сетевых соединений. В этом случае им требуется по одной записи типа А для каждого сетевого соединения (для каждого IP-адреса). DNS можно настроить на циклический перебор этих записей, чтобы в ответ на первый запрос возвращалась первая запись, в ответ на второй запрос — вторая запись и т.д.

Следующей по важности является запись MX. В ней указывается имя хоста, готового принимать почту для указанного домена. Дело в том, что не каждая машина может заниматься приемом почты. Если кто-нибудь хочет послать письмо на адрес, например, bill@microsoft.com, то отправляющему хосту нужно будет вначале найти почтовый сервер на microsoft.com. Запись MX может помочь в этих поисках.

Записи NS содержат информацию о серверах имен. Например, в каждой базе данных DNS содержится NS-запись для каждого домена верхнего уровня, что позволяет пересылать электронную почту на удаленные участки дерева имен.

Записи CNAME позволяют создавать псевдонимы. Представим себе, что человек, знакомый в общих чертах с формированием имен в Интернете, хочет послать сообщение человеку с регистрационным именем paul на отделении компьютерных наук Массачусетского технологического института (M.I.T.). Он может попытаться угадать нужный ему адрес, составив строку paul@cs.mit.edu. Однако этот адрес работать не будет, так как домен отделения компьютерных наук Массачусетского технологического института на самом деле называется lcs.mit.edu. Таким образом, для удобства тех, кто этого не знает, M.I.T. может создать запись CNAME, позволяющую обращаться к нужному домену по обоим именам. Такая запись будет иметь следующий вид:

cs.mit.edu 86400 IN CNAME lcs.mit.edu

Как и CNAME, запись PTR указывает на другое имя. Однако в отличие от записи CNAME, являющейся, по сути, макроопределением, PTR представляет собой регулярный тип данных

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

Запись HINFO позволяет определять тип машины и операционной системы, которой соответствует домен. Наконец, ТХТ-записи позволяют доменам идентифицировать себя произвольным образом. Оба эти типа записей разработаны для удобства пользователей. Ни один из них не является обязательным, поэтому рассчитывать на их наличие не следует, особенно при обработке записей программами (тем более что программы практически невозможно научить обрабатывать эти текстовые данные).

Наконец, последнее поле записи ресурса — это поле Value (значение). Это поле может быть числом, именем домена или текстовой ASCII-строкой. Смысл поля зависит от типа записи.

Серверы имен

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

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

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

Расстановка границ зон целиком зависит от администратора зоны. Это решение основывается на том, сколько серверов имен требуется в той или иной зоне.

 

Hosted by uCoz