В связи с тем, что числовая запись IP-адресов сложна для запоминания и не вызывает ассоциаций, была введена служба, обеспечивающая трансляцию имен из символьного представления в IP-адреса.
DNS (Domain Name System – система доменных имен) – распределенная система (распределенная база данных), способная по запросу, содержащему доменное имя хоста (компьютера или другого сетевого устройства), сообщить IP-адрес или (в зависимости от запроса) другую информацию. DNS работает в сетях TCP/IP/ Как частный случай, DNS может хранить и обрабатывать запросы, определение имени хоста по его IP-адресу.
Доменное имя состоит из нескольких частей, при записи разделенных точками.
Доменное имя 1-го уровня расположено справа.
Имена 1-го уровня распределяются по принципу стран или организаций, и распределяются специальной некоммерческой организацией, ответственной за распределение имен.
Распределением доменных имен 2-го уровня занимаются уполномоченные организациями.
Имена 3-го и далее уровня распределяются вышестоящими уровнями.
Ключевые характеристики DSN.
Распределённость администрирования. Ответственность за разные части иерархической структуры несут разные люди или организации.
Распределённость хранения информации. Каждый узел сети в обязательном порядке должен хранить только те данные, которые входят в его зону ответственности и (возможно) адреса корневых DNS-серверов.
Кеширование информации. Узел может хранить некоторое количество данных не из своей зоны ответственности для уменьшения нагрузки на сеть.
Иерархическая структура, в которой все узлы объединены в дерево, и каждый узел может или самостоятельно определять работу нижестоящих узлов, или делегировать (передавать) их другим узлам.
Резервирование. За хранение и обслуживание своих узлов (зон) отвечают (обычно) несколько серверов, разделённые как физически, так и логически, что обеспечивает сохранность данных и продолжение работы даже в случае сбоя одного из узлов.
Терминология DNS.
Зона – логический узел в дереве имён.
Домен– название зоны в системе доменных имен (DNS) Интернета, выделенной какой-либо стране, организации или иных целей.
Поддомен– имя подчиненной зоны. Теоретически такое деление может достигать глубины 127 уровней, а каждая метка может содержать до 63 символов, пока общая длина вместе с точками не достигнет 254 символов. Но на практике регистраторы доменных имён используют более строгие ограничения.
Субдомен– дополнительное доменное имя 3-го уровня в основном домене. Может указывать как на документы корневого каталога, так и на любой подкаталог основного сервера. Например, если у вас есть домен вида mydomain.ru, вы можете создать для него различные поддомены вида mysite1.mudomain.ru и т.д.
DNS-сервер- специализированное ПО для обслуживания DNS, а также компьютер, на котором это ПО выполняется. DNS-сервер может быть ответственным за некоторые зоны и/или может перенаправлять запросы вышестоящим серверам.
DNS-клиент- специализированная библиотека (или программа) для работы с DNS. В ряде случаев DNS-сервер выступает в роли DNS-клиента.
Ответственность (authoritative)- признак размещения зоны на DNS-сервере. Ответы DNS-сервера могут быть двух типов: авторитетные (ответственные) (когда сервер заявляет, что сам отвечает за зону) и неавторитетные (неответственные) (Non-authoritative), когда сервер обрабатывает запрос, и возвращает ответ других серверов. В некоторых случаях вместо передачи запроса дальше DNS-сервер может вернуть уже известное ему (по запросам ранее) значение (режим кеширования).
DNS-запрос (DNS query)- запрос от клиента (или сервера) серверу. Запрос может быть рекурсивным или нерекурсивным.
Термином Рекурсия в DNS обозначают алгоритм поведения DNS-сервера, при котором сервер выполняет от имени клиента полный поиск нужной информации во всей системе DNS, при необходимости обращаясь к другим DNS-серверам.
DNS-запрос может быть рекурсивным – требующим полного поиска, - и нерекурсивным (или итеративным) – не требующим полного поиска.
Нерекурсивный запрослибо возвращает данные о зоне, которая находится в зоне ответственности DNS-сервера (который получил запрос) или возвращает адреса корневых серверов (адреса любого сервера, который обладает большим объемом информации о запрошенной зоне, чем отвечающий сервер). (будет получен ответственный ответ).
В случае рекурсивного запроса сервер опрашивает серверы (в порядке убывания уровня зон в имени) пока не найдет ответ или не обнаружит, что домен не существует. На практике поиск начинается с наиболее близких к искомому DNS-серверов, если информация о них есть в кеше и не устарела, сервер может не запрашивать DNS-серверы (неответственный ответ).
В настоящее время система доменных имен расширена за счёт введения имен на языках, отличных от английского. С одной стороны это упрощает работу с интернетом «домохозяйкам», с другой – приводит к всплеску киберсквотерства (скупка красивых имен по-дешевке с последующей перепродажей) и изоляции этих сегментов от незнающих языка или при отсутствии языковой раскладки не сможет легко попасть на эти сайты.
DYNDNS.
Динамическая система доменных имен была введена для того, чтобы к компьютеру с динамическим IP-адресом можно было получить доступ из внешней сети по его доменному имени. Стандартная DNS за счет механизма способна работать со статическими IP-адресами, а из-за нехватки IPv4 ввели динамические IP-адреса. Долгое время считалось, что подключение из вне к динамическим IP невозможно. Для решения этой задачи вводится сервер-посредник, поддерживающий в активном состоянии БД доменных имен, как правило, 3-го уровня и текущих IP-адресов.
По запросу пользователя этот сервер выдает текущий IP-адрес из своей базы.
Актуальность адреса обеспечивается за счет того, что оборудование с динамическим IP периодически подключается к этому серверу-посреднику и сообщает свой текущий IP-адрес, вместе с идентификационной информацией.