• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved]DNS: NXDOMAIN (BIND 9)

user42

Member
Hallo mal wieder!

Ich versuch gerade, auf meinem System(10.3) einen BIND9 aufzusetzen und bin dabei mit meinem Latein so langsam am Ende. Die diversen Dokus und HOWTOs (tldp.org, /usr/share/doc/...) hab ich ausgeschöpft - Es scheint alles soweit korrekt zu sein, nur bekomme ich was ich auch tue immer den NXDOMAIN an den Kopf geworfen.

Folgende Fehlerquellen hab ich schon ausgeschlossen:
-Firewall-Port ist offen
-nsswitch enthält Eintrag
Code:
hosts: files dns
-/etc/hosts wurde umbenannt um sie zu maskieren
-rekursion wurde in der named.conf zugelassen

Forwarding hab ich in der named.conf aktiviert, und das klappt auch wunderbar. Alle hosts in meinem System, die der DNS des Routers kennt, löst er einwandfrei auf. Wenn allerdings ein name auftaucht, der nur in der Zonendatei auftaucht, sagt er NXDOMAIN. Offenbar lädt er aber die Zonendatei, wie folgender Output beweist(3 zonen sollten es sein):

Code:
zeus:/var/lib/named # rcnamed status
Checking for nameserver BIND
number of zones: 3
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is ON
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running                                              running

Nur scheint er die A records daraus nicht zu lesen. Wo liegt mein Ferhler?

named.conf:
Code:
options {

	directory "/var/lib/named";
	dump-file "/var/log/named_dump.db";
	statistics-file "/var/log/named.stats";
	
        forward first;

	listen-on-v6 { any; };

	allow-query { 127.0.0.1; 255.255.255.0; };

	notify no;
	forwarders {192.168.178.1;};
	recursion yes;
	allow-recursion {127.0.0.1;192.168.178.10;};
	version "n/a";
};


zone "." in {
	type hint;
	file "root.hint";
};

zone "localhost" in {
	type master;
	file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" in {
	type master;
	file "127.0.0.zone";
};

zone "olymp" in {
     	 type master;
	 file "master/olymp.zone";
};

logging {
	category queries { log_file; };
	category xfer-in { log_file; };
	channel log_file { file "/home/user42/.dns.log" versions 3 size 10M; };
	category xfer-out { log_file; };
	category default { log_file; };
};

olymp.zone:
Code:
;
;Zonendatei für olymp
;
$TTL 3D
@ IN SOA zeus.olymp. root.olymp. (
661945 ;serial (NCC-661944 James Ryan)
8H	
2H	
1H	
1D )
;
NS	zeus.olymp.
;			MX	zeus.olymp.
;
localhost A 127.0.0.1
zeus A 192.168.178.10
athena A 192.168.178.11
chimera	A 192.168.178.12
hermes A 192.168.178.1
chaos A	192.168.178.2
Die führenden Leerzeichen wurden auf anraten eines Howtos entfernt - in den anderen Zonendateien stören sie aber scheints auch nicht.
resolv.conf:
Code:
domain olymp
nameserver 127.0.0.1
Auf einen Versuch hin hab ich den forwarders-eintrag aus der named.conf mal rausgenommen, danach hat er zwar die lokalen namen überhaupt nicht mehr aufgelöst, die globalen allerdings immer noch. Kann das sein, daß da im Hintergrund noch ein zweiter Nameserver sein Unwesen treibt? Jedenfalls ist in der resolv.conf nur der eine eingetragen.
 
Als ich die meldung mal bekommen hab waren die Zonendateien falsch.

die müsten ungefair so aussehen:

/var/lib/named/master/server.home

Code:
 $TTL 2D
 @               IN SOA          boss.server.home.     root.boss.server.home. (
                                2005082501      ; serial
                                3H              ; refresh
                                1H              ; retry
                                1W              ; expiry
                                1D )            ; minimum

                    IN NS           boss.server.home.
 localhost       IN A            127.0.0.1
 boss            IN A            192.168.0.1
 client1         IN A            192.168.0.10
 client2         IN A            192.168.0.20

/var/lib/named/master/0.168.192.in-addr.arpa

Code:
$TTL 2D
 @               IN SOA          boss.server.home.     root.boss.server.home. (
                                2005082501      ; serial
                                3H              ; refresh
                                1H              ; retry
                                1W              ; expiry
                                1D )            ; minimum

                  IN NS           boss.server.home.
 1               IN PTR          boss.server.home.
 10              IN PTR          client1.server.home.
 20              IN PTR          client2.server.home.

Wichtig ist das nach dem IN NS der Name deines Rechners steht.
Der Eintrag legt fest das der Rechner für die zone veraantwortlich ist.
 
OP
U

user42

Member
Ach ja, natürlich:
Code:
Subnetz: 192.168.178.1
Netmask: 255.255.255.0
Server-IP: 192.168.178.10
Server: zeus.olymp
Domain: olymp

[/code]
 
OP
U

user42

Member
Der einzige augenfällige Unterschied, den ich jetzt da erkennen kann, ist das IN in jedem Eintrag. Habs mal hinzugefügt, macht anscheinend keinen Unterschied.
 
OP
U

user42

Member
OK, Das Rätsel ist gelöst: BIND9 akzeptiert die Syntax von BIND8 für die Nameserver-Angabe in der Zonendatei nicht. Statt
Code:
         NS      zeus.olymp.
muss da stehen:
Code:
olymp.      IN NS          zeus.olymp.
IN          IN NS          zeus


Fragt mich aber jetzt bitte nicht, was das zweite IN zu bedeuten hat. Das hat mir die Automatik von YAST reingehauen und ich werd den Teufel tun, da ranzufingern. Danke für Eure Mühe und möge meine Odyssee irgendwann jemandem dieselbe ersparen!
 
Oben