Estou tentando configurar, para chamar de alguma forma, um servidor DNS "mentiroso".
Quero dizer: um servidor DNS que atua como um cache DNS (escravo) para um servidor existente, mas com seu próprio subconjunto de registros para alguns nomes de domínio.
O comportamento desejado é, por exemplo:
-
Quando consultado para "host.domain.com". Se tiver uma entrada para ela em seu próprio banco de dados, responda com ela.
-
Se não estiver em seu banco de dados, pergunte ao mestre (e, opcionalmente, armazene essa resposta em cache).
Eu sei que posso colocar o bind9 como um servidor escravo mas, assim, todas as consultas serão respondidas com a mesma resposta que o servidor real seria respondido.
Claro, é uma configuração complicada, eu sei, mas tem um propósito útil:
Imagine que você tem serviços complexos (por exemplo, configuração e scripts de backup do Bacula no meu caso) e deseja testá-lo em servidores de produção reais antes de colocá-lo em produção real.
Se eu pudesse redirecionar temporariamente o DNS para esse DNS "mentiroso" de forma que todos os nomes sejam resolvidos normalmente, exceto alguns subconjuntos de hosts "mascarados", ele se comportará como uma configuração "real", mas sem bagunçando o armazenamento real de servidores de backup com backups de teste.
Claro, eu poderia usar uma lista de entradas no / etc / hosts , mas requer mais configuração e é mais propenso a erros (eu tenho os ambientes de teste totalmente automatizados com o Vagrant, mas os IPs podem mudar algumas vezes).
Clonar o servidor e usá-lo para fazer o teste, também requer mais trabalho e recursos e, mais uma vez, é mais propenso a erros porque depois dos testes, precisarei reconfigurar o servidor real manualmente enquanto, com o "dns deitado" "abordagem, eu só preciso restaurar o arquivo original resolv.conf.
Configurei com sucesso um servidor dns mestre para nosso domínio e ele resolve corretamente suas próprias entradas e consultas para outros domínios, mas não sabe sobre os dados dos servidores de domínio real.
Eu acho que deveria ser possível abordar com bind, mas eu não sei onde procurar ...