DNS

Служба имен доменов DNS

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

Когда-то давно в сети ARPANET соответствие между текстовыми и двоичны­ми адресами просто записывалось в файле hosts.txt , в котором перечислялись все хосты и их IP-адреса. Каждую ночь все хосты получали этот файл с сайта, на ко­тором он хранился. В сети, состоящей из нескольких сотен больших машин, ра­ботающих под управлением системы с разделением времени, такой подход рабо­тал вполне приемлемо.

Но когда к сети подключились тысячи рабочих станций, всем стало ясно, что этот способ не сможет работать вечно. Во-первых, размер файла рано или поздно стал бы слишком большим. Однако, что еще важнее, если управление именами хостов не осуществлять централизованно, неизбежно возникновение конфлик­тов имен. В то же время, представить себе централизованное управление имена­ми всех хостов гигантской международной сети довольно сложно. Для разреше­ния всех этих проблем и была разработана служба имен доменов (DNS, Domain Name System).

Суть системы DNS заключается в иерархической схеме имен, основанной на доменах, и распределенной базе данных, реализующей эту схему имен. В первую очередь эта система используется для преобразования имен хостов и пунктов на­значения электронной почты в IP-адреса, но также может использоваться и в других целях. Определение системы DNS дано в RFC 1034 и 1035.

В общих чертах система DNS применяется следующим образом. Для преоб­разования имени в IP-адрес прикладная программа обращается к библиотечной процедуре, называющейся распознавателем, передавая ей имя в качестве пара­метра. Распознаватель посылает UDP-пакет локальному DNS-серверу, который ищет имя в базе данных и возвращает соответствующий IP-адрес распознавате­лю, который, в свою очередь, передает этот адрес вызвавшей его прикладной прог­рамме. Имея IP-адрес, программа может установить TCP-соединение с адреса­том или послать ему UDP-пакеты.

Пространство имен DNS

Управление большим и постоянно изменяющимся набором имен представляет собой нетривиальную задачу. В почтовой системе на письмах требуется указы­вать (явно или неявно) страну, штат или область, город, улицу, номер дома, кварти­ру и фамилию получателя. Благодаря использованию такой иерархической схе­мы не возникает путаницы между Марвином Андерсоном, живущим на Мейн-стрит в Уайт Плейнс, штат Нью-Йорк, и Марвином Андерсоном с Мейн-стрит в Остине, штат Техас. Система DNS работает аналогично.

Интернет концептуально разделен на 200 доменов верхнего уровня. Домена­ми называют в Интернете множество хостов, объединенное в логическую груп­пу. Каждый домен верхнего уровня подразделяется на поддомены, которые, в свою очередь, также могут состоять из других доменов, и т. д. Все эти домены можно рассматривать в виде дерева. Листьями дерева являются домены, не разделяющиеся на поддомены (но состоящие из хостов, ко­нечно). Такой конечный домен может состоять из одного хоста или может пред­ставлять компанию и содержать в себе тысячи хостов.

Домены верхнего уровня разделяются на две группы: родовые домены и до­мены государств. К родовым относятся домены com (commercial - коммерческие организации), edu (educational - учебные заведения), gov (government - феде­ральное правительство США), int (international - определенные международные организации), mil (military - вооруженные силы США), net (network - сетевые операторы связи) и org (некоммерческие организации). За каждым государством в соответствии с международным стандартом ISO 3166 закреплен один домен го­сударства.

В ноябре 2000 года ICANN было утверждено 4 новых родовых имени доменов верхнего уровня, а именно: biz (бизнес), info (информация), пате (имена людей) и pro (специалисты, такие как доктора и адвокаты). Кроме того, по просьбе соот­ветствующих отраслевых организаций были введены еще три специализирован­ных имени доменов верхнего уровня: aero (аэрокосмическая промышленность), coop (кооперативы) и museum (музеи). В будущем появятся и другие домены верх­него уровня.

Между прочим, по мере коммерциализации Интернета появляется все больше спорных вопросов. Взять хотя бы домен pro. Он предназначен для сертифициро­ванных специалистов. Но кто является специалистом, а кто нет? Кем должны быть эти специалисты сертифицированы? Понятно, что доктора и адвокаты -это профессионалы, спору нет. А что делать со свободными художниками, учите­лями музыки, заклинателями, водопроводчиками, парикмахерами, мусорщика­ми, рисователями татуировок, наемниками и проститутками? Имеют ли право квалифицированные представители всех этих и многих других профессий полу­чать домены pro? Если да, то кто выдаст сертификат каждому из этих специали­стов?

В принципе, получить домен второго уровня типа name-of-company.com не­сложно. Надо лишь проверить, не занято ли желаемое имя домена кем-то другим и не является ли оно чьей-нибудь торговой маркой. Для этого надо зайти на сайт регистрационного бюро верхнего уровня (в данном случае сот). Если все в по­рядке, заказчик регистрируется и за небольшую ежегодную абонентскую плату получает домен второго уровня. На сегодняшний день в качестве имен поддоменов сот уже используются практически все общеупотребительные английские слова. Попробуйте набрать какое-нибудь слово, касающееся домашнего хозяйст­ва, животных, растений, частей тела и т. д. Вряд ли ошибетесь.

Имя каждого домена, подобно полному пути к файлу в файловой системе, со­стоит из пути от этого домена до (безымянной) вершины дерева. Компоненты пу­ти разделяются точками. Так, домен технического отдела корпорации Sun Micro­systems может выглядеть как eng.sun.com ,а не так, как это принято в стиле UNIX (/com/sun/eng). Следует отметить, что eng.sun.com не конфликтует с потенциаль­ным использованием имени eng в домене eng.yale.edu, где он может обозначать факультет английского языка Йельского университета.

Имена доменов могут быть абсолютными и относительными. Абсолютное имя домена всегда оканчивается точкой (например, eng.sun.com), тогда как отно­сительное имя – нет. Для того чтобы можно было единственным образом опре­делить истинные значения относительных имен, они должны интерпретироваться в некотором контексте. В любом случае именованный домен означает определен­ный узел дерева и все узлы под ним.

Имена доменов нечувствительны к изменению регистра символов. Так, на­пример, edu и EDU означают одно и то же. Длина имен компонентов может дости­гать 63 символов, а длина полного пути не должна превосходить 255 символов.

В принципе, новые домены могут добавляться в дерево двумя разными путя­ми. Например, cs.yale.edu можно без проблем поместить в домен us под именем cs.yale.ct.us .На практике, однако, почти все организации в США помещаются под родовыми доменами, тогда как почти все организации за пределами Соеди­ненных Штатов располагаются под доменами их государств. Не существует ка­ких-либо правил, запрещающих регистрацию под двумя доменами верхнего уров­ня, однако использует эту возможность лишь небольшое число организаций (за исключением интернациональных, например, sony.com и sony.nl .

Каждый домен управляет доступом к доменам, расположенным под ним. На­пример, в Японии домены ac.jp и co.jp соответствуют американским доменам edu и сот. В Голландии подобное различие не используется, и все домены организа­ций помещаются прямо под доменом nl.

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

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

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

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

Domain_name Time_to_live Class Type Value

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

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

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

Поле Туре (тип) означает тип записи. Наиболее важные типы записей пере­числены в табл.

Тип Смысл Значение
SOA Начальная запись зоны Параметры для этой зоны
А IP-адрес хоста 32-разрядное целое число
MX Обмен почтой Приоритет, с которым домен желает принимать электронную почту
NS Сервер имен Имя сервера для этого домена
CNAME Каноническое имя Имя домена
PTR Указатель Псевдоним IP-адреса
HINFO Описание хоста Описание центрального процессора и ОС в виде ASCII-текста
тхт Текст Не интерпретируемый ASCII-текст

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

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

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

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

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

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

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

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

Понравилось ? Поделись с другом:
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS
  • DNS

DNS

Добавить в:
Bookmark and Share
Читать в Яндекс.Ленте
Если Вам понравилась статья, то Вы можете получать новые материалы по RSS (как читать RSS) или на e-mail:

Получать обновления:

Похожие материалы:

Оставить комментарий

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

Я не робот!
RSS Подписка:  →

Метки по темам


службы мониторинга серверов