![bind9: o encaminhamento para o servidor de nomes local não funciona quando a conexão com a Internet está inoperante](https://rvso.com/image/770105/bind9%3A%20o%20encaminhamento%20para%20o%20servidor%20de%20nomes%20local%20n%C3%A3o%20funciona%20quando%20a%20conex%C3%A3o%20com%20a%20Internet%20est%C3%A1%20inoperante.png)
Eu tenho a seguinte configuração:
Uma instância bind9 (referida como L abaixo) em hardware muito limitado para resolver os nomes em minhas redes locais. É um mestre autorizado para a zona home.mydomain.com. As consultas a este servidor funcionam e retornam homedns.home.mydomian.com como NS e o IP 192.168.1.77 dele como um registro adicional.
Uma instância bind9 (referida como M abaixo) para resolver nomes locais e da Internet. Nenhuma opção de encaminhamento global é usada aqui. Há uma zona direta configurada:
zone "home.mydomain.com" in {
type forward;
forward only;
forwarders { 192.168.1.77; };
};
Nota 1: meudominio.com é um domínio registrado existente, mas não há registro para home.meudominio.com
Nota2: A versão bind9 do M é muito antiga: 9.8.1-P1
Esta configuração funciona enquanto a conexão com a Internet estiver ativa, mas as consultas de nomes locais não serão respondidas quando a conexão estiver inoperante. Log é syslog é
Aug 30 09:05:42 M named[1611]: error (no valid DS) resolving 'xxx.home.mydomain.com/A/IN': 192.168.1.77#53
Capturar a rede para uma resolução bem-sucedida quando a conexão estiver ativa revela que M consulta meudominio.com na internet após receber a resposta de L. Na resposta de M para o cliente, a SEÇÃO DE AUTORIDADE é alterada:
cavar para L:
;; ANSWER SECTION:
syslog.home.mydomain.com. 3600 IN A 192.168.1.99
;; AUTHORITY SECTION:
home.mydomain.com. 3600 IN NS homedns.home.mydomain.com.
;; ADDITIONAL SECTION:
homedns.home.mydomain.com. 3600 IN A 192.168.1.77
cavar para M:
;; ANSWER SECTION:
syslog.home.mydomain.com. 2134 IN A 192.168.1.99
;; AUTHORITY SECTION:
net. 171334 IN NS j.gtld-servers.net.
net. 171334 IN NS m.gtld-servers.net.
net. 171334 IN NS i.gtld-servers.net.
net. 171334 IN NS k.gtld-servers.net.
net. 171334 IN NS g.gtld-servers.net.
net. 171334 IN NS e.gtld-servers.net.
net. 171334 IN NS h.gtld-servers.net.
net. 171334 IN NS a.gtld-servers.net.
net. 171334 IN NS d.gtld-servers.net.
net. 171334 IN NS f.gtld-servers.net.
net. 171334 IN NS b.gtld-servers.net.
net. 171334 IN NS c.gtld-servers.net.
net. 171334 IN NS l.gtld-servers.net.
Não entendo porque M não está apenas retornando a resposta de L para o cliente e não tenho mais ideias, o que poderia tentar evitar a consulta à internet pela zona encaminhada.
Responder1
A entrada de log citada na pergunta sugere que o erro está vinculado à falha na validação do DNSSEC quando não há conectividade com a Internet.
Observe a parte "nenhum DS válido" da mensagem de erro:
Aug 30 09:05:42 M named[1611]: error (no valid DS) resolving 'xxx.home.example.com/A/IN': 192.168.1.77#53
Presumivelmente, as respostas para consultas que atingem esta zona de encaminhamento são normalmente aceitas apenas porque a example.com
zona pública existe como uma zona não assinada (ou seja, há prova de não DS
como parte da delegação da example.com
zona adequada), mas quando esta prova não puder mais ser obtida como não há conectividade com a Internet, as respostas não podem mais ser aceitas, pois não é mais possível verificar se/como devem ser assinadas.
Uma opção seria assinar a home.example.com
zona e adicionar um estáticoâncora de confiançaespecificamente para esta zona.
Outra seria desabilitar seletivamente a validação; O BIND atual tem umvalidate-except
opção que permite especificar uma lista de nomes de domínio onde nenhuma validação deve ser realizada, conforme:
validate-except
Isto especifica uma lista de nomes de domínio nos quais e abaixo dos quais a validação DNSSEC não deve ser realizada, independentemente da presença de uma âncora de confiança nesses nomes ou acima deles. Isto pode ser usado, por exemplo, ao configurar um domínio de nível superior destinado apenas ao uso local, para que a falta de uma delegação segura para esse domínio na zona raiz não cause falhas de validação. (Isso é semelhante a definir uma âncora de confiança negativa, exceto que é uma configuração permanente, enquanto as âncoras de confiança negativas expiram e são removidas após um determinado período de tempo.)
Existe também a possibilidade de desabilitar totalmente a validação usando odnssec-validation
opção, o que eu não recomendaria se esta instância BIND tivesse uso mais amplo do que este encaminhamento específico.
(Observe que substituí o nome de domínio usado na pergunta porque example.com
parece improvável que a pergunta tenha qualquer relação com o nome de domínio a que faz referência ou com a empresa que a possui.)