DNS

Содержание:

Pault Mockapetris_ - автор DNS.

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

В основе иерархической структуры базы данных DNS лежит доменное пространство имен (domain namespace), основной структурной единицей которого является домен, объединяющий сетевые узлы (хосты), а также поддомены. Процесс поиска в БД службы DNS имени некоего сетевого узла и сопоставления этому имени IP-адреса называется “разрешением имени узла в пространстве имен DNS”.

История

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

Для установления соответствия символьного имени и MAC-адреса использовались широковещательные запросы. Широковещательный способ разрешения имен реализован в NetBIOS.

Принцип работы

img

  1. Когда пользователь запускает веб-браузер и вводит название домена сайта, его ПК отправляет запрос к DNS-серверу интернет-провайдера для получения IP-адреса, на котором находится домен.
  2. Если DNS-серверы провайдера не обнаруживают в своем кэше информации о запрашиваемом сайте, то отправляют запрос на корневые DNS-серверы.
  3. Корневой DNS-сервер ищет в своей базе данных информацию о серверах имен хостинг-провайдера, на которых присутствует этот сайт. Далее, он сообщает их кэширующему DNS-серверу провайдера.
  4. После того, как кэширующий DNS-сервер интернет-провайдера получает информацию о серверах имен хостинг-провайдера он опрашивает любой из них и..
  5. в случае получения положительного результата получения IP-адреса, помещает в кэш. Кэширование используется для того, чтобы снизить как нагрузку на интернет-каналы, так и для ускорения получения результата запроса.
  6. После этого DNS-сервер провайдера передает IP-адрес браузеру пользователя, совершившему запрос сайта.
  7. И уже после этого браузер, получив IP-адрес запрашиваемого сайта..
  8. переходит на сам сайт.

Иерархия построения

Основой DNS является представление об иерархической структуре доменного имени.

1

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

Зона - часть дерева доменных имен, размещаемая как единое целое на некотором сервере доменных имен.

Делегирование - операция передачи отвественности за часть дерева доменных имен другому лицу или организации.

1529137542423

Полностью определенное имя домена (Fully Qualified Domain Name)

Клиенты и серверы DNS

DNS состоит из трех основных частей:

  1. Пространство имен DNS и соответствующие ресурсные записи (RR, resource record) - это сама распределенная база данных DNS;
  2. Серверы имен DNS - компьютеры, хранящие базу данных DNS и отвечающие на запросы DNS-клиентов;
  3. DNS-клиенты (DNS-clients, DNS-resolvers) -компьютеры, посылающие запросы серверам DNS для получения ресурсных записей.

Виды запросов

Рекурсивный

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

Посылаемые в этом случае другим DNS-серверам запросы будут итеративными.

1529138461000

Нерекурсивный

Клиент посылает серверу DNS запрос, в котором требует дать наилучший ответ без обращений к другим DNS-серверам

1529138137547

Использование кэша

1529138514303

Рекурсивная процедура разрешения имен

1529138550364

Типы серверов

Authoritative response - возвращают серверы, которые являются ответственными за зону, в которой описана информация, необходимая клиенту DNS.

Non Authoritative response - возвращают серверы, которые не отвечают за зону, содержащую информацию, необходимую клиенту DNS.


Master-сервер - является ответственным за зону; описание зоны master-сервера является публичным.

Slave-сервер - является ответственным за зону; slave-сервер копирует описание зоны с master-сервера.

Кэширующий сервер - временно сохраняет сопоставление доменному имени IP-адреса и еще некоторую полезную информацию.

Скрытый сервер:

1529139780409

Проблема распостранения изменений

-> set type=soa

-> rambler.ru

 __refresh = 10800(3 hours)__

retry = 1800(30 mins)

expire = 864000(10 days)

default TTL = 3600(1 hour)

-> relarn.ru

 __refresh = 86400(1 day)__

 retry = 3600(1 hour)

 expire = 604800(7 days)

 default TTL = 86400(1 day)

DNS UPDATE

Динамический DNS (Dynamic Updates in the DNS) - технология, позволяющая информации на DNS-сервере обновляться в реальном времени и в автоматическом режиме.

DNS зоны

Зона - часть дерева доменных имен (включая ресурсные записи), размещаемая как единое целое на некотором DNS-сервере.

Целью выделения части дерева в отдельную зону является передача ответственности за соответствующий домен другому лицу или организации - это называется делегированием.

Сервер, на котором размещены ресурсные записи какой-то зоны, называется ответственным (authority) за зону. Ответы сервера на запросы о “своих” именах тоже авторитетные. Если есть только часть записей (например, в кеше), то это неавторитетный сервер / ответ.

Принцип работы

За каждую зону DNS отвечает не менее двух серверов. Один из них является первичным, primary, остальные - вторичными, secondary.

Первичный сервер содержит оригинальные базу данных DNS для своей зоны.

Вторичные серверы получают эту базу по сети от первичного, периодически спрашивая, не обновилась ли она (признаком обновления служит увеличение SERIAL в записи SOA). Если данные обновлены, вторичный сервер запрашивает передачу зоны. Передача зоны происходит по TCP/53 (в отличие от запросов - UDP/53).

Принцип работы DNS NOTIFY

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

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

Серверы DNS не обязаны находиться в том домене, за который они отвечают.

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

принцип работы DNS NOTIFY2

Передача зоны

Два механизма копирования зоны:

Конфигурация DNS сервера

Формат DNS пакета

Криптосистемы с открытым ключом

DNSSEC