DNS — (Domain Name System или система доменных имён) это стандарт, который позволяет представлять адреса в сети не в виде набора цифр, а в виде буквенного названия сайта. Людям гораздо проще запомнить и ввести адрес, например, tendence.ru вместо IP 91.232.243.105. Для компьютеров же наоборот, адреса должны быть представлены в числовом виде. Посредником, выполняющим преобразование из одной формы в другую, и выступает DNS.
DNS-серверы — это специальные машины, с которыми мы ежедневно связываемся, используя интернет. Задача DNS состоит в том, чтобы хранить связи между доменными именами и IP-адресами, сопоставленными с ними. Запрашивая в браузере сайт по адресу домена, мы обращаемся к какому-либо из DNS-серверов. Он определяет IP-адрес и возвращает его браузеру или другой программе, чтобы те могли подключиться к нужному сайту.
Принцип работы DNS похож на телефонную книгу в смартфоне. Необязательно запоминать номер телефона, достаточно сопоставить номер с контактом и находить нужного человека по имени. DNS-сервер является для пользователей такой же «адресной книгой», позволяя запоминать только название сайта.

DNS-сервер: как он работает
DNS-серверы в сети поддерживают в большинстве случаев хостинг-провайдеры и интернет-провайдеры. При запросе доменного имени к DNS-серверу от пользователя он в первую очередь ищет ответ в своём локальном кэше. Если искомых данных там не обнаружено, он транслирует запрос к вышестоящим серверам пока не получит в ответ адрес сервера, обслуживающего искомый домен (авторитетный сервер). Повторив запрос к авторитетному серверу, DNS получает окончательный ответ и передаёт его пользователю. Полученные данные о зоне сохраняются в памяти DNS-сервера (кэше) для того, чтобы при повторном обращении предоставить её быстрее.
Какие бывают DNS-серверы
Master и Slave серверы
DNS-серверы делятся на ведущие (Master) и ведомые (Slave). Изменения в доменной зоне с ведущих серверов копируются на ведомые, но не наоборот. На запросы пользователей к зоне и ведущие и ведомые серверы отвечают одинаково. Поэтому в случае выхода из строя любого количества DNS-серверов кроме одного, зона продолжит функционировать — пока существует хоть одна её рабочая копия.
Авторитетные и кэширующие серверы
Иерархия DNS начинается с корневых серверов. Корневые серверы хранят информацию о самой высшей, «корневой» доменной зоне всего интернета. В них поддерживаются данные о доменах верхнего уровня (TLD — Top Level Domains): .RU, .COM, .NET, .ORG и других, от них же можно получить список DNS-серверов каждого из доменов TLD. Для обеспечения отказоустойчивости более 1700 корневых серверов размещено в разных странах по всему миру и управляется 12 различными организациями.
Авторитетные для своей зоны серверы хранят ресурсные записи для неё и отвечают на запросы пользователей. Именно они в конечном счёте ответственны за преобразование имён в IP-адреса в своём домене. Если в сети не останется авторитетных для домена серверов, он не будет работать. Корневые серверы являются частным случаем авторитетных.
Кэширующие DNS-серверы самостоятельно не поддерживают доменных зон, но при обращении к ним пользователя запрашивают нужные зоны у корневых серверов, дают ответ и кэшируют зону у себя. Это позволяет сократить нагрузку на корневые серверы и уменьшить время отклика на запрос. Также их называют рекурсивными серверами, так как запрос пользователя они переадресуют к авторитетным серверам.
Доменные зоны
На DNS-сервере вся информация об именах домена хранится в одном текстовом файле. Содержимое такого файла называется зоной домена. В ней описаны все существующие имена для этого домена и их значения. Такие пары имя-значение получили название «ресурсные записи». Различные ресурсные записи предназначены для хранения значений разных типов.
Ресурсные записи
Существует множество различных типов ресурсных записей для разных целей. Наиболее часто используются следующие:
- A-запись — адресная запись, возвращает IPv4-адрес сервера. Именно она в большинстве случаев отвечает за преобразование доменного имени в IP-адрес при обращении к сайту.
- AAAA-запись — аналогичная предыдущей адресная запись, возвращающая адрес сервера по новому протоколу IPv6. Несмотря на дефицит IP-адресов привычной четвертой версии широкого распространения IP шестой версии пока не получил, поэтому обычно такие записи создаются в дополнение к основной A-записи.
- MX-запись — Mail eXchanger, точка обмена почтой или запись, указывающая на размещение почтового сервера домена, который обрабатывает электронную почту. Если MX-запись в зоне домена не указана, отправить Email на его адреса невозможно.
- TXT-запись — произвольная текстовая запись, имеющая отношение к домену. В ней могут храниться, например, проверочные коды для подтверждения домена при добавлении в какой-либо сервис или при выпуске SSL-сертфиката. Также в ресурсных TXT-записях хранятся криптографические ключи домена DKIM, политики SPF и DMARC.
- CNAME-запись — Сanonical Name, каноническое имя хоста или фактически ссылка с одного имени на другое. Если множество доменных имён должно указывать на один и тот же IP-адрес, вместо многократного указания одинаковых сопоставлений A-записи удобнее указать CNAME как ссылку второго и последующего имён на первое. Часто применяется для www-имени почти всегда указывающего на корневую запись домена. При переезде сервера на другой IP-адрес достаточно изменить его только у A-записей, чтобы все указывающие на них CNAME обновились.
- PTR-запись — PoinTeR или запись-указатель. Применяется для обратного преобразования IP-адреса в доменное имя. Необходимая запись для почтового сервера, без неё большинство других серверов электронной почты в сети откажутся принимать сообщения от него с ошибкой
No PTR records found
или подобной. В отличие от других записей, настраиваемых владельцем домена, PTR указывается в обратной зоне DNS владельцем IP-сети. Как правило, это хостинг или интернет-провайдер. - SRV-запись — SeRVice или запись о службе. Позволяет определить не только IP-адрес сервиса, но и протокол, порт, время жизни, приоритет, вес и некоторые другие характеристики для подключения к нему. Может использоваться для указания на серверы SIP-телефонии, сервисы мгновенного обмена сообщениями XMPP и другие.
- NS-запись — Name Server или запись о сервере имён указывает на DNS-серверы, обслуживающие эту доменную зону. Указанные в NS-записях хосты хранят копию доменной зоны и отвечают на запросы к ней.
- SOA-запись — Start Of Authority содержит административную информацию о зоне. В частности здесь содержатся даты последних изменений в ней (серийный номер зоны), данные о допустимом времени жизни полученных от неё ответов (TTL — Time To Live), адрес ведущего (Master) DNS-сервера и адрес электронной почты ответственного лица.
ПО DNS-серверов
Программное обеспечение DNS-серверов представлено в основном решениями с открытым исходным кодом. К ним относятся:
- BIND — наиболее распространённый сервер. Большинство корневых серверов интернета работают под его управлением.
- PowerDNS — сервер, разработанный для высоконагруженных проектов.
- NSD — сервер доменных имён реализующий функционал только авторитетного сервера и разработанный с особым вниманием к безопасности.
Пропиентарным коммерческим DNS-сервером является Microsoft DNS. Он поставляется в составе операционной системы Windows Server и применяется в основном внутри корпоративных локальных сетей для поддержания работы службы каталогов Active Directory и других служб Microsoft.
Заключение
DNS-серверы — становой хребет известного нам сегодня интернета. Без них привычное нам пользование сетью было бы невозможно. При выходе из строя системы доменных имён передать что-то даже через работающие линии связи в большинстве случаев будет крайне затруднительно, если вообще получится. Экономика любой развитой страны понесёт значительные убытки, если DNS хотя бы частично перестанет работать.
Хостинг-провайдер Tendence.ru бесплатно представляет 3 авторитетных географически распределённых DNS-сервера для отказоустойчивой поддержки доменных зон и бесперебойного функционирования бизнеса заказчиков.