Servidor DNS que é melhor ligação ou mydns?

4

Vou começar um novo site que vai exigir servidores DNS. Pode ter mais de 10.000 zonas e irá obter mais arquivos de zona à medida que crescemos. O problema é, qual software de servidor DNS você acha que é mais eficiente: mydns que usa o mysql para armazenar os dados ou bind que usa arquivos simples? Como esses servidores DNS lidam com balanceamento de carga para que possamos balancear a carga entre vários servidores para que qualquer um não sobrecarregue?

    
por Nesh A 27.06.2011 / 15:29

2 respostas

8

Para minha rotina, o BIND é melhor. É fácil de configurar, você não precisa reiniciar o BIND, exceto quando você atualiza o software. O que você deve procurar no BIND é o comando rndc. O Rndc permite recarregar uma zona individual, enquanto deixa o BIND em execução. Se você editou o arquivo de zona, o rndc publicará as mudanças imediatamente.

É absolutamente possível que o BIND seja executado em um banco de dados. Você precisa especificar algumas etapas na etapa ./configure.

Eu tenho algumas boas instruções, mas elas estão em russo. Vou tentar escrever um pequeno plano de ação.

  1. Supõe-se que o servidor MySQL já esteja instalado e configurado.
  2. Baixe o projeto mysql-bind de fora. o site link (lá, precisamos de dois arquivos: mysqldb.c e mysqldb.h).
  3. Ir para a pasta com o arquivo baixado para extrair:

    cd ~ / downloads / tar -xzf mysql-bind.tar.gz

  4. Pule para a porta e baixe o bind9 de origem (sua versão do mysql-bind foi projetada para este serviço). Embora não compile!

    cd / usr / ports / dns / bind9 extrair extrato

  5. Copie os arquivos baixados mysql-bind para fontes do bind:

    cp ~ / downloads / mysqldb.c /usr/ports/dns/bind9/work/bind-x.x.x/bin/named/ cp ~ / downloads / mysqldb.h /usr/ports/dns/bind9/work/bind-x.x.x/bin/named/include/named/

  6. Pule para a pasta com a fonte (work / bind-xxx) e faça as seguintes alterações: a) O arquivo bin / named / Makefile.in lê:

    DBDRIVER_OBJS = mysqldb. @ O @ DBDRIVER_SRCS = mysqldb.c

    Execute o comando mysql_config -cflags e grave a saída para uma variável DBDRIVER_INCLUDES (exemplo: DBDRIVER_INCLUDES = -I/usr/local/include/mysql -fno-strict-aliasing -pipe )

    Execute o comando mysql_config -libs e grave a saída para uma variável DBDRIVER_LIBS (exemplo: DBDRIVER_LIBS = -L/usr/local/lib/mysql-lmysqlclient-lz-lcrypt-lm )

    b) No arquivo bin/named/main.c :

    • Adicionando um arquivo de cabeçalho #include <named/mysqldb.h>
    • Dentro da função setup() , adicione uma chamada mysqldb_init() antes da linha ns_server_create() .
    • Dentro da função cleanup() , adicione mysqldb_clear (); depois de ns_server_destroy() .
  7. Instalar ligação:

    cd / usr / ports / dns / bind faço make install

  8. Crie para cada zona, sua tabela mysql:

    CREATE TABLE table_name ( nome varchar (255) padrão NULL, ttl int (11) padrão NULL, rdtype varchar (255) padrão NULL, rdata varchar (255) default NULL ) TYPE = MyISAM;

  9. Crie os registros necessários para a zona:

    INSERT INTO table_name VALUES ('mydomain.com', 259200, 'SOA', 'mydomain.com. webmaster.mydomain.com. 2008092901 28800 7200 86400 28800'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'NS', 'ns0.mydomain.com.'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'NS', 'ns1.mydomain.com.'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'MX', '10 mail.mydomain.com. '); INSERT INTO table_name VALUES ('w0.mydomain.com', 259200, 'A', '192.168.1.1'); INSERT INTO table_name VALUES ('w1.meudominio.com.br', 259200, 'A', '192.168.1.2');

  10. No arquivo named.conf, indique a zona correta:

    zone "smol.website.ru" { tipo mestre; notificar não; banco de dados "mysqldb database_name table_name mysql_ip_address senha de login"; };

  11. Preste atenção especial, na última linha deve especificar o nome de usuário e senha. As informações são armazenadas em um formato não criptografado, o que obviamente é perigoso! Portanto, existem duas maneiras: como algo complicado para manter o código no código codificado ou no banco de dados para criar um usuário login- "bind" e passar- "bind" e colocá-lo privilégio selecionar.
  12. Peço desculpas pelo meu inglês. Espero que isso ajude.
  13. a instrução é escrita para o freebsd, pois o Linux deve ser semelhante
por 27.06.2011 / 15:36
0
O

link criará tabelas para cada zona que você adicionar, é muito ruim se você vai hospedar mais de 100k de zonas.

    
por 29.06.2011 / 17:17