PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DNS - Zonentransfer



Devi
09.02.08, 09:00
Hallo,

Hab leider nirgends etwas gefunden, das meine Frage beantwortet, deshalb muss ich euch mal nerven:

Ich habe zwei eigene Bind9 laufen. Funktionieren wunderbar und problemlos. Mich würde allerdings interessieren, wie lange ein Zonentransfer i.d.R von NS1 auf NS2 dauert, d.h. wenn ich NS1 ändere, wann ist dann üblicherweise NS2 aktuell?

Bei mir dauert das derzeit 12 - 24 Stunden, und das kommt mir ein bisschen lang vor. Kann ich das irgendwie beeinflussen, wie schnell sich der NS2 vom NS1 die Zonen holt?

Danke schonmal,
Devi

bla!zilla
09.02.08, 09:59
Schau dir mal die Option notify an.



zone "domain.tld" in {
type master;
file "domain.tld.zone";
allow-transfer { nameserver2.domain.tld; };
allow-query { any; };
also-notify { nameserver2.domain.tld; };
};

Devi
09.02.08, 10:07
Hallo,
danke für die schnelle Antwort.

in der named.conf habe ich bereits allow-notify auf die IP des 2. NS gesetzt. Kann das überhaupt eine IP sein, oder muss ich den FQDN angeben?

bla!zilla
09.02.08, 10:09
IP oder FQDN, sollte beides gehen. Wichtig ist aber der Punkt also-notify, nicht allow-notify.

Devi
09.02.08, 10:26
sorry, allow-notify war ein schreibfehler hier im Forum, in der conf is es also-notify.

Hab deine Angaben alle nochmal gecheckt, leider ändert sich nix :( Der NS2 ist derzeit noch auf dem alten stand. Wie lange dauert es normalerweise, bis der NS2 die Zonen übernimmt?

bla!zilla
09.02.08, 10:48
Ich muss mich korrigieren: FQDN sind nicht supportet. Mein Fehler.

Hast du auch brav die Seriennnummer der Zone erhöht, wenn du was geändert hast? Was für eine TTL hat die Zone? Poste bitte mal die named.conf vom Master und vom Slave.

Devi
09.02.08, 11:02
ok, gerne...

Zonen haben $TTL 1D, und Seriennummern hab ich natürlich bei Änderung mit erhöht :)

MASTER NAMED.CONF

include "/etc/bind/named.conf.options";

zone "." IN
{
type hint;
file "/etc/bind/db.root";
};

zone "localhost" IN
{
type master;
file "/etc/bind/db.local";
check-names fail;
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN
{
type master;
file "/etc/bind/db.127";
check-names fail;
allow-update { any; };
};

zone "domain1.de" IN
{
allow-transfer { IP-NS2; };
also-notify { IP-NS2; };
type master;
file "/etc/bind/db.domain1.de";
};

zone "domain2.com" IN
{
allow-transfer { IP-NS2; };
also-notify { IP-NS2; };
type master;
file "/etc/bind/db.domain2.com";
};

zone "domain3.de" IN
{
allow-transfer { IP-NS2; };
also-notify { IP-NS2; };
type master;
file "/etc/bind/db.domain3.de";
};



zone "IP-NETZ1.in-addr.arpa" IN
{
allow-transfer { IP-NS2; };
also-notify { IP-NS2; };
type master;
file "/etc/bind/db.IP-NETZ1";
};

zone "IP-NETZ2.in-addr.arpa" IN
{
allow-transfer { IP-NS2; };
also-notify { IP-NS2; };
type master;
file "/etc/bind/db.IP-NETZ2";
};

zone "0.in-addr.arpa"
{
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa"
{
type master;
file "/etc/bind/db.255";
};
include "/etc/bind/named.conf.local";


###############
SLAVE NAMED.CONF:

zone "domain1.de" IN
{
type slave;
masters { IP-NS1; };
file "/etc/bind/db.domain1.de";
};
.
.
.
usw. prinzipiell gleiche einstellung für alle anderen Domains / IP's

#####################
MASTER NAMED.CONF.OPTIONS:

options {

directory "/var/cache/bind";
pid-file "/var/run/bind/run/named.pid";
notify yes;
recursion yes;

listen-on port 53 { 127.0.0.1; IP-NETZ1; 10.0.0.5; };
listen-on-v6 { none; };

allow-transfer { IP-NS2; };
allow-query { any; };
allow-recursion { any; };
also-notify { IP-NS2; };
check-names master warn;
auth-nxdomain no; # conform to RFC1035
}

#####################
SLAVE NAMED.CONF.OPTIONS:

options {

directory "/var/cache/bind";
pid-file "/var/run/bind/run/named.pid";
notify yes;
recursion yes;

listen-on port 53 { 127.0.0.1; IP-NS2; 10.0.0.6; };
listen-on-v6 { none; };

allow-query { any; };
allow-recursion { any; };
auth-nxdomain no; # conform to RFC1035
}


Danke schonmal.

bla!zilla
09.02.08, 13:41
Dumme Frage: Hast du die Zone neu geladen?? Normalerweise sollte im Log des Masters stehen, dass er den Slave über eine Änderung benachrichtigt. Poste bitte mal den SOA der betreffenden Zonen.

Devi
09.02.08, 14:10
SOA der Hauptdomain:

domain1.de. IN SOA ns1 webmaster.domain1.de. ( 2008020904 1D 2H 1W 2D )

Wenn du mit "Zone neu geladen" meinst, ob ich den Bind neu gestartet habe, dann: Ja. Wenn ich mit nslookup aufm NS1 (Master) teste, dann sind dort auch immer sämtliche meiner Änderungen übernommen, scheint also korrekt zu laufen. Im Log des Masters finde ich hin und wieder sowas wie "Transfer started bla blubb..", allerdings nicht wirklich oft.

EDIT: hab grad noch was im Log des Slave gefunden: "... refused notify from non-master..." und dahinter steht die INTERNE IP ?!? Hab ich den nicht korrekt als Slave eingerichtet bzw. liegts an der internen IP?

EDIT2: Und noch was:
Feb 9 14:30:06 vm-ns2 named[8419]: zone domain1.de/IN: Transfer started.
Feb 9 14:30:06 vm-ns2 named[8419]: transfer of 'domain1.de/IN' from 80.xx.xx.xx#53: connected using 80.xx.xx.xx#34743
Feb 9 14:30:06 vm-ns2 named[8419]: dumping master file: /etc/bind/tmp-THZINM75my: open: permission denied
Feb 9 14:30:06 vm-ns2 named[8419]: transfer of 'domain1.de/IN' from 80.xx.xx.xx#53: failed while receiving responses: permission denied
Feb 9 14:30:06 vm-ns2 named[8419]: transfer of 'domain1.de/IN' from 80.xx.xx.xx#53: end of transfer

.. aber das versteh ich nun überhaupt nicht. sowohl das verzeichnis /etc/bind is owned by root:bind, eigentlich müssten alle nötigen Rechte somit vorhanden sein...

bla!zilla
09.02.08, 16:45
Mit SOA meinte ich eigentlicn den kompletten Header der Zonefiles, inkl. der Nameserver. ;)

Mit welchem Benutzeraccount läuft denn der BIND?? Setz mal beim Slave in den globalen Optionen



allow-notify { interne IP; };

Devi
09.02.08, 17:24
Ach so, sorry :)

Zonefile meiner Hauptdomain:
$TTL 1D

;Serial / Refresh / Retry / expiry / Minimum
domain1.de. IN SOA ns1 webmaster.domain1.de. ( 2008020905 1D 2H 1W 2D )

IN NS ns1
IN NS ns2
IN MX 10 mx
IN MX 20 mx2

ns1 IN A 80.xxx.xxx.xx
ns2 IN A 80.xxx.xxx.xxx
mx IN A 80.xxx.xxx.xxx
mx2 IN A 80.xxx.xxx.xxx
www IN A 80.xxx.xxx.xxx
@ IN A 80.xxx.xxx.xxx
*.domain1.de. IN CNAME domain1.de.


named.pid = bind:bind

Ich hab gerade mal den kompletten Ordner geändert, auch zu bind:bind, dann gings. Versteh ich nicht, normalerweise müsste des doch auch als root:bind klappen?!? Und warum läuft der Prozess standardmäßig als bind:bind, der Ordner und die conf's sind als standardmäßig root:bind gesetzt. Irgendwie ist das alles seltsam, aber solange es klappt, ist das ja halb so schlimm.

Vielen Dank für deine Hilfe und sorry, dass ich dich wegen so Kinderkram genervt habe...

bla!zilla
09.02.08, 17:35
Der Daemon läuft mit dem User bind. Dadurch, dass der Ordner aber root gehört, kann der Daemon keinen Dump der Zone erstellen, siehe auch die Meldung:



Feb 9 14:30:06 vm-ns2 named[8419]: dumping master file: /etc/bind/tmp-THZINM75my: open: permission denied


Die Meldung über den non-master hat einen anderen Hintergrund. Der Slave versucht beim Starten zu prüfen ob die Zonen noch aktuell sind. Er versucht einen Connect zu sich selbst und bekommt halt auf die Fresse. Deswegen sollte die Option



allow-notify { interne IP; };


gesetzt werden.

Devi
09.02.08, 18:09
Ich hab das so noch auf die Interne IP geändert. Beim Teständerung und reload kam die Meldung nicht mer. Sollte nun vermutlich alles passen.


Vielen Dank nochmal, spitzen Forum :)

Nur noch eine Interessensfrage, Zeile aus dem Log, was bedeutet das:

Feb 9 17:14:16 vm-ns2 named[8419]: lame server resolving '77.61.177.77.spam.dnsrbl.net' (in 'dnsrbl.NET'?): 38.96.5.21#53

bla!zilla
09.02.08, 18:22
Das bedeutet das der genannte Server zwar ein Nameserver ist, aber nicht für die angefragte Domain konfiguriert ist. Kannst du ignorieren.

rep
10.02.08, 17:04
vielleicht nur noch mal als zusatz, auch wenn ich aktuell gestehen muss das ich nicht mehr weiß warum ich das eigetragen habe, nur aktuallisiere ich auch DNS Server die Offiziell und aktuell nicht für die Domain zuständig sind....

Da hab ich in jeder "zone" noch "notify explicit" eingetragen, neben "also-notify". Vielleicht braucht das ja auch jemand :-)