Como você configura um servidor DNS para poder adicionar registros on-the-fly?

6

Eu preciso hospedar um aplicativo SaaS baseado em subdomínio em vários servidores. Os servidores são xx1.example.com, xx2.example.com e assim por diante. Eu quero ter um monte de sites yyy.example.com hospedados nesses servidores.

Como os sites são criados na hora, também preciso configurar os registros de DNS dinamicamente. Uma zona de caractere curinga de DNS não é dimensionada, pois acabarei superando o primeiro servidor e precisarei enviar novas instâncias para outras máquinas. Portanto, preciso ser capaz de apontar um subdomínio específico para um endereço IP específico.

Eu procurei por serviços DNS em nuvem baseados em API (o que seria ótimo), mas eles parecem absurdamente caros para minhas necessidades (muitas instâncias de baixo volume). A Rackspace tem um serviço gratuito de Cloud DNS, mas só chega a 500 zonas, e o suporte técnico me disse que eles estão reescrevendo a API, portanto, gostaria de evitar o serviço deles por enquanto.

Portanto, imaginei que configurarei meu próprio servidor DNS para essas zonas. Daí as perguntas: o que é um bom software de servidor DNS para essa necessidade específica que me permitirá criar zonas sem reiniciar?

Alguma sugestão? Obrigado!

    
por GomoX 25.10.2011 / 21:58

5 respostas

11

Se todos os registros que você irá adicionar forem um subdomínio de uma zona específica, você poderá facilmente configurar a ligação para atualizações dinâmicas. Em seguida, basta usar o nsupdate para enviar uma atualização para a zona.

Isso deve funcionar bem, se todos os novos registros forem registros em um domínio existente. Se você precisar adicionar dinamicamente outros domínios, isso não ajudará muito.

// zone config
// using ip only for authentication, should really use hmac auth
zone "example.com" {
        type master;
        file "/etc/bind/dyn/example.com.dns";
        allow-query {any;};
        allow-update {
                127.0.0.1;
                192.0.2.0/24;
        };
};

Atualize o script usando o nsupdate .

#!/bin/bash
record=yyy.example.com
(
 echo "server xx1.example.com"
 echo "zone example.com"

 echo "update delete ${record} A"
 echo "update add ${record} ${ttl} A 192.0.2.1"
 echo "send"
) | /usr/bin/nsupdate
    
por 25.10.2011 / 22:59
3

Eu uso myDNS Ele funciona muito bem e é simples, ele também pode trabalhar facilmente com o BIND. Há outros que estão por aí, como o PowerDNS e outros.

    
por 25.10.2011 / 22:05
3

bind é capaz de (re) carregar arquivos para domínios únicos sem reiniciar no todo.

    
por 25.10.2011 / 22:08
3

ou vá com a interface rndc de bind ou o que eu prefiro: use o PowerDNS

    
por 25.10.2011 / 22:41
0

As atualizações do djbdns são inteiramente transparentes - sem interrupções - e a estrutura 'zonefile' é ideal para modificação e automação de scripts. O formato de gravação é completamente diferente do BIND, mas não é tão difícil de entender quanto parece à primeira vista. Altamente recomendado.

    
por 25.10.2011 / 22:15