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.
- Supõe-se que o servidor MySQL já esteja instalado e configurado.
- Baixe o projeto mysql-bind de fora. o site link (lá, precisamos de dois arquivos: mysqldb.c e mysqldb.h).
-
Ir para a pasta com o arquivo baixado para extrair:
cd ~ / downloads / tar -xzf mysql-bind.tar.gz
-
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
-
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/
-
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ávelDBDRIVER_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ávelDBDRIVER_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 chamadamysqldb_init()
antes da linhans_server_create()
. - Dentro da função
cleanup()
, adicione mysqldb_clear (); depois dens_server_destroy()
.
- Adicionando um arquivo de cabeçalho #include
-
Instalar ligação:
cd / usr / ports / dns / bind faço make install
-
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;
-
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');
-
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"; };
- 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.
- Peço desculpas pelo meu inglês. Espero que isso ajude.
- a instrução é escrita para o freebsd, pois o Linux deve ser semelhante