Что такое доменная зона ресурсная запись
Что такое ресурсные записи DNS
DNS (система доменных имен) – это «телефонная книга» Интернета. В качестве номера телефона в ней выступает IP-адрес, а в качестве наименований контактов — домены. В такую книгу можно внести не только «телефонный номер», но и дополнительную информацию о контакте («е-mail», «место работы» и т.п.).
Информация о домене хранится на DNS-серверах. Чтобы внести её в систему DNS, нужно прописать ресурсные записи. С их помощью серверы делятся сведениями о доменах с другими серверами. Пока не прописаны ресурсные записи для домена, его нет в «телефонной книге» Интернета. Следовательно, работа сайта или почты на нём невозможна. Прежде чем приступать к указанию ресурсных записей, нужно делегировать домен, то есть прописать для него DNS-серверы. Вы можете сделать это по инструкции: Как прописать DNS-серверы для домена в Личном кабинете. Затем переходите к ресурсным записям. Изменения вступят в силу после обновления DNS-серверов (обычно до 24 часов).
Основные ресурсные записи: записи типа A, CNAME, MX, TXT и SPF. С общей информацией по добавлению ресурсных записей вы можете познакомиться в статье: Настройка ресурсных записей в Личном кабинете.
Запись A
Запись A (address) — одна из ключевых ресурсных записей Интернета. Она нужна для связи домена с IP-адресом сервера. Пока не прописана А-запись, ваш сайт не будет работать.
Когда вы вводите название сайта в адресную строку браузера, именно по А-записи DNS определяет, с какого сервера нужно открывать ваш сайт.
Имя записи | Тип записи | Значение |
---|---|---|
site.ru | A | 123.123.123.123 |
shop.site.ru | A | 123.123.123.123 |
где 123.123.123.123 — IP-адрес нужного вам сервера.
Запись CNAME
CNAME (Canonical name) — запись, которая отвечает за привязку поддоменов (например, www.site.ru) к каноническому имени домена (site.ru) или другому домену.
Основная функция CNAME — дублирование ресурсных записей домена (A, MX, TXT) для различных поддоменов.
Примеры записи CNAME:
Имя записи | Тип записи | Значение |
---|---|---|
www.site.ru | CNAME | site.ru |
mail.site.ru | CNAME | webmail.hosting.reg.ru |
Если вы пропишете CNAME для поддомена www.site.ru и укажете значение site.ru, сайт будет открываться с того же IP-адреса, что и site.ru. Если вы пропишете CNAME для mail.site.ru и укажете значение webmail.hosting.reg.ru, то на mail.site.ru будут распространятся те же ресурсные записи, что для webmail.hosting.reg.ru.
Запись MX
MX-запись что это? Это запись, отвечающая за сервер, через который будет работать почта. Записи MX критически важны для работы почты. Благодаря им отправляющая сторона «понимает», на какой сервер нужно отправлять почту для вашего домена.
Имя записи | Тип записи | Приоритет | Значение |
---|---|---|---|
site.ru | MX | 10 | mx1.hosting.reg.ru |
site.ru | MX | 15 | mx2.hosting.reg.ru |
где mx1.hosting.reg.ru — нужный вам почтовый сервер.
Обычно указывается два почтовых сервера, чтобы в случае недоступности одного из них почта всё же была отправлена на другой. Приоритет записи определяет, на какой сервер нужно отправлять почту в первую очередь. Чем меньше число, тем выше приоритет. Таким образом, для доменного имени site.ru почтовый сервер mx1.hosting.reg.ru является основным, а mx2.hosting.reg.ru выступает второстепенным. Если приоритет одинаковый, сервер выбирается случайным образом.
Запись TXT
TXT (Text string) — запись, которая содержит любую текстовую информацию о домене. Записи TXT используются для различных целей: подтверждения права собственности на домен, обеспечения безопасности электронной почты, а также подтверждения SSL-сертификата. Часто применяется для проверок на право владения доменом при подключении дополнительных сервисов, а также как контейнер для записи SPF и ключа DKIM. Можно прописывать неограниченное количество TXT-записей, если они не конфликтуют друг с другом.
Запись SPF
SPF-запись (Sender Policy Framework) содержит информацию о списке серверов, которые имеют право отправлять письма от имени заданного домена. Позволяет избежать несанкционированного использования. Настройка SPF прописывается в TXT-записи для домена.
Имя записи | Тип записи | Значение |
---|---|---|
site.ru | TXT | v=spf1 include:_spf.hosting.reg.ru ip4:123.123.123.123 a mx |
где 123.123.123.123 — IP-адрес нужного вам сервера.
all — если письмо пришло с сервера, который не входит в вышеперечисленный список, его стоит проанализировать более тщательно. Также иногда используется -all — в этом случае письмо не проходит дополнительных проверок и сразу отвергается.
» и «-», для параметра «all» существуют ещё ключи:
Записи NS, PTR, SOA являются служебными и, как правило, настраиваются автоматически.
Запись NS
NS-запись (Authoritative name server) указывает на DNS-серверы, которые отвечают за хранение остальных ресурсных записей домена. Количество NS записей должно строго соответствовать количеству всех обслуживающих его серверов. Критически важна для работы службы DNS.
Запись PTR
PTR — обратная DNS-запись, которая связывает IP-адрес сервера с его каноническим именем (доменом). PTR-запись применяется для фильтрации почты. Для всех серверов виртуального хостинга REG.RU обратные DNS-записи прописываются автоматически. Если у вас заказан VPS или Dedicated-сервер, прописать PTR-запись можно по инструкции: Как настроить PTR-запись?
Запись SOA
SOA (Start of Authority) — начальная запись зоны, которая указывает, на каком сервере хранится эталонная информация о доменном имени. Критически важна для работы службы DNS. Подробнее о том, что такое SOA-запись и как её проверить, вы можете узнать в статье.
Часто задаваемые вопросы о DNS
Компьютеры в интернете не имеют имен, данные передаются с использованием сложных для запоминания IP-адресов (числовые адреса вида 123.123.123.123). Упростить работу с сайтами призвана система DNS (Domain Name System). Она преобразует доменное имя, которое вводит пользователь в браузере, в IP-адрес для доступа к серверу.
DNS-сервер — это сервер, на котором запущенно специальное программное обеспечение. Изначально назначение этого программно-аппаратного комплекса было хранение таблицы DNS-записей вида: «имя домена» — «IP-адрес», так называемых записей типа «А», например: Домен IP-адрес сервера nic.ru 115.115.115.115 Сейчас В системе DNS содержатся и другие ресурсные DNS-записи: «MX», «TXT», «CNAME» и др. Они необходимы для работы домена как адреса сайта, почты и многих других сервисов.
Ресурсные записи (DNS-записи домена) — это записи в системе доменных имен о соответствии имени и служебной информации о сервере, на которое это имя должно указывать. Каждая ресурсная запись необходима для работы определённой службы. Например, в ресурсную запись типа MX вносятся данные для корректной работы электронной почты на домене.
Без размещения информации о домене на DNS-серверах работа сайта или почты на нем невозможна. Для гарантии отказоустойчивости DNS-серверы прописываются парами — выход из строя одного сервера не скажется на доступности сайта.
Для изменения списка DNS-серверов следует:
Не влияет. Обращение в сети к DNS-серверам, указанным для домена, происходит случайным образом. Сами DNS-серверы должны быть настроены по отношению друг к другу как первичный и вторичный.
Динамический DNS — технология, которая позволяет назначать постоянное имя устройству с изменяющимся IP-адресом, обеспечивая доступ по доменному имени к сетевым устройствам — компьютерам, роутерам, веб-камерам и т.д. Динамический DNS поддерживается на всех тарифах услуги DNS-хостинг.
Для управления A, MX и другими ресурсными DNS-записями домена необходимо использовать услугу DNS-Хостинг. Подробнее ознакомиться с этой услугой и заказать её можно на нашем сайте. Если услуга DNS-хостинг у вас есть, изменения в файл зоны домена можно внести с помощью редактора DNS-Master.
Вероятно, при заполнении заявки на регистрацию доменного имени вы не указали DNS-серверы.
Да, можете. Для того чтобы делегировать домен без тестирования серверов, в настройках домена достаточно указать список DNS-серверов и нажать Сохранить изменения. Для указания списка DNS-серверов домена следуйте инструкции.
У DNS-сервера ns.www.com сменился IP-адрес. Для того чтобы информация об этом обновилась в DNS, нужно изменить информацию в зоне www.com. Обратитесь к администратору домена www.com или к своему провайдеру, который администрирует этот DNS-сервер.
Нужно в вышестоящем домене второго уровня сделать NS-запись для домена третьего уровня. Например, чтобы делегировать домен masha.test.ru, и при этом в качестве Primary и Secondary-серверов использовать ns.my-provider.ru, ns.myprovider.ru, нужно в зоне test.ru сделать такую запись:
masha | NS | ns.my-provider.ru. |
NS | ns.myprovider.ru. |
В вышестоящем домене второго уровня необходимо сделать NS-записи для домена четвертого уровня, например:
new.masha | NS | ns.my-provider.ru. |
NS | ns.myprovider.ru. |
Для отказа от рассылки сообщений технического характера нужно: перейти по ссылке, приведенной в последнем абзаце каждого направляемого вам сообщения; сделать запрос на исключение вашего адреса электронной почты из списка рассылки. Для направления запроса необходимо знать номер договора, в контактных данных которого указан ваш адрес электронной почты. Номер договора можно найти в любом из писем рассылки, от которой вы отказываетесь. На указанный в запросе email-адрес незамедлительно будет направлено письмо с просьбой подтвердить свое намерение исключить этот адрес из списка рассылки RU-CENTER. До тех пор, пока запрос не будет вами подтвержден, email-адрес не будет удален из контактных данных по договору.
Исправить серийный номер на наших вторичных DNS-серверах не представляется возможным как и изменить зону домена. Зона домена копируется с первичного DNS-сервера и все изменения производятся на первичном DNS-сервере.
Не поддерживает. Можно подписать зону на собственном первичном DNS-сервере и в случае отсутствия вторичных DNS-серверов, воспользоваться нашими, которые предоставляются в рамках услуги «Secondary». Наши вторичные DNS-серверы будут копировать зону, в том числе записи типа «DS», с первичного DNS-сервера, IP-адрес которого будет указан для наших вторичных серверов.
Давайте уже разберемся в DNS
Внимательный читатель найдет на этой картинке IPv6
Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.
Что такое DNS
DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.
Базовые штуки
Давайте взглянем на маппинг между именем и адресом:
Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:
Оставшаяся часть ответа описывает сам ответ:
Как видите, при обычном DNS-запросе происходит куча всего. Каждый раз, когда вы открываете веб-страницу, браузер делает десятки таких запросов, в том числе для загрузки всех внешних ресурсов вроде картинок и скриптов. Каждый ресурс отвечает за минимум один новый DNS-запрос, и если бы DNS не был рассчитан на сильное кэширование, то трафика генерировалось бы очень много.
Корневые DNS-сервера обслуживаются различными компаниями и государствами по всему миру. Изначально их было мало, но интернет рос, и сейчас их 13 штук. Но у каждого из серверов есть десятки или сотни физических машин, которые прячутся за одним IP.
Другие типы
Что не так с CNAME
Запросы к другим серверам
Давайте представим, что конфигурация DNS испорчена. Вам кажется, что вы исправили проблему, но не хотите ждать когда обновится кэш чтобы удостовериться. С помощью dig можно сделать запрос к публичному DNS-серверу вместо своего дефолтного, вот так:
Типичные ситуации
Давайте рассмотрим типичные ситуации, знакомые многим веб-разработчикам.
Редирект домена на www
Этот IP принадлежит Namecheap’у, и там крутится маленький веб-сервер, который просто делает перенаправление на уровне HTTP на адрес http://www.iskettlemanstillopen.com :
CNAME для Heroku или Github
Wildcards
Заключение
Надеюсь, теперь у вас есть базовое понимание DNS. Все стандарты описаны в документах:
Есть еще пара интересных RFC, в том числе 4034, который описывает стандарт DNSSEC и 5321, который описывает взаимосвязь DNS и email. Их интересно почитать для общего развития.
Как добавить запись типа A, AAAA, CNAME, MX, TXT, SRV для своего домена
В статье мы расскажем, как прописать DNS-записи A, АААА, CNAME, MX-запись, TXT и SRV для домена и для чего это нужно.
Ресурсные записи «передают» серверам интернета информацию о домене. Чаще всего их настраивают, чтобы: связать IP-адрес сайта с доменом (запись А), привязать поддомен к сервису (запись CNAME), настроить почту (запись MX), активировать SSL-сертификат, подтвердить право собственности на домен, настроить безопасную почту (запись TXT) и т.д.
Как добавить ресурсные записи для домена
Перед добавлением ресурсных записей определитесь, какие DNS-серверы прописаны для вашего домена.
1. Авторизуйтесь в Личном кабинете 2domains и кликните по нужному домену:
2. Ваши серверы указаны в блоке «DNS-серверы»:
Если для вашего домена прописаны DNS-серверы ns1.hosting.reg.ru и ns2.hosting.reg.ru, перейдите к статье Настройка ресурсных записей в панели управления. Если для вашего домена прописаны DNS-серверы ns1.reg.ru и ns2.reg.ru, следуйте инструкции ниже.
Обратите внимание: если для домена прописаны сторонние DNS-серверы, добавление и управление DNS записями происходит на стороне провайдера, который предоставил вам DNS-серверы.
1. Авторизуйтесь в Личном кабинете 2domains и кликните по нужному домену:
2. На открывшейся странице нажмите стрелочку в блоке «Управление зоной DNS».
3. Во всплывающей шторке кликните Добавить ещё одну запись:
4. Выберите тип записи, которую вы хотите добавить:
Как добавлять записи
5. Затем нажмите на иконку Карандаш:
6. Добавьте в DNS домена нужную ресурсную запись. Для этого следуйте соответствующей инструкции ниже.
А-запись
Запись A (address) — одна из ключевых ресурсных записей Интернета. Она нужна, чтобы связать домен с IP-адресом сервера. Пока не прописана А-запись, сайт не будет работать. Когда вы вводите название сайта в адресную строку браузера, по А-записи DNS определяет, с какого сервера нужно открывать ваш сайт.
Как добавить А-запись
Выполните шаги 1-6 инструкции выше.
Затем в поле Субдомен укажите имя поддомена или значок @ (если хотите выбрать ваш основной домен);
В поле Значение — IP-адрес сервера сайта, который будет открываться по имени домена. Узнать IP-адрес можно по инструкции: Как узнать и изменить IP-адрес сайта?
Нажмите Сохранить:
Готово, ресурсная запись успешно добавлена в зону домена.
Изменения вступят в силу в течение часа.
АААА-запись
АААА (IPv6 address record) ― запись, которая используется так же, как и А-запись, но для адресов формата IPv6.
Как добавить АAАА-запись
Выполните шаги 1-6 инструкции выше. Затем в полях ввода укажите:
Субдомен — имя поддомена или значок @ (если хотите выбрать ваш основной домен);
Значение — необходимый IPv6-адрес.
Нажмите Сохранить:
Готово, обновление зоны домена прошло успешно.
Изменения вступят в силу в течение часа.
CNAME-запись
CNAME (canonical name) — это запись, которая отвечает за привязку поддоменов (например, www.site.ru) к каноническому имени домена (site.ru) или другому домену. CNAME-запись дублирует ресурсные записи домена (A, MX, TXT) для поддоменов.
Важно: для одного и того же поддомена нельзя одновременно добавить CNAME-запись и A-запись.
Как добавить запись CNAME
Выполните шаги 1-6 инструкции выше.
Затем в поле Субдомен укажите поддомен, кроме @ (для вашего основного домена этот тип записи недоступен, вы можете воспользоваться A-записью);
В поле Значение — Canonical name — домен, на который должен ссылаться поддомен из поля «Subdomain».
Нажмите Сохранить:
Готово, ресурсная запись добавлена в зону домена.
Изменения вступят в силу в течение часа.
MX-запись
MX-запись отвечает за сервер, через который будет работать почта. Благодаря ей отправляющая сторона «понимает», на какой сервер нужно отправлять почту для вашего домена. MX-запись может выглядеть так: mx1.hosting.reg.ru. Чтобы почта могла функционировать, даже если один из серверов не работает, указывают два почтовых сервера. Например, mx1.hosting.reg.ru и mx2.hosting.reg.ru.
Как добавить MX-запись
Выполните шаги 1-6 инструкции выше.
Затем в полях ввода укажите:
Субдомен — поддомен или @ (если хотите выбрать почту вида логин@ваш_домен);
Значение — адрес сервера, который будет отвечать за работу почты на вашем домене;
Приоритет — приоритет записи (чем меньше цифра, тем выше приоритет записи).
Нажмите Сохранить:
Готово, DNS записи домена обновлены.
Изменения вступят в силу в течение часа.
TXT-запись
TXT (тext string) — запись, которая содержит любую текстовую информацию о домене. Часто применяется для проверок на право владения доменом при подключении дополнительных сервисов, а также как контейнер для записи SPF и ключа DKIM.
Как добавить TXT-запись
Выполните шаги 1-6 инструкции выше.
Затем в полях ввода укажите:
Субдомен — поддомен или @ (если хотите выбрать ваш основной домен);
Значение — значение записи TXT. Как правило, значение ТХТ отправляется на e-mail (например, для активации SSL-сертификата) или предоставляется компанией, услугу которой вы настраиваете.
Нажмите Сохранить:
Как указывать записи
Готово, ресурсная запись добавлена в зону домена.
Изменения вступят в силу в течение часа.
SRV-запись
Записи SRV используются для поиска серверов, которые обеспечивают работу определенных служб на данном домене (например, Jabber). Некоторые интернет-протоколы, такие как SIP и XMPP, часто требуют поддержки SRV-записей.
Как добавить SRV-запись
Выполните шаги 1-6 инструкции выше.
Затем в полях ввода укажите:
Сервис — название сервиса;
Приоритет — приоритет целевого хоста;
Нагрузка — относительный вес для записей с одинаковым приоритетом (необязательное поле);
Порт — порт TCP или UDP, на котором работает сервис;
Значение — каноническое имя сервиса.
Нажмите Сохранить:
Готово, ресурсная запись добавлена в зону домена.
Изменения вступят в силу в течение часа.
Как проверить записи домена
Проверить, корректно ли указаны записи, проще всего с помощью утилиты dig. Для этого введите домен, для которого добавляли ресурсные записи, выберите тип записи «ANY» и кликните Проверить. Так вы увидите все ресурсные записи вашего домена.
DNS сервер BIND (теория)
Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.
Основные понятия Domain Name System
Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов в глобальной сети, отслеживать и обслуживать базу имен на всех хостах стало нереально затруднительно. В результате придумали DNS, представляющую собой иерархическую, распределенную систему доменных зон. Давайте рассмотрим структуру Системы Доменных Имён на иллюстрации:
Доменная структура DNS представляет собой древовидную иерархию, состоящую из узлов, зон, доменов, поддоменов и др. элементов, о которых ниже пойдет речь. «Вершиной» доменной структуры является корневая зона. Настройки корневой зоны расположены на множестве серверов/зеркал, размещенных по всему миру и содержат информацию о всех серверах корневой зоны, а так же отвечающих за домены первого уровня (ru, net, org и др). Информация о серверах корневой зоны расположена на данном сайте корневых серверов. Настройки корневой зоны всегда доступны тут. Серверы корневой зоны обрабатывают и отвечают на запросы, выдавая информацию только о доменах первого уровня (то есть отвечают на любые запросы, как на нерекурсивные)! Итак, уже много раз повторилось слово зона. Пора этот термин объяснить.
Зона — это любая часть дерева системы доменных имен, размещаемая как единое целое на некотором DNS-сервере. Зону, для бОльшего понимания, можно назвать «зоной ответственности». Целью выделения части дерева в отдельную зону является передача ответственности (Делегирование) за эту ветвь другому лицу или организации. На иллюстрации, примеры зон выделены синим градиентом (зона name., зона k-max.name. со всем подчиненными ресурсами, www.openoffice.org со всем подчиненными поддоменами и ресурсами). На иллюстрации выделены не все зоны, а лишь некоторые для общего понимания и представления. В каждой зоне имеется, по крайней мере, один авторитетный сервер DNS, который хранит ВСЮ информацию о зоне, за которую он отвечает.
Домен — это именованная ветвь или поддерево в дереве имен DNS, то есть это определенный узел, включающий в себя все подчиненные узлы. Следующая цитата из книги Linux Network Administrators Guide хорошо проясняет картину относительно разницы между зоной и доменом:
Таким образом, пространство имен раздроблено на зоны ( zones), каждая из которых управляется своим доменом. Обратите внимание на различие между зоной (zone) и доменом (domain): домен groucho.edu затрагивает все машины в университете Groucho Marx, в то время как зона groucho.edu включает только хосты, которые работают в непосредственно компьютерном центре, например в отделе математики. Хост в отделе физики принадлежат другой зоне, а именно physics.groucho.edu.
Каждый узел в иерархии DNS отделен от своего родителя точкой. Если провести аналогию с файловой системой Linux, система доменных имен имеет похожую структуру, за тем исключением, что разделитель в файловой системе — слэш, а в DNS — точка. А так же DNS адрес читается справа налево (от корневого домена к имени хоста) в отличии от пути в файловой системе Linux. Доменное имя начинается с точки (корневого домена) и проходит через домены первого, второго и если нужно третьего и т.д. уровней и завершается именем хоста. Т.о. доменное имя полностью отражает структуру иерархии DNS. Часто (я бы сказал — всегда в повседневной жизни), последняя точка (обозначение корневого домена) в доменном имени опускается (то есть в браузере мы вводим не k-max.name., а k-max.name). Итак, разобрав структуру доменного имени, мы незаметно подошли к понятию FQDN.
FQDN (англ. Fully Qualifed Domain Name, полностью определённое имя домена) — это имя домена, однозначно определяющее доменное имя и включающее в себя имена всех родительских доменов иерархии DNS, в том числе и корневого. Своеобразный аналог абсолютного пути в файловой системе. Давайте разберем вышесказанное на примере имени домена mail.k-max.name:
Различие между FQDN и обычным доменным (неFQDN) именем появляется при именовании доменов второго, третьего (и т. д.) уровня. Для получения FQDN требуется обязательно указать в доменном имени домены более высокого уровня (например, mail является доменным именем, однако FQDN имя выглядит как mail.k-max.name.). Максимальный размер FQDN — 255 байт, с ограничением в 63 байта на каждое имя домена.
Поддомены, коротко говоря, это — подчиненные домены. По большому счету, все домены в интернете являются подчиненными за исключением корневого. Например домен k-max является поддоменом домена name, а name, в свою очередь — поддоменом корневого домена.
Ресурсные записи
Ресурсная запись — это то, собственно ради чего в конечном счете и существует DNS. Ресурсная запись — это единица хранения и передачи информации в DNS. Каждая такая запись несет в себе информацию соответствия какого-то имени и служебной информации в DNS, например соответствие имени домена — IP адреса.
Запись ресурса состоит из следующих полей:
Для бОльшего понимания, приведу пример. Делегирование управления поддоменом k-max.name другому лицу (в моем случае — хостеру) приводит к созданию новой зоны, которая администрируется независимо от остального пространства имен (независимо от вышестоящего name.). Зона k-max.name после делегирования полномочий теперь не зависит от name. и может содержать все (вернее сказать — любые имена, которые я захочу) доменные имена, которые заканчиваются на *.k-max.name. С другой стороны, зона name. содержит только доменные имена, оканчивающиеся на *.name., но не входящие в делегированные этой зоны, такие, например, как k-max.name или a-lab.name или любая другая. k-max.name может быть поделен на поддомены с именами вроде mail.k-max.name, ftp.k-max.name и некоторые из этих поддоменов могут быть выделены в самостоятельные зоны, и ответственность за данные зоны может так же быть делегирована. Если ftp.k-max.name будет являться самостоятельной зоной, то зона k-max.name не будет содержать доменные записи, которые заканчиваются на *.ftp.k-max.name.
Т.о. после делегирования ответственности, информация хранимая делегирующей зоной уже не включает информацию по делегированному поддомену и его ресурсным записям хостов, а хранит информацию о серверах имен, являющихся для делегируемого поддомена авторитативными. Это и есть «склеивающие» записи, о чем я выше уже говорил. В таком случае, если у DNS-сервера родительского домена запрашиваются данные об адресе, принадлежащем делегированному поддомену, в ответ предоставляется список DNS-серверов, которые обладают соответствующей информацией.
Серверы DNS
Выше, при рассмотрении типов ресурсных записей я упоминал о первичном и вторичном сервере. Кроме данных типов, существует еще один тип — кэширующий.
Главный сервер DNS (он же первичный, он же master, он же primary) — это авторитетный сервер (иногда называют — авторитативный, как правильнее называть — не знаю), который хранит главную копию файла данных зоны, сопровождаемую администратором системы.
Вторичный сервер — тоже является авторитетным, но он копирует главный файл зоны с первичного сервера. Отличие главного от вторичного лишь в том, что главный загружает свою информацию из конфигурационных файлов зоны, а вторичный — загружает (получает) настройки зон — с главного сервера. Вторичный DNS может получать свои данные и от другого вторичного сервера. Любой запрос относительно хоста в пределах зоны, за которую отвечает авторитетный сервер, будет в конце концов передан одному из этих серверов (главному или вторичному). Вторичных серверов может быть сколько угодно много. В зависимости от настроек, главный сервер может посылать вторичному сигнал о изменении зоны, при этом вторичный, получив сигнал производит копирование. Данное действие называется трансфер зоны (zone transfer). Существует два механизма копирования зоны: полное копирование (AXFR) и инкрементальное (incremental) копирование зоны (IXFR).
Кэширующие серверы НЕ АВТОРИТЕТНЫ, данные серверы хранят в памяти (кэше), ответы на предыдущие запросы, если данный сервер получил запрос, то он сначала просматривает информацию в кэше, и если в кэше не оказалось необходимого ответа, то отправляет запрос вышестоящему серверу DNS.
Возможно так же настроить DNS в режиме stels (т.н. невидимый), информацию о данном сервере невозможно получить используя прямые запросы. Это может быть полезно для организации primary сервера в защищенной среде и тем самым оградить зону от атак на зону.
Клиенты DNS (resolver)
Директива nameserver определяет адрес сервера доменных имен, который будет выполнять рекурсивные запросы resolver. В данном файле указано использовать север имен сначала 192.168.1.1 затем, если первый не смог обработать запрос, 192.168.1.2. Рекомендуется не использовать более 3х параметров nameserver. Если опция nameserver не задана, то резолвер попытается соединиться с сервером на локальном хосте. Параметр domain определяет заданное по умолчанию имя домена, которое будет подставлено, когда DNS не удастся найти имя хоста. Существует так же опция search, которая задает дополнительные домены, в которых необходимо произвести поиск и разрешение имени хоста. Опции search и domain нельзя использовать совместно.
Кроме кэша на ДНС сервере, существуют кэши интернет-браузеров, кэши резолверов. Довольно прозрачную картину предоставляет Wikipedia:
Запросы DNS
В DNS имеются следующие типы запросов: итеративный (он же прямой), обратный и рекурсивный.
Итеративный (он же прямой, он же нерекурсивный) запрос посылает доменное имя DNS серверу и просит вернуть либо IP адрес этого домена, либо имя DNS сервера, авторитативного для этого домена. При этом, сервер DNS не опрашивает другие серверы для получения ответа. Так работают корневые и TLD серверы.
Рекурсивный запрос посылает DNS серверу доменное имя и просит возвратить IP адрес запрошенного домена. При этом сервер может обращаться к другим DNS серверам.
Обратный запрос посылает IP и просит вернуть доменное имя.
Любой DNS-server должен отвечать на итеративные запросы. Возможно настроить DNS отвечать и на рекурсивные запросы. Если DNS не настроен отвечать на рекурсивные запросы, он обрабатывает их как итеративные.
Для решения данного вопроса DNS-серверы BIND используют метрику, называемую временем отклика (roundtrip time, или RTT), для выбора среди авторитативных DNS-серверов одной зоны. RTT определяет задержку, с которой приходит ответ на запросы от удаленного сервера. Каждый раз, при передаче запроса удаленному серверу, DNS-сервер BIND запускает внутренний таймер. Таймер останавливается при получении ответа, и метрика фиксируется локальным сервером. Если приходится выбирать один из нескольких авторитативных серверов, выбор падает на сервер с наименьшим показателем RTT.
До того как BIND впервые послал запрос какому-либо серверу и получил от него ответ, удаленному серверу присваивается случайное значение RTT, которое меньше, чем все прочие, полученные на основании замеров. Таким образом, DNS BIND гарантированно опросит все авторитативные серверы для определенной зоны случайным образом, прежде чем начнет выбирать предпочтительный на основании метрики.
Ответы DNS сервера
Обратное преобразование имен
DNS используется в первую очередь для преобразования доменных имён в IP-адреса, но он также может выполнять обратный процесс, называемый Обратное преобразование имен или обратным отображением. Т.к. записи в прямой базе DNS структурированы иерархически по доменным именам, DNS не может эффективно выполнять поиск по IP адресу в такой базе. Для обратного преобразования в DNS используется специальный домен in-addr.arpa. Ресурсные записи в данном домене в поле Name содержат IP-адреса, в поле Type — PTR, а в поле Data — FQDN-имя соответствующее данному IP.
На схеме представлена структура домена arpa. Думаю, что тут все довольно наглядно. Домен arpa. имеет 2 поддомена in-addr и ip6, отвечающие за IPv4 и IPv6 адреса соответственно. Домен in-addr.arpa. имеет от *.0.in-addr.arpa. до *.255.in-addr.arpa. поддоменов, каждый из которых так же имеет по 256 поддоменов.
В целях уменьшения объёма нежелательной корреспонденции (спама) многие почтовые серверы могут проверять наличие PTR записи для хоста, с которого происходит отправка. В этом случае PTR запись для IP адреса должна соответствовать имени отправляющего почтового сервера, которым он представляется в процессе SMTP сессии.
Наглядно приведенную схему можно представить командами:
Как и обещал, описываю ресурсную запись PTR в домене IN-ADDR.ARPA, соответствующая приведенной выше записи А для машины www.ru. будет иметь такой вид:
Регистрация доменных имен
В двух словах хотел бы затронуть вопрос регистрации доменных имен.
Регистрация доменов — это действие, посредством которого клиент сообщает регистратору, каким DNS-серверам следует делегировать поддомен, и также снабжает регистратора контактной и платежной информацией. Регистратор передает информацию в соответствующий реестр. Чаще всего, это процесс внесения в реестр зоны первого уровня (то есть в TLD зоны ru, com или др.), записи о новом доменном подимени.
Регистратор доменных имён — это организация, имеющая полномочия создавать (регистрировать) новые доменные имена и продлевать срок действия уже существующих доменных имён в домене, для которого установлена обязательная регистрация.
Услуга регистрации домена в большинстве случаев платная, цену и условия регистрации определяет регистратор. Для регистрации домена, необходимо выбрать свободное имя и отправить заявку на регистрацию у одного из регистраторов (например nic.ru), оплатить предоставление услуги. После подтверждения регистрации, необходимо в интерфейсе регистратора определить (делегировать) dns сервера, скорее всего это будут DNS вашего хостера.
В завершение статьи хочу отметить так же о таком маркетинговом нюансе, что иногда домены второго уровня называют именами доменов ПЕРВОГО уровня, тем самым «опуская» значение корневого домена и принимая за корневой домен — домены TLD.
Так же хочу отметить, что доменный адрес и IP-адрес не тождественны — один IP-адрес может иметь множество имён, что позволяет поддерживать на одном компьютере множество веб-сайтов (это называется виртуальный хостинг). Обратное тоже справедливо — одному имени может быть сопоставлено множество IP-адресов: это позволяет создавать балансировку нагрузки.
Резюме
Итак, в сегодняшней статье я постарался как можно понятней описать работы доменной системы имен. Надеюсь, это у меня получилось. Мы рассмотрели иерархическую структуру базы данных DNS, а так же рассмотрели процессы взаимодействия клиентов и серверов DNS, а так же разновидности серверов DNS. В следующей статье я рассмотрю практические вопросы установки и настройки DNS сервера BIND на Linux. Буду рад Вашим комментариям.
Что еще почитать:
Разместил с разрешения mcsim85, у которого еще нет полноценного аккаунта на хабре, но который за такие качественный статьи безусловно его заслуживает! На всякий случай ссылка на оригинал.