BIND - lista de reenviadores utilizados en varias zonas

BIND - lista de reenviadores utilizados en varias zonas

Estoy configurando un servidor de nombres BIND (v9.16).

Su objetivo principal es funcionar como recurso habitual para nuestros servidores internos. Sin embargo, para un par de zonas específicas (las que hospedamos), necesito configurarlo como reenviador. El objetivo es evitar crear una dependencia de los servidores DNS raíz y TLD, y poder continuar utilizando nuestros servicios internos incluso en el caso de que nuestras conexiones de red externas no estén disponibles.

Esto fue fácil de configurar, aquí las partes relevantes de mi configuración:

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

Esta configuración funciona como se esperaba, pero con un pequeño inconveniente. La lista de servidores primarios debe repetirse para todas las zonas "adelante". Tenemos bastantes, todas con direcciones IPv4 e IPv6, y ^C/^V la lista de todas las zonas no es la cosa más elegante que he visto, ni es muy compatible con DRY.

Sé que la forwardersdeclaración también se puede incluir en la optionssección global, pero a partir de experimentos básicos entiendo que esta declaración no se aplica a las zonas de reenvío, solo está destinada a un servidor de nombres de solo reenvío (la documentación no es muy clara, pero menciona que "si no forwardershay declaración, [...] anulándose los efectos de cualquier reenviador en la optionsdeclaración").

¿Hay alguna manera de crear una lista de reenviadores con nombre, más o menos de la misma manera que creamos ACL, y usar este nombre simbólico en la forwardersdeclaración dentro de las zonas relevantes?

Respuesta1

Como muchos otros demonios y servicios, ISC Bind admite unaincludedirectiva en sus archivos de configuración.

Eso le permite mover una lista de ajustes de configuración y directivas a un archivo diferente, y puede hacer referencia a esa inclusión cuando sea necesario.

Eso reduce su carga administrativa a mantener solo su lista de reenviadores en un solo lugar y solo necesita copiar la referencia donde sea necesaria.

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

forwarders {
            192.0.2.21;
            192.0.2.88;
};

y luego en tu nombre.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";
}

información relacionada