Как включить файл в файл зоны (используя директиву $INCLUDE) на сервере имен nsd
Я хочу включить файл в файл зоны в реализацию сервера имен nsd, используя $INCLUDE
директивы.
Когда я перезагрузить зону с nsd-control reload <zone>
Команда, в файле журнала я замечаю ошибку о том, что не найден включаемый файл.
Кто-нибудь знает, как включить файл в определение файла зоны? NSD, кажется, не хватает тщательной документации (например, BIND).
1 ответ
На основании вашего комментария:
На самом деле, я использую эту директиву:
$INCLUDE /usr/local/etc/nsd/zones/forward/COMMON
, Я хочу иметь в общем файле такие вещи, как SOA и NS, записи MX, которые одинаковы для всех зон / подзон
Мой первый ответ заключается в том, что установка записи SOA в главном включаемом файле - плохая идея, поскольку это означает, что все ваши DNS-зоны будут иметь одинаковый номер версии, и для обновления одной из них потребуется перезагрузить все зоны.
Использование директивы $INCLUDE установлено в RFC 1035 и является одной из целей проектирования. nsd
должен быть полностью RFC-совместимым.
Если вы не сталкиваетесь с простой ошибкой в разрешениях файловой системы, вероятно, вы выполняете требования, установленные в разделе 5.2 RFC 1035 для включаемых (основных) файлов и файлов зон:
- Все RR в файле должны иметь один и тот же класс.
Таким образом, наличие записей NS и MX в одном и том же файле включения кажется запрещенным.
- Ровно один SOR RR должен присутствовать в верхней части зоны.
Задание записи SOA в файле $INCLUDE также запрещено.
- Если присутствуют делегации и требуется клейкая информация, она должна присутствовать.
Видимо клеевые записи разрешены так NS
и конкретные A
записи могут быть объединены в один включаемый файл...
- Информация, представленная за пределами авторитетных узлов в зоне, должна быть связующей информацией, а не результатом возникновения или аналогичной ошибки.