Для создания файла зоны используются записи двух типов: инструкции, упрощающие создание файла, а также стандартные записи ресурсов, определяющие данные домена в файле зоны. Типов стандартных записей ресурсов существует довольно много, а инструкций всего четыре:
$INCLUDE filename
Указывает файл, содержащий данные, которые следует включить в файл зоны. Данные включаемого файла должны быть представлены допустимыми инструкциями или стандартными записями ресурсов. $INCLUDE позволяет разделить крупный файл зоны на несколько мелких, более управляемых фрагментов.
Имя файла (filename) интерпретируется относительно каталога, указанного в параметре directory в файле named.conf. К примеру, если файл named.conf узла crab указывает на каталог /etc посредством параметра directory, а файл зоны на узле crab содержит оператор SINCLUDE events, hosts, содержимое файла /etc/events.hosts включается в этот файл зоны. Если вы не желаете, чтобы имя файла интерпретировалось относительно этого каталога, укажите абсолютное имя, такое как /usr/dns/events.hosts.
SORIGIN domainname
Изменяет значение по умолчанию доменного имени, используемое в последующих записях файла зоны. Используйте эту команду для сохранения в файле зоны данных нескольких доменов. К примеру, оператор $0RIGIN events в файле зоны wrotethebook.com устанавливает доменное имя events.wrotethebook.com. Все последующие записи ресурсов интерпретируются относительно этого нового домена.
В named операторы $ORIGIN используются для организации информации сервера. Образ базы данных named, созданный по команде ndc dumpdb, - это один файл, в котором представлена вся информация, известная серверу.
Этот файл, named dump.db, содержит много записей $ORIGIN, позволяющих разместить информацию обо всех доменах в одном файле.
$TTL time-to-live
Определяет значение по умолчанию для TTL, используемое в записях ресурсов. Каждый файл зоны должен начинаться с инструкции $TTL, чтобы все записи ресурсов наверняка имели корректные значения TTL. Численное поле time-to-live определяет значение TTL в секундах. Может использоваться также смешанный формат значений. К примеру, 1w устанавливает TTL в одну неделю. Возможные значения для смешанного формата:
- w - недели
- d - дни
- h - часы
- m - минуты
- s - секунды
$GENERATE range template
Генерирует записи ресурсов для диапазона значений - на основе шаблона template, range - численный диапазон значений в формате минимум-максимум. $GENERATE создает RR-запись для каждого значения диапазона. Диапазон 1-9 приведет к созданию девяти различных записей. Тип создаваемых записей определяется шаблоном. Шаблон состоит из литеральных значений, в неизменном виде переходящих в окончательные записи, и символа $, который заменяется текущим значением из диапазона. Следовательно, если текущим значении из диапазона является 7, а шаблон представлен строкой $ CNAME $. first64, генерируется RR-запись 7 CNAME 7.first64.
Эти инструкции полезны для организации и управления данными в файлах зон, однако собственно информация базы основана на стандартных записях ресурсов. Все файлы, на которые ссылается named.conf, вносят вклад в создание базы данных DNS, так что все эти файлы состоят из стандартных записей ресурсов.