Användarverktyg

Webbverktyg


teknik:dlz_med_bind9_och_postgresql

DLZ med Bind9 och PostgreSQL

Arbete på det här dokumentet pågår fortfarande.

DLZ började som en patch till Bind9 men kan numera kompileras direkt från källkodspaketet av Bind9. I det här dokumentet bygger jag Bind 9.9.2-P1 på Debian Wheezy.

I det här dokumentet skapar jag en namnserver med Bind9 som ansluter med DLZ till en PostgreSQL databas över SSL.

I regel är det bäst att ha databasen på samma server som namnservern, för redundanta konfigurationer är det bäst att använda strömmande replikering i PostgreSQL 9.x för att replikera databasen till en eller flera namnservrar.

Installera paket

apt-get install libpq-dev libssl-dev postgresql-9.1
apt-get build-dep bind9

Ladda ner källkoden för Bind, och packa upp den.

tar -xvzf bind-9.9.2-P1.tar.gz
cd bind-9.9.2-P1

Kompileringen ska vara ganska enkel, men jag vill hålla en specialbyggd Bind isolerad till en egen katalog så vi lägger till prefix argumentet.

mkdir /var/bind
./configure --prefix=/var/bind --with-dlz-postgres --with-openssl=/usr --enable-static --enable-threads
make
make install

Konfigurera PostgreSQL

Innan vi kan starta Bind måste vi ha en databas för zoner, för detta dokumentet kör vi en ganska standard PostgreSQL 9.1 från Debian Squeeze backports eller Ubuntu Precise. De enda ändringarna är i /etc/postgresql/9.1/main/postgresql.conf.

listen_addresses = '127.0.0.1'

Ska självklart passa nätverket som servern står i, asterisk (*) lyssnar på alla gränssnitt.

Samt /etc/postgresql/9.1/main/pg_hba.conf.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
hostssl dlz             bind            127.0.0.1/32            md5

Även här måste ip-adresserna stämma överens med nätverket som servern står i. Bind-DLZ använder i regel SSL för att ansluta till PostgreSQL. Så enbart den sista raden hade varit nog om databasen är på samma server som Bind.

Skapa användaren och databasen som vanligt.

su postgres
postgres# createuser bind
# Svara nej på alla frågor
postgres# createdb -O bind dlz

I mitt fall skapar jag en databas som heter records med följande struktur.

create table records (
	zone text not null, 
	host text, 
	ttl integer not null default 86400, 
	recordtype varchar(16) not null, 
	mx_priority integer, 
	data text, 
	resp_person varchar(1024), 
	serial integer not null, 
	refresh integer not null default 43200, 
	retry integer not null default 21600, 
	expire integer not null default 604800, 
	minimum integer not null default 86400, 
	view varchar(64) not null
);

create index zone_index on records ("zone");
create index type_index on records ("type");
create index host_index on records ("host");

Se också

teknik/dlz_med_bind9_och_postgresql.txt · Senast uppdaterad: 2013-02-03 17:59 av stemid