Page 1 of 1

Wie sag ichs dem powerdns-master

Posted: 2005-02-11 19:21
by aysal
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

Re: Wie sag ichs dem powerdns-master

Posted: 2005-02-11 21:22
by antondollmaier
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

Klappt noch nicht

Posted: 2005-02-12 08:35
by aysal
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

Re: Wie sag ichs dem powerdns-master

Posted: 2005-02-12 12:18
by antondollmaier
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"?

Doch

Posted: 2005-02-12 12:37
by aysal
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

Re: Wie sag ichs dem powerdns-master

Posted: 2005-02-13 10:44
by steph
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,

Re: Wie sag ichs dem powerdns-master

Posted: 2005-02-13 11:34
by aysal
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

Re: Wie sag ichs dem powerdns-master

Posted: 2005-02-13 12:19
by steph
nein, ldap ist nicht möglich..
sqlite ist auch noch möglich, würde dir aber postgresql empfehlen

klappt net

Posted: 2005-02-13 14:21
by aysal
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

Aktueller Stand

Posted: 2005-02-13 16:48
by aysal
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

Re: Wie sag ichs dem powerdns-master

Posted: 2005-02-13 18:12
by steph
aber in der master-zone steht schon ns2.... als NS drin?

Näher

Posted: 2005-02-13 19:13
by aysal
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

Geschafft

Posted: 2005-02-13 19:53
by aysal
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

Re: Wie sag ichs dem powerdns-master

Posted: 2005-02-13 20:23
by antondollmaier
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 ...

mysql

Posted: 2005-02-18 09:14
by aysal
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

Re: mysql

Posted: 2005-02-18 19:07
by antondollmaier
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 ...

Re: Wie sag ichs dem powerdns-master

Posted: 2005-02-18 23:32
by aysal
Habs inzwischen auch festgestellt....
Komisch....

LG

Ender