BIND - список пересылок, используемых в нескольких зонах

BIND - список пересылок, используемых в нескольких зонах

Я настраиваю сервер имен BIND (v9.16).

Его основная цель — работать как обычный рекурсор для наших внутренних хостов. Однако для нескольких определенных зон (тех, которые мы размещаем) мне нужно настроить его как пересылку. Цель — избежать создания зависимости от корневых и TLD DNS-серверов и иметь возможность продолжать использовать наши внутренние сервисы даже в случае недоступности наших внешних сетевых подключений.

Это было легко настроить, вот соответствующие части моей конфигурации:

options {
    allow-recursion {
        // Here comes the list of our inside networks
    };

};

zone "somedomain.example" IN {
    type forward;
    forward first;
    forwarders {
        // Here comes the list of the primary servers for this zone
    };
// ... repeated for all forward zones

Эта настройка работает так, как и ожидалось, но с небольшим неудобством. Список основных серверов должен быть повторен для всех зон "forward". У нас их довольно много, все с адресами IPv4 и IPv6, и ^C/^V список для всех зон — не самая элегантная вещь, которую я видел, и не очень-то соответствует DRY.

Я знаю, что это forwardersутверждение также можно включить в глобальный optionsраздел, но из базовых экспериментов я понял, что это утверждение не применяется к зонам пересылки, оно предназначено только для сервера имен, работающего только с пересылкой (документация не совсем ясна, но упоминает, что «если forwardersутверждение отсутствует, [...] отменяется действие любых серверов пересылки в optionsутверждении»).

Есть ли способ создать именованный список пересылок, примерно так же, как мы создаем списки контроля доступа (ACL), и использовать это символическое имя в выписке forwardersвнутри соответствующих зон?

решение1

Как и многие другие демоны и службы, ISC Bind поддерживаетincludeдирективы в своих конфигурационных файлах.

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

Это сокращает вашу административную нагрузку, поскольку вам остается только хранить список пересылок в одном месте, и вам нужно копировать ссылку только туда, где это необходимо.

// "/var/named/includes/forwarders.conf"
// master list of forwarders

forwarders {
            192.0.2.21;
            192.0.2.88;
};

и затем в вашем named.conf:

zone "somedomain.example" IN {
    type forward;
    forward first;
    include "/var/named/includes/forwarders.conf";
}
zone "otherdomain.example" IN {
    type forward;
    forward first;
    include "/var/named/includes/forwarders.conf";
}

Связанный контент