Estou configurando um servidor de nomes BIND (v9.16).
Seu principal objetivo é funcionar como um recursor regular para nossos hosts internos. Porém, para algumas zonas específicas (aquelas que hospedamos), preciso configurá-lo como encaminhador. O objetivo é evitar a criação de dependência de servidores DNS raiz e TLD, e poder continuar usando nossos serviços internos mesmo no caso de indisponibilidade de nossas conexões de rede externas.
Isso foi fácil de configurar, aqui estão as partes relevantes da minha configuração:
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 configuração funciona conforme o esperado, mas com um pequeno inconveniente. A lista de servidores primários deve ser repetida para todas as zonas "avançadas". Temos alguns deles, todos com endereços IPv4 e IPv6, e ^C/^V a lista de todas as zonas não é a coisa mais elegante que já vi, nem é muito compatível com DRY.
Eu sei que a forwarders
declaração também pode ser incluída na options
seção global, mas a partir de experimentos básicos eu entendo que esta declaração não se aplica a zonas de encaminhamento, ela se destina apenas a um servidor de nomes somente de encaminhamento (a documentação não é clara, mas menciona que "se não forwarders
houver declaração, [...] anulando-se os efeitos de quaisquer transitários na options
declaração").
Existe uma maneira de criar uma lista nomeada de encaminhadores, mais ou menos da mesma forma que criamos ACLs, e usar esse nome simbólico na forwarders
instrução dentro das zonas relevantes?
Responder1
Como muitos outros daemons e serviços, o ISC Bind suporta uminclude
diretiva em seus arquivos de configuração.
Isso permite que você mova uma lista de definições de configuração e diretivas para um arquivo diferente e você pode fazer referência a essa inclusão onde for necessário.
Isso reduz a sua carga administrativa, mantendo apenas a sua lista de despachantes em um único local e você só precisa copiar a referência onde for necessária.
// "/var/named/includes/forwarders.conf"
// master list of forwarders
forwarders {
192.0.2.21;
192.0.2.88;
};
e então em você nomeado.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";
}