Estou tentando configurar o BIND para que ele capture toda e qualquer solicitação feita e os aponte para um conjunto específico de servidores NS e um registro A específico.
Eu tenho cerca de 500 domínios e estou adicionando novos na taxa de 10 a 15 por dia, portanto, não quero adicionar explicitamente uma zona para cada domínio.
Minha configuração atual é: no named.conf, tenho uma view (nomeada external) com a seguinte zona:
zone "." {
type master;
file "ext.zone";
};
Isso corresponde a todos os pedidos.
ext.zone é:
$ TTL 3600 @ EM SOA. root.nsdomain.com. ( 1; Serial 3600; Atualizar 300; Repetir 3600; Expirar 300); TTL de cache negativo EM NS ns1.example.com NO NS ns2.example.com ns1 EM A 192.0.2.4 ns2 IN A 192.0.2.5 * EM A 192.0.2.6
portanto, o objetivo é: para todas as solicitações de NS, retorne ns1.example.com
e ns2.example.com
para todas as solicitações de A, exceto onde está ns1.example.com
ou ns2.example.com
retorne 192.0.2.6
. Para ns1.example.com
retorno 192.0.2.4
, para ns2.example.com
retorno 192.0.2.5
.
Isso quase funciona, o único problema é que, quando faço uma escavação, recebo:
dig @localhost somedomain.example ; > DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3> @localhost somedomain.example ; (1 servidor encontrado) ;; opções globais: printcmd ;; Resposta obtida: ;; opcode: QUERY, status: NOERROR, identificação: 37733 ;; sinalizadores: qr aa rd; CONSULTA: 1, RESPOSTA: 1, AUTORIDADE: 2, ADICIONAL: 2 ;; SEÇÃO PERGUNTA: ; somedomain.example. EM UM ;; SEÇÃO DE RESPOSTA: somedomain.example. 3600 IN A 192.0.2.6 // conforme o esperado ;; SEÇÃO DA AUTORIDADE: . 3600 IN NS ns1.example.com. // esperado, não sei se o "." no início é ruim, no entanto. . 3600 IN NS ns2.example.com. // Veja acima. ;; SEÇÃO ADICIONAL: ns1.example.com. 3600 IN A 192.0.2.6 // não esperado, deve ser 192.0.2.4 ns2.example.com. 3600 IN A 192.0.2.6 // não esperado, deve ser 192.0.2.5
Como faço para corrigir isso? Estou fazendo algo horrível? Existe uma maneira melhor de fazer isso?