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?
Para definir um curinga de subdomínio,
bind
você deve usar o seguinte formato:Exemplo:
fonte
Com base na sua configuração
ns1.example.com
é192.0.2.4
ens2.example.com
é192.0.2.5
. Você precisa configurar a resolução de nomes do servidor NS no diretórioexample.com
zona para obter os IPs adequados.Espero me esclarecer. Volte para mim se precisar de mais informações.
fonte
Os curingas de DNS podem causar problemas!
Existem muitas maneiras de ir - desde scripts SHELL até servidores DNS baseados em SQL.
UPD. (2019-11) : Então, como eu disse há 8 anos , o SHELL-scripting é um caminho a percorrer e foi provado com a solução proposta pela resposta aceita "adicionando entrada de zona" - claramente não baseada no uso de curingas. ;-)
Em 2019, é ainda mais fácil encontrar recursos explicando as desvantagens dos curingas DNS e, embora a maioria deles tenha sido escrita "no início da Internet", eles ainda têm algum valor. Por exemplo, o RFC1912 menciona algumas coisas relacionadas ao uso de curingas DNS. A questão principal é explicada claramente como "…
Ele também tem alguns exemplos da vida real, meio antiquados.
fonte