Что такое ДНС

Доменное имя

Как бы вы определили такое понятие как сайт в интернете? В качестве примера, вы скорее всего назовёт его имя, например, yandex.ru или google.com. С практической точки зрения здесь все понятно. Например, вы нашли интересный сайт и сообщили знакомым его адрес или иначе говоря доменное имя.

Как раз доменное имя и является удобным, человекопонятным способом идентификации сайта в интернете. Однако, настоящим адресом доменное имя не является.

IP адрес

По своей структуре интернет — это огромное количество физических устройств (компьютеров, ноутбуков, планшетов, телефонов, серверов и т.п.), связанных в единую сеть. Любой сайт в интернете находится как минимум на одном физическом устройстве или может быть распределен по нескольким устройствам. Каждое устройство имеет свой уникальный номер - IP-адрес, который и является настоящим адресом устройства.

IP-адрес, буквально от английского Internet Protocol Address (адрес интернет-протокола) — уникальный сетевой адрес узла в компьютерной сети, построенной на основе протоколов TCP/IP. В настоящее время используются две версии протокола IP адресов: IPv4 (имеет длину 4 байта) и IPv6 (имеет длину 16 байт). Цифра в названии (например IPv4) как раз и указывает на номер версии протокола. Еще стоит отметить, что сети Интернет требуется глобальная уникальность адреса. В то время как, в случае работы в локальной сети требуется уникальность адреса в пределах сети. Поэтому для локальных сетей используются так называетмые частные IP-адреса. Например частные адреса IPv4, используемые в локальных сетях, имеют следующие значения:

Адреса Intranet:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Адреса для внутреннего использования:

  • 127.0.0.0/8 — используется для коммуникаций внутри хоста (localhost)
  • блок с 169.254.1.0 по 169.254.254.255 (подсеть 169.254.0.0/16 за исключением подсетей 169.254.0.0/24 и 169.254.255.0/24) — используется для автоматической настройки сетевого интерфейса в случае отсутствия DHCP (см. link-local)
Что такое ДНС?

Компьютер не запоминает ничего кроме цифр (причем только двух), при этом, как неудобно было бы человеку держать в уме огромное количество цифр IP адресов. Поэтому для удобства работы в Интернете, еще в 80-х годах была создана система доменных имен — DNS (Domain Name System) или по русски - ДНС (система доменных имен). Смысл её в том, что каждому цифровому IP-адресу присваивается понятное буквенное имя (домен). Когда вы вводите в браузере доменное имя, сервера DNS преобразуют его в IP-адрес. Как раз для преобразования доменного имени в IP-адрес и наоборот служит система DNS

DNS сопоставляет доменные имена (названия сайтов) с IP адресами физических устройств. Этот процесс часто сравнивают с контактами в телефонной книге. Мы заносим их в свои записные книжки и добавляем к ним понятные имена, например: Петрович +7-123-456-78-90. В дальнейшем нам нет необходимости помнить телефон Петровича, достаточно найти его в списке наших контактов и позвонить, даже не взглянув на его номер. Таким же образом, благодаря DNS, нам не нужно запоминать IP-адреса, чтобы попасть на определённый сайт, достаточно набрать в браузере доменное имя

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

DNS не работает на пустом месте, для ее функционирования необходимо оборудование. Поэтому, стоит отметить, что ДНС это не только программное обеспечение, но и огромное количество физических устройств (серверов) по всему миру

Как работает ДНС?

Как только вы вводите url (доменное имя сайта) в адресную строку браузера и нажимаете Enter к работе приступают ДНС сервера. Попробуем понять, что при этом происходит.

Что такое ДНС
Схема функционирования ДНС

В первую очередь, при введении в строке браузера доменного имени, например, amy.ru, он обращается к вашему собственному компьютеру, а именно файлу hosts. В этом файле, в ручную прописываются соответствия домена IP-адресу и если такое соответcвие обнаруживается, то запрос сразу отправится по нужному IP (стрелки 0 и 9). В результате вы получите доступ к сайту. В противном случае, чтобы определить IP-адрес домена, браузер сформирует DNS-запрос к интернет-провайдеру (стрелка 1).

Как только провайдер получил запрос он обращается к своим локальным кэшируемым ДНС серверам. Если необходимая запись о соответствии требуемого домена IP-адресу обнаруживается в кэше, то провайдер возвращает вам на компьютер необходимый IP-адрес (стрелка 8). Браузер, в свою очередь обратиться по этому IP к хостингу и пользователь получит доступ к сайту (стрелки 0 и 9). Если же провайдер не находит в своем кэше нужной записи, он перенаправляет DNS-запрос на корневые DNS-серверы (стрелка 2).

Корневой сервер имён

Корневой DNS-сервер (корневой сервер имён) располагается на верхнем уровне иерархии DNS. Он не имеет формального имени и представляет собой базу данных ссылок на домены верхнего уровня (TLD): RU, COM, NET, ORG и др.. Корневые DNS-серверы содержат информацию только о DNS-серверах, ответственных за доменные зоны. Поэтому корневой DNS-сервер не может предоставить провайдеру информацию об IP-адресе запрашиваемого домена, но зато он может предоставить информацию об IP-адресе DNS-сервера доменной зоны, в нашем случае зоны RU (стрелка 3).

Как только интернет-провайдера получает IP-адрес DNS-сервера доменной зоны RU, он обращается к этому DNS-серверу и запрашивает IP-адрес домена (стрелка 4).

Сервер имён TLD (ДНС сервер зоны RU)

DNS-серверы зоны RU содержат информацию о DNS-серверах всех доменов в этой зоне, но только не их IP-адреса. Поэтому DNS-серверы зоны вернут интернет-провайдеру IP-адрес DNS-сервера домена amy.ru (стрелка 5).

Как только провайдер получает IP-адрес DNS-сервера искомого домена, он обращается к DNS-серверу домена с запросом IP-адреса домена (стрелка 6).

ДНС сервера домена

После получения запроса DNS-сервер проверяет есть ли у него информация об искомом домене и соответсвенный IP-адрес для него. В случае успеха DNS-сервер отправляет IP-адрес домена интернет-провайдеру (стрелка 7).

После этого провайдер получает IP-адрес домена и сохраняет его у себя в кэше, а клиенту (на ваш компьютер) отправляет результат DNS-запроса — IP-адрес искомого домена, напрмер amy.ru (стрелка 8).

Далее ваш компьютер обращается к хостингу по полученному IP-адресу (стрелки 0 и 9) и получает в ответ запрашиваемый сайт.

Ресурсные записи (DNS-записи домена)

ДНС сервера домена имеет практический смысл для самих владельцев доменов. Если вы сделали сайт, зарегистрировали домен и хотите, чтобы он заработал, вам необходимо настроить ресурсные ДНС записи для своего домена

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

Primary и secondary DNS

В работе ДНС очень важна надежность, поэтому для ее повышения и ускорения работы системы копия ДНС хранится на одном или нескольких компьютерах (серверах), которые в этом случае называются вторичными (secondary) DNS. Secondary DNS периодически копирует файлы зон с primary DNS, чтобы всегда иметь "под рукой" актуальную информацию.

Для одного домена создают как минимум два сервера ДНС: primary и secondary (можно прописать и большее число серверов ДНС). Так как эти два ДНС сервера могут располагаться на разных компьютерах, то и настроить primary и secondary DNS можно отдельно, используя услуги разных поставщиков (например: primary DNS у хостера, а secondary DNS у регистратра). Понятно, что содержание ресурсных записей должно быть одинаковым для всех копий ДНС.

Основные типы ресурсных записей DNS

A (address record/запись адреса) - это главная запись, которая указывает на соответствие между доменным именем и IP-адресом (IPv4).

AAAA (IPv6 address record) - указывает соответствие доменного имени для IPv6 (аналогична записи A).

CNAME (canonical name record) - указывает каноническое имя для псевдонима (одноуровневая переадресация). Служит для наследования поддоменом всех ресурсных записей указанного домена, за исключением NS. Например, если необходимо, чтобы для test.mydomain.ru были применены те же настройки DNS, что и для mydomain.ru, необходимо указать mydomain.ru в качестве CNAME-записи.

MX (mail exchange) - указывает на адрес почтового шлюза для домена. Состоит из двух частей: адреса узла и приоритета (чем число больше, тем ниже приоритет).

DKIM-подпись (DomainKeys Identified Mail) - технология e-mail-аутентификации, которая позволяет подтвердить подлинность отправителя. DKIM добавляет в сообщение цифровую подпись, удостоверяющую, что письмо действительно поступило с ящика на указанном домене. Наличие DKIM повышает доверие серверов-получателей к письму и тем самым снижает его шансы оказаться в папке "Спам" или вовсе быть отклоненным принимающим сервером.

NS (name server/сервер имен) - указывает на DNS-сервер, обслуживающий данный домен, т.е. указывает серверы, на которые домен делегирован. Данный тип записи критически важен для функционирования самой системы доменных имён.

PTR (pointer) — запись, которая "связывает" IP-адрес с доменным именем. Многие почтовые серверы при фильтрации входящей почты от спама проверяют наличие PTR-записи и ее соответствие имени сервера-отправителя.

SOA (Start of Authority/начальная запись зоны) - запись описывает основные/начальные настройки зоны, определяет зону ответственности данного сервера. Для каждой зоны должна существовать только одна запись SOA.

TXT - запись содержит вспомогательную информацию о домене (запись произвольных двоичных данных).

На самом деле, количество ресурсных записей намного больше, но не все они часто используются, а некоторые и вовсе устарели. Полный список ресурсных записей для домена доступен здесь - https://ru.wikipedia.org/wiki/Типы_ресурсных_записей_DNS.

Почему домены начинают работать не сразу?

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