Что такое файлы зон

Обновлено: 07.07.2024

Доменная система имён (DNS) – собственно, система, привязывающая IP-адрес к символьному имени домена. Система DNS работает по принципу иерархии и использует произвольное количество частей (доменов), разделяемых точкой. Корневые домены или домены верхнего уровня в сети Internet управляются центром InterNIC (Public Information Regarding Internet Domain Name Registration Services).

Для нахождения того или иного ресурса в сети система DNS использует DNS-сервера содержащие базу данных типа «IP-адрес – имя домена». Можно сказать, что вся информация о зонах хранится в файлах описания зон, а при запуске сервера она загружается в оперативную память. Поэтому, базой данных сервера называют всю совокупность файлов описания зон сервера.

Файлы зон содержат информацию о пространстве имен и могут содержать директивы и записи ресурсов. Директивы указывают серверу доменных имен на выполнение определённых задач или применение специальных настроек в зоне. Ресурсные записи определяют параметры зоны и соотносят пользователей с определёнными хостами. В файле зоны необязательно могут присутствовать директивы, но в нем обязательно должны быть ресурсные записи.

Пример файла зоны:

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

Директивы начинаются со знака доллара ($), после которого вводится имя директивы. Зачастую директивы пишут в начале файла зоны.

Ниже приведены часто используемые директивы:

$ TTL – Устанавливает значение времени жизни по умолчанию (TTL) для зоны. Это время, на протяжении которого запись ресурса этой зоны действительна в кэше других серверов. Каждая запись ресурса может содержать свое собственное значение TTL , который перекрывает эту директиву.

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

Пример записи SOA:

Serial – Серийный номер самого файла зоны. Серийный номер увеличивается каждый раз при изменении данных домена. Когда вторичный сервер проверяет необходимость обновления данных, он проверяет серийный номер записи SOA на первичном сервере.

TTL – Время жизни. Время, на протяжении которого запись ресурса этой зоны действительна в кэше других серверов.

*Обратите внимание, что временные промежутки можно вводить не только в секундах. Возможны варианты ввода данных в других форматах, например: 2w14h(2 недели 14 часов), 1d2h(1 день 2 часа), 4h30m(4 часа 30 минут), 30m45s(30 минут 45секунд), или любые другие варианты при использовании соответствующих букв. Кроме записи SOA, существуют другие ресурсные записи. Мы рассмотрим основные:

Запись А – запись соответствия имени хоста его IP-адресу.

Запись CNAME – запись канонического имени для псевдонима (одноуровневая переадресация). Данная запись используются для перенаправления трафика с субдомена, например почтового сервера, на другой сервер. Создание записи CNAME не нарушает работу электронной почты и других служб.

Запись NS (Name Server) – запись адреса узла отвечающего за доменную зону. Указывает на сервера DNS, ответственные за конкретный домен и его поддомены.

В этом материале мы разберем особенности применения директив управления при описании зон в master файлах. Кроме стандартных директив $ORIGIN и $INCLUDE будут также рассмотрены $TTL и $GENERATE.

Наиболее используемая директива управления - $ORIGIN. Она позволяет определять текущее имя домена. Поясним что это такое. При описании файла конфигурации named в качестве первого параметра директив primary, secondary (файл конфигурации BIND 4) и директивы zone (файл конфигурации BIND 8 или 9) указывается имя зоны, например:

/*
файл настройки для BIND 9
*/
options directory "/etc/namedb";
>;
zone "kyky.ru" in type master;
file "kyky.ru";
>;
zone "first.kyky.ru" in type slave;
file "first.kyky.ru";
masters ;
>;

Что делать, если нужно в описание зоны включить запись описания хоста из другой зоны, например из зоны делегированной данным сервером другому серверу:

Вообще говоря, основное назначение $ORIGIN - это упрощение содержания файла описания зоны при определении поддоменов в той же зоне, где описан и выше стоящий домен:

Еще несколько лет назад довольно часто можно было видеть в файлах описания зон следующую картину:

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

В этом случае отклик нашего сервера называют рефералом (refferal) и он содержит IP-адреса серверов доменных имен в качестве дополнительной информации. Эти адресные записи принято называть присоединенными (glue - буквально "приклеенные").

Новые версии BIND (4.9 и выше) отслеживают этот момент, а вот более старые версии такой проверки не делают. Администраторы системы доменных имен включали такие "приклеенные" записи для того, чтобы сэкономить на трафике (нет нужды опрашивать серверы доменных имен).

О "приклеенных" записях подробно поговорим позже при описании адресных и NS записей.

Директива $INCLUDE используется для того, чтобы в файл описания зоны можно было включить содержание другого файла. Так рекомендуется поступать при описании больших зон, разбивая их на небольшие фрагменты. При этом имя включаемого файла должно быть описано либо полностью от корня файловой системы, либо оно будет привязано к директории, указанной в файле named.boot или named.conf.

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

Рассмотрим теперь еще две директивы управления, которые сравнительно недавно появились в файлах описания зон: $TTL и $GENERATE.

Директива $TTL определяет время хранения записи описания ресурсов в кэше resolver, а если resolver "глупый" (stub), т.е. не имеет кэша и посылает только рекурсивные запросы, то $TTL будет определять время хранения RR в кэше локального сервера доменных имен, который выполняет запросы "глупого" resolver.

Директиву $TTL следует указывать прямо перед записью SOA в файле описания зоны. $TTL связана с определением 32-битового значения, поэтому может принимать значения от 0 до 2147483647(RFC 2181).

Вообще говоря, администратор серверов BIND версий 8 или 9 имеет возможность определять максимальное время кэширования для записи описания ресурса. Делается это в файле конфигурации named.conf. По умолчанию это время равно одной неделе.

В материале "Описание зоны. Формат записи описания ресурсов (RR)" было указано, что при переходе со старых версий BIND на новые не нужно изменять файлы описания зон, т.к. формат RR не изменился. Как теперь понятно, это не совсем так. Во всяком случае, изменилось назначение одного из атрибутов SOA и, как следствие стал необходима директива управления $TTL.

Конечно, разработчики BIND понимают, что в сети стоит большое число серверов, о которых администраторы просто забыли, а поэтому в BIND заложены разумные значения времена кэширования (TTL) по умолчанию.

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

host1 IN A 192.168.0.1
host2 IN A 192.168.0.2

host10 IN A 192.168.0.10

То запись с использованием $GENERATE будет выглядеть примерно так:

$GENERATE 1-10 $ IN A 192.168.0.$

Таким образом, 10 записей мы заменили одной.

Очень полезна данная запись в случае, когда нужно определять обратную зону для сети класса С (в нотации CIDR маскированы первые 24 бита), которая разбита провайдером на подсети, и эти подсети розданы различным клиентам (см. RFC 2317). Оставим саму проблему за кадром до того момента, когда нам действительно понадобится делегировать подобного рода обратные зоны, а здесь приведем только ту часть файла описания "обратной" зоны, в которой применяется директива управления $GENERATE:

В данном случае $GENERATE используется для производства однотипных RR.

Следует отметить, что $GENERATE это не стандартная директива, а расширение директив управления пакета BIND.

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

Содержание

Формат файла

Формат файла зоны определен в RFC 1035 (раздел 5) и RFC 1034 (раздел 3.6.1). Этот формат изначально использовался программным пакетом Berkeley Internet Name Domain (BIND), но был широко принят другим программным обеспечением DNS-серверов, хотя некоторые из них (например, NSD , PowerDNS ) используют файлы зоны только в качестве отправной точки для их компиляции в формат базы данных, см. Также Microsoft DNS с интеграцией Active Directory с базой данных.

Файл зоны - это последовательность записей для записей ресурсов. Каждая строка представляет собой текстовое описание, определяющее одну запись ресурса (RR). Описание состоит из нескольких полей, разделенных пробелами (пробелами или табуляциями) следующим образом:

namettlкласс записи тип записи данные записи

Поле имени можно оставить пустым. В таком случае запись наследует поле от предыдущей записи. Отдельно стоящий @ используется для обозначения текущего происхождения.

Поле ttl (time-to-live) указывает время, по истечении которого клиент доменного имени должен отбросить запись и выполнить новую операцию разрешения для получения свежей информации. Если ttl не указан, используется глобальный TTL, указанный в верхней части файла зоны.

Класс записи поля указывает пространство имен информации записи. Наиболее часто используемым пространством имен является Интернет, обозначенный параметром IN, но существуют и используются другие, например, CHAOS .

Тип записи поля - это аббревиатура для типа информации, хранящейся в последнем поле. , запись данных. Например: запись адреса (тип A для IPv4 или тип AAAA для IPv6) отображает имя домена из первого поля на IP-адрес в данных записи; запись почтового обменника (тип MX) определяет почтовый хост Simple Mail Transfer Protocol (SMTP) для домена.

Данные записи поля могут состоять из одного или нескольких информационных элементов, в зависимости от требований каждого типа записи. Например, для записи адреса требуется только адрес, а для записи почтового обменника - приоритет и доменное имя. Такие информационные элементы разделяются пробелом.

Записи ресурсов могут располагаться в файле зоны в любом порядке, за некоторыми исключениями. Для удобства форматирования записи ресурсов могут занимать несколько строк, заключая в круглые скобки набор параметров, которые занимают несколько строк, но принадлежат одной и той же записи. Файл может содержать текст комментария, предшествующий такому тексту точкой с запятой, либо в начале строки, либо после последнего поля в любой строке, либо в пустой строке. Комментарии заканчиваются в конце строки. Файл зоны может содержать любое количество пустых строк с комментариями или без них.

Файл зоны может также содержать различные директивы, которые помечены ключевым словом, начинающимся со знака доллара. Наиболее примечательным является ключевое слово $ ORIGIN, которое указывает начальную точку для зоны в иерархии DNS. Если это ключевое слово не указано в файле зоны, серверное программное обеспечение делает вывод о происхождении по ссылке на файл зоны в его конфигурации сервера.

На файл зоны ссылается файл конфигурации программного обеспечения сервера имен, такой как bind , обычно такой оператор, как:

Корневая зона и домены верхнего уровня

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

Localhost

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

Пример ручной настройки зоны пересылки для localhost:

Соответствующее определение обратной зоны:

В этом файле не указано происхождение, поэтому его можно использовать как для IPv4, так и для IPv6 с такой конфигурацией:

Подобные главные файлы зоны могут быть созданы для обратного разрешения широковещательного адреса и нулевого адреса. Такие файлы зоны не позволяют DNS-серверу обращаться к другим, возможно внешним DNS-серверам.

Domain Name System (DNS) файл зона является текстовым файлом , который описывает зону DNS . Зона DNS - это подмножество, часто один домен, иерархической структуры доменных имен DNS. Файл зоны содержит сопоставления между доменными именами и IP-адресами и другими ресурсами, организованные в виде текстовых представлений записей ресурсов (RR). Файл зоны может быть либо главным файлом DNS, авторитетно описывающим зону, либо его можно использовать для перечисления содержимого кэша DNS.

СОДЕРЖАНИЕ

Формат файла

Формат файла зоны определен в RFC 1035 (раздел 5) и RFC 1034 (раздел 3.6.1). Этот формат изначально использовался программным пакетом Berkeley Internet Name Domain (BIND), но был широко принят другим программным обеспечением DNS-серверов, хотя некоторые из них (например, NSD , PowerDNS ) используют файлы зоны только в качестве отправной точки для компиляции. их в формат базы данных, см. также Microsoft DNS с интеграцией базы данных Active Directory .

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

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

Директивы - это управляющие записи, которые влияют на остальную часть файла зоны. Первое поле директивы состоит из знака доллара, за которым следует ключевое слово:

  • За $ ORIGIN следует имя домена, которое будет использоваться в качестве источника для последующих относительных доменных имен.
  • За $ INCLUDE следует имя файла и необязательное имя исходного домена, которое будет использоваться при интерпретации его содержимого (которое обрабатывается так, как если бы оно появилось в родительском файле, с последующим сбросом на исходное значение, предшествующим оценке директивы).
  • За $ TTL, определенным в RFC2308 (раздел 4), следует число, которое будет использоваться в качестве TTL по умолчанию (время жизни) .
  • $ GENERATE, нестандартное расширение, принимаемое BIND и некоторым другим программным обеспечением серверов имен для вставки нескольких записей ресурсов с одной записью, сопровождается кратким представлением возрастающей последовательности неотрицательных чисел, а затем шаблоном записи RR. Запись ресурса добавляется для каждого числа в последовательности с использованием шаблона, в котором неэкранированные символы «$» заменяются номером.

Запись ресурсной записи состоит из нескольких полей, как показано ниже (оба порядка полей приемлемы и могут использоваться взаимозаменяемо):

имя ttl класс записи тип записи записывать данные
имя класс записи ttl тип записи записывать данные

Поле имени можно оставить пустым. Если это так, запись наследует поле от предыдущей записи. Отдельный символ @ используется для обозначения текущего происхождения.

Поле ttl указывает количество секунд, по истечении которых кэширующий клиент должен отбросить запись и выполнить новую операцию разрешения для получения свежей информации. Некоторые серверы имен, включая BIND, допускают нестандартные представления, в которых используются сокращения единиц времени (например, «2d» означает два 24-часовых дня или «1h30m» означает один час 30 минут). Его можно опустить, и в этом случае результирующее значение будет установлено из TTL по умолчанию (если определено) или из предыдущей записи.

Поле класса записи указывает пространство имен информации записи. Его можно опустить, и в этом случае результирующее значение будет установлено из предыдущей записи. Наиболее часто используемым пространством имен является Интернет, указываемый параметром IN , но существуют и используются другие пространства , например CHAOS .

Поле типа записи - это сокращение от типа информации, хранящейся в последнем поле данных записи . Например: запись адреса (тип A для IPv4 или тип AAAA для IPv6) сопоставляет имя домена из первого поля с IP-адресом в данных записи; почтовый обменник запись (типа MX ) указывает Simple Mail Transfer Protocol (SMTP) почтовый хост для домена.

Поле данных записи может состоять из одного или нескольких информационных элементов, в зависимости от требований каждого типа записи. Например, для записи адреса требуется только адрес, а для записи почтового обменника - приоритет и доменное имя. Такие информационные элементы представлены в виде полей, разделенных пробелом.

Пример файла

Как минимум, в файле зоны должна быть указана запись Start of Authority (SOA) с именем полномочного главного сервера имен для зоны и адресом электронной почты лица, ответственного за управление сервером имен (представленное в виде имени домена с точка полной остановки вместо обычного символа @). Параметры записи SOA также определяют список параметров времени и срока действия (серийный номер, период обновления ведомого устройства, время повтора ведомого устройства, время истечения срока действия ведомого устройства и максимальное время кэширования записи). Некоторым серверам имен, включая BIND, также требуется как минимум одна дополнительная NS-запись.

На файл зоны ссылается файл конфигурации программного обеспечения сервера имен. Например, BIND обычно использует такой оператор, как:

Корневая зона и домены верхнего уровня

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

Localhost

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

Пример ручной настройки прямой зоны для localhost следующий:

Соответствующее определение обратной зоны:

В этом файле не указано происхождение, поэтому его можно использовать как для IPv4, так и для IPv6 с такой конфигурацией:

Подобные главные файлы зоны могут быть созданы для обратного разрешения широковещательного адреса и нулевого адреса. Такие файлы зоны не позволяют DNS-серверу обращаться к другим, возможно внешним DNS-серверам.

Читайте также: