DNS autoritativo com resposta padrão

2

Eu preciso configurar um DNS autoritativo para as zonas de 500K. Cerca de 90% das zonas são idênticas (exceto pelo nome de domínio, é claro).

Eu só encontrei o PowerDNS apropriado para essa tarefa - usando o Pipe Backend com script Perl que responde à resposta estática de qualquer domínio como um back-end secundário.

Existem outras alternativas?

    
por eitanpo 09.01.2011 / 17:42

3 respostas

1

Eu acabei usando o PowerDNS, mas com o SQL backend. Alterei as instruções SQL e adicionei o fallback a um domínio 'padrão' se o domínio solicitado não foi encontrado.

Funciona perfeitamente. A latência quase nunca é superior a 5 (alguns ajustes de configuração adicionais são necessários).

    
por 23.03.2011 / 10:19
2

Outra opção pode ser criar um arquivo de zona padrão como o seguinte:

$TTL 3600
@   IN  SOA ns1.company.com hostmaster.company.com (
            2011010101;
            3600;
            1800;
            604800;
            3600;
            )
@   IN  NS  ns1.company.com
@   IN  NS  ns2.company.com

@   IN  MX  10 mail.company.com

@   IN  A   192.0.2.1
www IN  A   192.0.2.2

Supondo que o acima foi chamado /etc/bind/default.zone , você pode adicionar entradas de zona como:

zone "domain1.com" {
    type master;
    file "/etc/bind/default.zone";
};
zone "domain2.com" {
    type master;
    file "/etc/bind/default.zone";
};

Nesse caso, se você consultar um domínio1.com ou domínio2.com, obterá as informações da zona padrão.

No entanto, esteja ciente, eu fiz isso apenas em pequena escala, e ele não foi testado com 500K de zonas, então eu não tenho certeza agora que o Bind irá estruturá-lo na memória. Por exemplo, não tenho certeza se ele carregará apenas o arquivo de uma zona e apontará todas as zonas para ele, ou se ele carregará o mesmo arquivo de zona 500 K vezes!

    
por 09.01.2011 / 18:22
0

para os powerdns definem como padrão um registro com nome vazio

nano /etc/pdns/pdns.conf

gmysql-any-query=select COALESCE(b.content,c.content,d.content,e.content,f.content) content, \
COALESCE(b.ttl,c.ttl,d.ttl,e.ttl,f.ttl) ttl, \
COALESCE(b.prio,c.prio,d.prio,e.prio,f.prio) prio, \
COALESCE(b.type,c.type,d.type,e.type,f.type) type, \
COALESCE(b.domain_id,c.domain_id,d.domain_id,e.domain_id,f.domain_id) domain_id, \
a.mydomain name \
from \
(select '%s' mydomain) a \
left outer join records b on b.name = SUBSTRING_INDEX(a.mydomain, '.', -4) and b.type = 'A' \
left outer join records c on c.name = SUBSTRING_INDEX(a.mydomain, '.', -3) and c.type = 'A' \
left outer join records d on d.name = SUBSTRING_INDEX(a.mydomain, '.', -2) and d.type = 'A' \
left outer join records e on e.name = SUBSTRING_INDEX(a.mydomain, '.', -1) and e.type = 'A' \
left outer join records f on f.name = SUBSTRING_INDEX(a.mydomain, '.', 0) and f.type = 'A' \
limit 1;
    
por 27.04.2012 / 10:10