Bind com suporte a sdb/PostgreSQL

Este documento tem como objetivo demonstrar a implementação do bind com suporte de conexão ao SGDB PostgreSQL, assim possibilitando consultas de zonas DNS no banco de dados relacional PostgreSQL.

[ Hits: 21.195 ]

Por: Vagner Rodrigues Fernandes em 02/02/2007 | Blog: https://takedownsec.com.br/


Introdução



A contribuição "sdb/pgsqldb" foi incluída na versão 9.1.3 do Bind e vem sendo mantida pela ISC até a versão atual do mesmo. A própria ISC, mantenedora do Bind, relata que esta contribuição não é totalmente estável. Estou utilizando a contribuição e até o momento não tive nenhum problema relacionado. Esta contribuição possibilita que o bind consulte suas zonas de DNS diretamente no banco de dados PostgreSQL. Softwares e versões utilizados na experiência:
  • OpenBSD 4.0
  • bind 9.3.3
  • PostgreSQL Server/Client 8.1.4
  • pgsqldb.c 1.12.4.2.8.2

Obtendo, configurando e compilando o source code do bind

Primeiramente é necessário realizar o download do source code do bind, após este procedimento é necessário descompactar o pacote:

$ wget ftp://ftp.isc.org/isc/bind9/9.3.3/bind-9.3.3.tar.gz
$ tar -zxvf bind-9.3.3.tar.gz -C /dir-source-bind/

Após este processo acesse o diretório onde o pacote foi descompactado e copie as bibliotecas do pgsqldb para o diretório onde se encontra o source code do named:

$ cd /dir-source-bind/
$ cp ./contrib/sdb/pgsqldb/* ./bin/named/


É necessário alterar alguns parâmetros no Makefile.in (/dir-source-bind/bin/named/Makefile.in) do named, as linhas dos parâmetros estão vazias, estas linhas estão localizadas logo abaixo do comentário "# Add database drivers here". Elas devem ser preenchidas da seguinte forma:

DBDRIVER_OBJS = pgsqldb.@O@
DBDRIVER_SRCS = pgsqldb.c
DBDRIVER_INCLUDES = -I/usr/local/includes/postgresql/
DBDRIVER_LIBS = -lpq -L/usr/local/lib/postgresql/

No próximo procedimento devemos inserir o caminho da biblioteca pgsqldb.h no source code do named(/dir-source-bind/bin/named/main.c), abaixo do comentário "/* #include "xxdb.h" */" inserir a seguinte linha:

#include "pgsqldb.h"

No mesmo arquivo deve-se adicionar após o comentário "/* xxdb_init(); */" a seguinte linha:

pgsqldb_init();

O mesmo deve ser feito após o comentário /* xxdb_clear(); */ adicionando a seguinte linha:

pgsqldb_clear();

Antes de iniciar o processo de compilação é necessário criar os seguintes links simbólicos:

# ln -fs /usr/local/include/postgresql/ /usr/local/include/postgresql/pgsql
# ln -s /usr/local/lib/libpq.so.4.1 /usr/local/lib/postgresql/


Após todo procedimento, pode-se dar início a compilação do bind.

# cd /dir-source-bind/
# ./configure --prefix=PREFIX --exec-prefix=EPREFIX
# make
# make install


    Próxima página

Páginas do artigo
   1. Introdução
   2. Criando registros na base de dados PostgreSQL
   3. named.conf
Outros artigos deste autor

Configurando um servidor de FTP no OpenBSD

LFTP - Sophisticated File Transfer Program

Mantendo seu Slackware atualizado com o slackcurrent

Vacuum - otimizando sua base de dados PostgreSQL

CruxPorts4Slack - O ports para Slackware

Leitura recomendada

Flash 9 com som OSS

Criando um pinguim móvel com Fedora Core 1 e Siemens M50

IPv6 - Esclarecendo dúvidas

Configurando um arquivo de zona

Instalando Apache 1.3.33 com suporte a PHP no Slackware

  
Comentários
[1] Comentário enviado por alberto_neo em 22/02/2008 - 08:50h

Bom dia fera tranquilo estava lendo seu artigo e tive algumas duvidas gostaria de saber esse esquema que voce fez server apenas para adicionar um dominio ou poderia colocar mais de um e outra coisa essa funçao so existe para PostgreSQL

Att

Alberto_neo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts