Как включить файл в файл зоны (используя директиву $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 для включаемых (основных) файлов и файлов зон:

  1. Все RR в файле должны иметь один и тот же класс.

Таким образом, наличие записей NS и MX в одном и том же файле включения кажется запрещенным.

  1. Ровно один SOR RR должен присутствовать в верхней части зоны.

Задание записи SOA в файле $INCLUDE также запрещено.

  1. Если присутствуют делегации и требуется клейкая информация, она должна присутствовать.

Видимо клеевые записи разрешены так NS и конкретные A записи могут быть объединены в один включаемый файл...

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