Wie sag ichs dem powerdns-master

Bind, PowerDNS
aysal
Posts: 15
Joined: 2005-01-16 18:15

Wie sag ichs dem powerdns-master

Post by aysal » 2005-02-11 19:21

Hallo,

ich habe zwei pdns-server aufgesetzt, die unter ns1.domainname.de und ns2.dommainname.de erreichbar sind.

ok, dem Server habe ich seinen supermaster genannt, aber wie sag ich dem supermaster, wohin er seine domains melden soll? Oder fragt der slave selber nach? Ich glaube nicht?

Hilfe!

LG

Ender

antondollmaier
Posts: 485
Joined: 2004-03-30 10:06

Re: Wie sag ichs dem powerdns-master

Post by antondollmaier » 2005-02-11 21:22

interessantes thema, hab das gerade bei mir auch aktiviert (das is ausfallsicherer, als den backup-NS an die db vom ns1 zu binden :mrgreen: ) ...


folgendes vorgehen, wenn ich richtig liege ...


ns1:

"master=yes" in die config

in der db:

tabelle domains ... bei allen domains den type auf "MASTER" umstellen ... und bei "master" (spaltentyp) die ip vom ns1 ...


ns2:

"slave=yes" in die config

leere pdns-db einstellen ... auf dem lokalen mysql-server ...
in der tabelle supermaster nen neuen eintrag:

ip: die vom ns1
nameserver: domain-name vom ns2
account: beliebig wählen, hat nur info-bedeutung


testweise BEIDE ns im monitor-modus starten ...

dann im ns1-fenster das hier eingeben:

Code: Select all

notify domain.tld
domain.tld muss natürlich existieren ... dann sollten entsprechend AXFR etc-meldungen erscheinen ...


viel erfolg!


Anton

aysal
Posts: 15
Joined: 2005-01-16 18:15

Klappt noch nicht

Post by aysal » 2005-02-12 08:35

Hallo Anton,

danke für deine Hinweise. Leider klappts immernoch nicht.
Notify ergibt auf ns1 folgende ausgabe:
% notify physikmafia.de
Feb 12 08:32:01 Notification request for domain 'physikmafia.de' received from operator
Feb 12 08:32:01 gmysql Connection succesful
Feb 12 08:32:01 Query: select id,name,master,last_check,notified_serial,type from domains where name='physikmafia.de'
Feb 12 08:32:01 Query: select content,ttl,prio,type,domain_id,name from records wheretype='NS' and name='physikmafia.de'
Feb 12 08:32:01 Query: update domains set notified_serial=135581056 where id=4
Added to queue

% Feb 12 08:32:09 Query: select id,name,master,last_check,type from domains where type='SLAVE'
Feb 12 08:32:09 Query: select id,name,master,last_check,notified_serial,type from domains where type='MASTER'
Feb 12 08:32:09 Query: select content,ttl,prio,type,domain_id,name from records wheretype='SOA' and name='physikmafia.de'
Feb 12 08:32:09 1 domain for which we are master needs notifications
Feb 12 08:32:09 Query: update domains set notified_serial=2005021201 where id=4
Auf dem Slave passiert nichts...
:?

hier die ausgabe vom ns2:
Feb 12 08:27:18 This is module gmysqlbackend.so reporting
Feb 12 08:27:18 This is a standalone pdns
Feb 12 08:27:18 It is advised to bind to explicit addresses with the --local-address option
Feb 12 08:27:18 UDP server bound to 0.0.0.0:53
Feb 12 08:27:18 TCP server bound to 0.0.0.0:53
Feb 12 08:27:18 PowerDNS 2.9.16 (C) 2001-2004 PowerDNS.COM BV (Jan 20 2005, 15:33:55)starting up
Feb 12 08:27:18 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
% Feb 12 08:27:18 Launched webserver on 127.0.0.1:8081
Feb 12 08:27:18 Master/slave communicator launching
Feb 12 08:27:18 Creating backend connection for TCP
Feb 12 08:27:18 gmysql Connection succesful
Feb 12 08:27:18 gmysql Connection succesful
Feb 12 08:27:18 All slave domains are fresh
Feb 12 08:27:18 About to create 3 backend threads
Feb 12 08:27:18 gmysql Connection succesful
Feb 12 08:27:19 gmysql Connection succesful
Feb 12 08:27:19 gmysql Connection succesful
Feb 12 08:27:19 Done launching threads, ready to distribute questions
LG

Ender

antondollmaier
Posts: 485
Joined: 2004-03-30 10:06

Re: Wie sag ichs dem powerdns-master

Post by antondollmaier » 2005-02-12 12:18

du hast "master=yes" bzw "slave=yes" nicht in den configs stehen, hatte das gleiche problem hier auch ...

außerdem: steht als domain-typ wirklich "MASTER"?

aysal
Posts: 15
Joined: 2005-01-16 18:15

Doch

Post by aysal » 2005-02-12 12:37

Hab master bzw. slave gesetzt.
Hier die configfiles (nur nicht-kommenteirte Einträge):

master (ns1):
config-dir=/etc/powerdns
local-address=81.169.173.47
local-port=53
log-dns-details=yes
log-failed-updates=yes
logfile=/var/log/pdns.log
loglevel=4
master=yes
slave=no
slave-cycle-interval=60
webserver=yes
webserver-address=81.169.173.47
webserver-password=******
webserver-port=8081
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=****
gmysql-dbname=****
CONFIG NS2:
config-dir=/etc/powerdns
local-address=62.4.80.41
log-dns-details=yes
log-failed-updates=yes
logfile=pdns.log
loglevel=4
master=no
slave=yes
slave-cycle-interval=60
webserver=yes
webserver-address=127.0.0.1
webserver-password=******
webserver-port=8081
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=****
gmysql-dbname=****
Komischerweise gibts auch keine Logdatei unter /var/log/ ?, sowohl beim master wie auch beim slave nicht.

Hier die Domaintabelle beim master:
id
name
master
last_check
type
notified_serial
account
4 physikmafia.de 81.169.173.47 NULL MASTER 2005021203 NULL

Hier der Eintrag beim supermaster auf dem slave:
81.169.173.47 ns2.rootdomains.de internal
Mein Slaveserver ist ein vserver. Könnte das ein Problem sein?

LG

Ender

steph
Posts: 23
Joined: 2003-04-21 21:45
Location: Frankfurt (Oder)

Re: Wie sag ichs dem powerdns-master

Post by steph » 2005-02-13 10:44

soviel ich weiß unterstützt der pdns als slave die mysql datenbank nicht, da diese transaktionen nicht unterstützt (greif auf pgsql zurück)

grüße,

aysal
Posts: 15
Joined: 2005-01-16 18:15

Re: Wie sag ichs dem powerdns-master

Post by aysal » 2005-02-13 11:34

Bevor ich postgres installiere: Geht auch ldap hierfür? Wollte mich sowiso mal mit ldap auseinandersetzen, und das wäre einge gute möglichkeit.
Hat schon mal jemand ein superslave mit ldap aufgesetzt und kann mir sagen, obs funktioniert?

LG

Ender

steph
Posts: 23
Joined: 2003-04-21 21:45
Location: Frankfurt (Oder)

Re: Wie sag ichs dem powerdns-master

Post by steph » 2005-02-13 12:19

nein, ldap ist nicht möglich..
sqlite ist auch noch möglich, würde dir aber postgresql empfehlen

aysal
Posts: 15
Joined: 2005-01-16 18:15

klappt net

Post by aysal » 2005-02-13 14:21

Hab gerade postgresql aufgesetzt.
Der Supermaster ist angelegt, aber sonst ist die datenbank leer.

Der Server startet, aber sonst passiert nichts.
Hab schon auf dem Master per

notify-host ns2.rootdomains.de physikmafia.de

versucht, die Domain auf den Slave zu bekommen. Aber es passiert auf dem Slave nichts. Hier die Ausgabe:
vhost1:/usr/share/doc/phppgadmin# /etc/init.d/pdns monitor
Feb 13 13:57:29 This is module gpgsqlbackend.so reporting
Feb 13 13:57:29 This is a standalone pdns
Feb 13 13:57:29 UDP server bound to 62.4.80.41:53
Feb 13 13:57:29 TCP server bound to 62.4.80.41:53
Feb 13 13:57:29 PowerDNS 2.9.16 (C) 2001-2004 PowerDNS.COM BV (Jan 20 2005, 15:33:55) starting up
Feb 13 13:57:29 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
% Feb 13 13:57:29 Launched webserver on 127.0.0.1:8081
Feb 13 13:57:29 Master/slave communicator launching
Feb 13 13:57:29 Creating backend connection for TCP
Feb 13 13:57:29 gpgsql Connection succesful
Feb 13 13:57:29 gpgsql Connection succesful
Feb 13 13:57:29 About to create 3 backend threads
Feb 13 13:57:29 gpgsql Connection succesful
Feb 13 13:57:29 All slave domains are fresh
Feb 13 13:57:29 gpgsql Connection succesful
Feb 13 13:57:29 gpgsql Connection succesful
Feb 13 13:57:29 Done launching threads, ready to distribute questions

Langsam verzweifle ich...

LG

Ender

aysal
Posts: 15
Joined: 2005-01-16 18:15

Aktueller Stand

Post by aysal » 2005-02-13 16:48

Aktueller Stand meiner versuche:

1.Trage ich eine Zone als Slave in ns2 ein und mache ein receive domainname, klappt alles gut. Allerdings werden keine Ã?nderungen vom Master automatisch übernommen, auch nicht, wenn ich auf dem master notify oder notify-host mache. Ich muss auf dem Server ein retrieve ausführen

2. Es werden keine Domains vom master automatisch auf dem slave übernommen

steph
Posts: 23
Joined: 2003-04-21 21:45
Location: Frankfurt (Oder)

Re: Wie sag ichs dem powerdns-master

Post by steph » 2005-02-13 18:12

aber in der master-zone steht schon ns2.... als NS drin?

aysal
Posts: 15
Joined: 2005-01-16 18:15

Näher

Post by aysal » 2005-02-13 19:13

So, damit kommen wir der Sache schon näher. Das tut es nämlich nicht.
(Ist mein erster DNS-Server, den ich aufsetze)

Das Problem ist jetzt folgendes:

Ich benutze publicdnsadmin als frontend.
Lege ich hiermit ns-Einträge an, schreibt er mit immer den Dommainnamen hinten dran. Schreibe ich beispielsweise als ns eintrag ns1.rootdomains.de, schreibt der in die datenbank ns1.rootdomains.de, physikmafia.de .
Das kanns ja nicht sein.

Mache ich aber ein host physikmafia.de ns1.rootdomains.de, bekomme ich keine NS-Einträge zu sehen.

(Müssen die ns-Einträge eigentlich mit einem Punkt enden?)

Ich habe die Einträge dann mal direkt in der Datenbank korrigiert, so dass diese wie folgt aussehen:

id,domain_id,name,type,content,ttl,prio,change_date
33 1 ns1.rootdomains.de NS 81.169.173.47 86400 0 1108316820
32 1 ns2.rootdomains.de. NS 62.4.80.41 86400 0 1108316820
31 1 physikmafia.de SOA ns1.rootdomains.de hostmaster.rootdomains.de 20050... 86400 0 1108316820

Eine host-anfrage gibt jedoch immernoch keine NS-Einträge an. (Und es kann ja auch nicht, sein, dass ich das Frontend umgehen muss, um korrekte Eintröge in die Datenbank zu machen.)

Danke für die Hilfe!

Ender

aysal
Posts: 15
Joined: 2005-01-16 18:15

Geschafft

Post by aysal » 2005-02-13 19:53

Einfach beim Frontend das Feld vor dem Domainnamen freigelassen. Jetzt hats geklappt.

Gibt es eine Möglichkeit, dem Slaveserver zu sagen, dass er alle DOmains vom Master holen soll, oder dem Masterserver zu sagen, dass er alle Domains "notifen" soll?


LG

Ender

antondollmaier
Posts: 485
Joined: 2004-03-30 10:06

Re: Wie sag ichs dem powerdns-master

Post by antondollmaier » 2005-02-13 20:23

mit dem skript gehts:

Code: Select all

#!/usr/bin/php -c /etc/php-c.ini
<?

$db = mysql_connect("localhost","root","pw");
mysql_select_db("pdns");

$res = mysql_query("select * from domains ORDER by name ASC");

while ( $z = mysql_fetch_array($res))
{
        $command = "/usr/local/bin/pdns_control notify ".$z['name'];
        print($command."n");
        system($command);
        print("==nn");
}
mysql_close($db);
?>
pfade für pdns_control und root-pw sowie pdns-datenbankname anpassen ...

aysal
Posts: 15
Joined: 2005-01-16 18:15

mysql

Post by aysal » 2005-02-18 09:14

danke Anton. Das Script ist klasse.

Habe übrigens jetzt auf dem Slave auch mal mysql als backend benutzt. Ich war nämlich immer der meinung, dass mysql in neueren Versionen auch transaktionssicherheit hat.

Mit mysql klappts auch. In der leeren mysql-Datenbank auf dem slave wurden automatisch alle Domains nach nach einem notify (bzw. dem oberen Sktipt auf dem Master) angelegt.

Noch eine Frage: Nei meiner Konfiguration (s.o.) habe ich zwar eingestellt, dass logfiles erstellt werden, aber ich finde kein logfile.

Jemand eine Idee, warum?

LG

Ender

antondollmaier
Posts: 485
Joined: 2004-03-30 10:06

Re: mysql

Post by antondollmaier » 2005-02-18 19:07

aysal wrote:Noch eine Frage: Nei meiner Konfiguration (s.o.) habe ich zwar eingestellt, dass logfiles erstellt werden, aber ich finde kein logfile.
ich hab auch logfiles aktiviert ... aber wird ins syslog geloggt ... auch recht ... grep machts recht ;)
Jemand eine Idee, warum?
nope ... nicht die bohne ...

aysal
Posts: 15
Joined: 2005-01-16 18:15

Re: Wie sag ichs dem powerdns-master

Post by aysal » 2005-02-18 23:32

Habs inzwischen auch festgestellt....
Komisch....

LG

Ender