Система доменных имен (DNS). Оглавление

Сетевые технологии: как устроен Интернет 

 

Система доменных имен (DNS)

 

Основные концепции

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

 

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


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

Таким образом, DNS выполняет две основных функции:

  1. организацию иерархического пространства имен;
  2. обеспечение разрешения (т.е. поиска соответствия) доменных имен в IP-адреса.

Как и большинство сервисов DNS относится к средствам прикладного уровня модели OSI и строится по принципу "клиент-сервер".

В структуре сервиса DNS выделяют следующие компоненты:

  1. Информационный ресурс - иерархически организованное пространство доменных имен. Соответствия доменных имен и IP-адресов описывается в распределенной по специальным узлам сети, называемым серверами имен, базе данных. Часть иерархического пространства имен, обслуживаемая одним сервером имен и представленная в его локальной базе данных, называется зоной ответственности (zone of authority). Подробнее см. разделы "Организация пространства имен" и "База данных DNS-сервера".

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

  3. Сервер имен (name server), или DNS-сервер, - программа, обеспечивающая хранение части распределенной базы данных соответствий IP-адресов и доменных имен, а также осуществляющая по запросу клиента поиск IP-адреса на основе предложенного доменного имени.

  4. Протокол DNS - протокол взаимодействия DNS-клиентов и DNS-серверов (подробнее см. раздел "Разрешение доменных имен").

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

 

Фильм "Числовые и символьные имена" (1:18)

Организация пространства имен

Фильм "Организация пространства имен" (2:11)

Пространство доменных имен имеет иерархическую структуру. На самом верхнем уровне иерархии располагается корневой домен, который обычно обозначается точкой ("."). Следующий уровень иерархии составляют домены верхнего, или первого, уровня (Top Level Domains, TLDs). Каждый домен верхнего уровня включает в себя домены второго уровня и т.д.

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

Домены первого уровня

Домены первого уровня делятся на три группы:

  • домены общего назначения;

  • национальные домены;

  • обратный домен.


Домены первого уровня



Первую группу составляют домены общего назначения (Generic TLDs, gTLDs). К этим доменам относятся:

Название домена Комментарий
"Старые" домены, созданные в 1984 году
"com" COMmercial, коммерческие организации
"gov" GOVernment, правительственные учреждения США
"int" INTernational Organizations, международные организации
"mil" MILitary, военные организации США
"edu" EDUcational, образовательные проекты и учреждения
"org" ORGanisations, некоммерческие организации или организации, не попадающие в другие категории
"net" NETwork, сети общего назначения
"Новые" домены, созданные в 2001 году
"info" INFOrmation, домен свободного использования для предоставления информации в Интернет
"biz" Business Organizations, различные организации
"name" домен предназначен для использования частными лицами
"museum" музеи


Изначально домены общего назначения предназначались для объединения доменов нижних уровней, принадлежащих организациям и учреждениям США. Поэтому в силу традиции большая часть доменов, зарегистрированных за организациями других государств, входят не в домены общего назначения, а в так называемые национальные домены. Однако ничто не мешает какой-нибудь компании, например, Российской, зарегистрировать домен второго уровня в домене "com". Исключением являются только домены "mil" и "gov", которые используются только учреждениями и организациями США.

Другой традицией для доменов общего назначения до последнего времени было жесткое ограничение на длину имени - три символа. Ввод в 2001 году доменов "name", "info" и "museum" нарушил эту традицию. По всей видимости, это не будет соблюдаться и в дальнейшем, поскольку в ближайшее время среди прочих планируется ввести еще два домена общего назначения с "неправильным" именем - "coop" и "aero".

Во вторую группу включены национальные домены (Country Code TLDs, ccTLDs). Имя каждого такого домена состоит из двух символов и представляет собой сокращение названия государства (так называемый "код страны"), которому принадлежит домен, например, "ru" означает Россия. Список национальных доменов разработан и утвержден Национальным Институтом Стандартов США (ISO 3166-1).

Третья группа состоит из одного домена с четырехсимвольным именем "arpa", предназначенного для поиска доменного имени по IP-адресу (обратного разрешения). Часто этот домен называют обратным доменом (reverse domain)

Домены второго и более низких уровней

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

Так, например, в национальном домене первого уровня "ru" установлен порядок, согласно которому внутри этого домена выделяются три группы доменов второго уровня.

  1. Домены общего пользования ("домены типа GENERIC"):

    • "ac.ru" - домен Академии Наук России;

    • "com.ru" - коммерческие организации;

    • "edu.ru" - образовательные проекты и организации;

    • "net.ru" -сети, принадлежащие различным организациям;

    • "org.ru" - некоммерческие организации;

    • "int.ru" - домен для общего использования;

    • "mil.ru" - военные организации и учреждения;

    • "pp.ru" - домен для использования частными лицами.

  2. Домены субъектов Российской Федерации ("домены типа GEOGRAPHICAL").

  3. Другие домены, имена которых выбираются произвольным образом, например, по имени владельца (имени человека, названию организации), обобщенной тематике, которой соответствует информация, представленная на узлах домена и т.п. Например, существует домен второго уровня "fio.ru", закрепленный за Федерацией Интернет Образования.

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

Рассмотрим в качестве примера организацию домена Федерации Интернет Образования. Федерация имеет домен второго уровня "fio", зарегистрированный в домене "ru". В данном домене представлены как отдельные узлы, например, узел с именем "www" - узел, на котором размещен web-сайт Федерации, информационные узлы различных проектов Федерации ("parent", "teacher", "writer" и т.д.), так и различные субдомены третьего уровня, например, домен "center" - домен Московского Центра Интернет-образования, домен "net" - внутренняя сеть Федерации, домен "dlmsk" - домен поддержки системы дистанционного образования Московского Центра, а также домены региональных центров Федерации, названия которых определяются регионами (например, "spb" или "samara"). В свою очередь, домен третьего уровня "net" содержит в себе субдомен "msk" - домен, в котором размещены компьютеры учебных классов Московского Центра.

 


Организация домена "fio.ru"

Правила построения доменных имен

Общие правила построения имен доменов и узлов следующие: во-первых, имя может состоять только из букв латинского алфавита, цифр и символа "-"(дефис), а, во-вторых, длина имени не может превышать 63 символов.

Кроме того, доменные имена являются нечувствительными к регистру символов, входящих в его состав. Это означает, что последовательности символов "Com", "COM", "cOm", "com" и т.п. обозначают одно и тоже имя.

Для адресации конкретного узла или домена используется так называемое полностью определенное доменное имя (Fully Qualified Domain Name, FQDN). FQDN - это имя домена или узла, отражающее всю иерархию включения данного домена или узла в домены более высокого уровня вплоть до корневого домена. Полное доменное имя строится справа налево и последовательно включает в себя имена всех доменов иерархии, разделенные точками, начиная с первого уровня и заканчивая доменом или узлом, которому это имя принадлежит. Например, для узла "www", принадлежащего домену "fio", полное доменное имя будет иметь вид "www.fio.ru".

 

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

Например, узел 213.128.193.116 входит под именем "www" в домен 3-его уровня "center.fio.ru", а также под таким же именем "www" в домен 4-го уровня "msk.net.fio.ru". Таким образом, он имеет два полностью определенных имени: "www.center.fio.ru" и "www.msk.net.fio.ru". В качестве другого примера можно привести узел 213.128.193.115, имеющий несколько имен в домене "msk.net.fio.ru", в том числе имена "msk-server.msk.net.fio.ru" и "mail.msk.net.fio.ru".


В настоящее время активно разрабатывается проект IDN (Internationalized Domain Name, "Интернационализированное" доменное имя), согласно которому в доменные имена могут входить символы любых национальных алфавитов. В настоящее время ведется тестовая регистрация имен с использованием символов китайского, корейского и японского алфавитов в доменах "com", "net" и "org", а также - символов русского алфавита в домене "ru". Однако, поскольку пока не принят официальный стандарт IDN как расширение классической системы DNS, корректное разрешение доменных имен, включающих в себя национальные символы, не гарантируется.

База данных DNS-сервера

База данных сервера DNS предназначена для описания соответствий доменных имен IP-адресам узлов.

Важным преимуществом DNS является то, что каждый конкретный сервер имен не должен содержать в своей локальной базе данных описание всей иерархии имен DNS. Как правило, организация, регистрирующая свое доменное имя, должна иметь DNS-сервер, в базе данных которого представлено только пространство имен, принадлежащих ее домену (зона ответственности). Например, если в домене "center.fio.ru" имеется только один узел - "www", то в базе данных сервера имен этого домена может присутствовать всего одна запись для указанного имени.

Кроме того, если домен содержит в себе домены нижних уровней, то каждый такой субдомен может иметь свой собственный сервер имен, освобождая тем самым DNS-сервер родительского домена от необходимости обслуживать свое подпространство имен. Таким образом, продолжая пример, сервер имен домена "fio.ru" не имеет в своей базе данных информации об узле "www" домена "center.fio.ru". При этом в его базе должна присутствовать запись о том, что зона "center" обслуживается другим сервером.

Такая передача полномочий по управлению именами части зоны называется делегированием.

Система DNS допускает, что один сервер имен может в своей базе данных описывать несколько зон. Например, зоны "center.fio.ru" и "msk.net.fio.ru" обслуживаются одним DNS-сервером.

Работа системы DNS

Алгоритм разрешения имен достаточно прост. Когда программе-клиенту требуется по доменному имени выяснить IP-адрес, она связывается с сервером имен, адрес которого указан в настройках TCP/IP.

 

Чтобы программное обеспечение пользовательского компьютера могло осуществлять преобразование доменных имен в IP-адреса, в настройках TCP/IP обязательно должен быть указан адрес хотя бы одного сервера имен.


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

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

Порядок взаимодействия DNS-клиента с сервером для обеспечения разрешения имен определяется специальным протоколам DNS. Этот протокол предусматривает свой формат сообщения (пакета) и использует для доставки данных транспортные протоколы UDP и TCP как нижележащие.

Задачи, решаемые сервисом DNS, являются относительно простыми, поэтому DNS-сообщение устроено несложно: оно включает в себя:

  • поле заголовка, определяющее тип сообщения (например, "запрос клиента", "ответ сервера" и т.д.);

  • поле запроса, в котором клиент указывает разрешаемое имя и параметры запроса;

  • поле ответа, в которое сервер помещает результат обработки запроса;

  • два служебных поля передачи для управляющей и дополнительной информации.

Фильм "Разрешение имен"

Фильм "Работа системы доменных имен" (1:47)

 Порядок регистрации доменных имен

Общую координацию регистрации доменных имен выполняет Интернет Корпорация по распределению адресов и имен (The Internet Corporation for Assigned Names and Numbers, ICANN). Эта организация осуществляет регистрацию имен верхнего уровня. Соответственно с принципами делегирования зон ответственности, принятыми в DNS, за обслуживание пространства имен в каждом домене первого уровня отвечают различные организации. В частности, за зону домена "ru" в настоящее время отвечает Региональный сетевой информационный центр "RU-CENTER". Поэтому, если у пользователя сети Интернет возникла необходимость зарегистрировать доменное имя второго уровня внутри домена "ru", то он должен обращаться именно в эту организацию. Условия и порядок регистрации имен нижних уровней определяют владельцы имен доменов, внутри которых регистрируется новое имя. Например, порядок регистрации имен внутри домена "fio.ru" определяет Федерация Интернет Образования.

При регистрации нового домена независимо от того, где он регистрируется, должны соблюдаться следующие правила:

  • имя должно быть уникальным в рамках того домена, где оно регистрируется;

  • должен определяться один DNS-сервер (или несколько - для надежности), который будет обслуживать пространство имен создаваемого домена и которому будет делегирована соответствующая зона.

Конкретный порядок задается той организацией, которая осуществляет регистрацию. Так, например, для регистрации домена второго уровня в зоне "ru" через "RU-CENTER" необходимо развернуть два DNS-сервера в различных IP-сетях. При этом указанные сервера должны иметь, по определению Центра, "надежное подключение" к сети Интернет, т.е. связь с серверами не должна прерываться более чем на 2 час в сутки. Если такой возможности нет, например, организация, желающая зарегистрировать имя, не имеет двух сетей c различными номерами, "RU-CENTER" предлагает взять на себя обеспечение функционирования второго сервера имен, а при необходимости - и первого. 

Резюме 

  • Основная цель разработки DNS - обеспечение возможности использования для адресации узлов удобно запоминаемых мнемонических имен вместо числовых IP-адресов;

  • основные функции DNS - это организация иерархического пространства имен узлов и обеспечение разрешения имен узлов в IP-адреса;

  • принцип иерархической организации основан на том, что узлы сети могут объединяться в логические группы - домены, которые, в свою очередь, могут входить в домены более высокого уровня;

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

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

  • любой узел может входить в несколько доменов и, следовательно, иметь несколько разных полностью определенных доменных имен;

  • DNS как сервис разрешения имен строится по принципу "клиент-сервер" и подразумевает наличие в своей структуре клиентского программного обеспечения и серверов имен;

  • каждый сервер имен имеет локальную базу данных, в которой описаны соответствия доменных имен и IP-адресов;

  • в базе данных сервера имен описываются соответствия не для всего иерархического пространства имен, а для некоторой его части;

  • часть пространства имен, обслуживаемая одним сервером называется зоной ответственности;

  • алгоритм разрешения предполагает, что клиент направляет запрос серверу, который осуществляет поиск соответствия доменного имени IP-адресу в локальной базе данных;

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

Дата последнего обновления страницы 28.07.2020
Сайт создан по технологии «Конструктор сайтов e-Publish»
Версия для слабовидящих
Размер шрифта Шрифт Межсимвольный интервал Межстрочный интервал Цветовая схема Изображения