Erster Bind-Gehversuch Problem mit Zonen-Datei

Mordor

Registered User
Mahlzeit allerseits

Nachdem ich mein Lab hier zuHause mal so umgebaut habe, dass ich drei vServer am laufen hab, wollte ich auf einem einen DNS-installieren. Das hat auch alles schön geklappt, und die erste Zone für den Nameserver konnte ich auch erstellen. Diese funktioniert auch schon. Jetzt wollte ich eine zweite Zone erstellen, um auf den Host der vServer über die Domain open-vz.local zugreiffen zu können. Nur bekomme ich eine Fehlermeldung wenn ich die Zone-Datei mit named-checkzone teste:
Code:
/etc/bind/db.open-vz.local:12: ignoring out-of-zone data (open-vz.local)
/etc/bind/db.open-vz.local:13: ignoring out-of-zone data (open-vz.local)
zone system.local/IN: has no NS records
Den Fehler in der Zone-Datei finde ich leider nicht, zumindest scheint mir diese als korrekt.

Zone-File für open-vz.local
Code:
;
; BIND data file for domain open-vz.locale
;
$TTL    604800
@       IN      SOA     ns.system.local.  root.system.local. (
                       20020012         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
open-vz.local.  IN      NS      ns.system.local.
open-vz.local.  IN      A       192.168.2.2
www     CNAME           open-vz.local.
Und hier mal das Zone-file der funktionierende Zone vom Nameserver:
Code:
;
; BIND data file for domain open-vz.locale
;
$TTL    604800
@       IN      SOA     ns.system.local.  root.system.local. (
                       20020012         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
system.local.   IN      NS      ns.system.local.
system.local.   IN      A       192.168.2.5
ns      IN      A       192.168.2.5
www     CNAME           system.local.

Ich sag schon mal danke für eure Hilfe

Gruß Mordor

Edit:
Sorry, ganz vergessen. System Debian ETCH über Opben-VZ mit Bind9 aus den Debianquellen
 
Hier mal die named.conf:
Code:
include "/etc/bind/named.conf.options";
include "/etc/bind/rndc.key";
controls{
        inet 127.0.0.1 allow { localhost; } keys { rndc-key; };
};

// prime the server with knowledge of the root servers
zone "." {
        type hint;
        file "/etc/bind/db.root";
};
         

zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};

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

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

zone "255.in-addr.arpa" {
        type master;
};

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

die named.conf.local:
Code:
zone "open-vz.local" {
        type master;
        file "/etc/bind/db.open-vz.local";
        allow-query { any; };
};
zone "system.local" {
        type master;
        file "/etc/bind/db.system.local";
        allow-query { any; };
};
Und hier noch die named.conf.options:
Code:
options {
        directory "/var/cache/bind";
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { none; };
        listen-on port 53 { 127.0.0.1; 192.168.2.5; };
        allow-query { any; };
//      forwarders { 192.168.2.1; };
};

Ich hoff mal das hilft weiter.

Gruß Mordor

Edit:
Mir ist grad aufgefallen, dass ich die Domain system.local zwar über nslookup auflösen kann, jedoch nichth über den Browser an meinem Laptop
 
Last edited by a moderator:
Probier es mal mit folgenden Zonefiles:
Code:
$ORIGIN open-vz.local.
@       IN      SOA     ns.system.local.  root.system.local. (
                       2008091500       ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

        IN      NS      ns.system.local.
        IN      A       192.168.2.2
www     IN      A       192.168.2.2

Code:
$ORIGIN system.local.
@       IN      SOA     ns.system.local.  root.system.local. (
                       2008091500       ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
        IN      NS      ns.system.local.
        IN      A       192.168.2.5
ns      IN      A       192.168.2.5
www     IN      A       192.168.2.5
 
Super, das hat ja schon mal funktioniert. Jetzt konnte ich die Domains sauber anlegen. ein
Code:
named-checkzone [domain.tld] [db.domain.tld]
gibt mir auch keinen Fehler zurück, und ein nslookup von einem anderen Rechner im Netz löst auch auf die IP-Adresse der abgefragten Domain auf.

Jetzt hab ich nur noch ein Problem:
Ich hab noch eine weitere Domain angelegt (entwicklung.local). Auf diesem Server läuft ein Apache, den ich auch aufrufen kann, wenn ich im Browser die IP-Adresse eingebe. Jedoch kann ich dies nicht über die Domain machen. Die Domain wurde nach dem Beispiel von Roger Wilco angelegt, und lässt sich über nslookup auch auflösen, nur im Webbrowser geht es nicht.
Ausserdem kann ich mich mit den anderen Domains über SSH nicht verbinden, sondern nur über die IP-Adresse. Irgendwas stimmt da mit der auflösung nicht.

Zur Vollständigkeit hier auch noch das db-File der entwicklung.local:
Code:
$ORIGIN entwicklung.local.
$TTL    604800
@       IN      SOA     ns.system.local.  root.system.local. (
                       20020012         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
        IN      NS      ns.system.local.
        IN      A       192.168.2.3
www     IN      A       192.168.2.3
Wie gesagt, über nslookup lösen die Domains sauber auf, jedoch nicht, wenn ich sie mit SSH oder über www ansprechen möchte.

Danke schon mal

Gruß Mordor
 
Also, auf dem Vituellen Server wo der DNS auch läuft, sieht das ganze so aus:
Code:
passwd:         compat
group:          compat
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
Der Rechner mit dem ich auf eine Domain zugreiffen möchte, ist ein Apple mit 10.4.11 MacOS X. Ein nslookup sieht hier so aus:
Code:
> entwicklung.local
Server:         192.168.2.5
Address:        192.168.2.5#53

Name:   entwicklung.local
Address: 192.168.2.3
Das wird also sauber aufgelöst.

Probiere ich mit dem SSH-Client von Apple auf die Domain entwicklung.lobal zuzugreiffen, bekomme ich im SSH-Client folgendes:
Code:
ssh: Error resolving hostname entwicklung.local: No address associated with nodename
[Prozess abgebrochen - Ergebnis 255]
Der Typ von LinuxAdmin, gehts da um die Datei auf dem Server? Wenn ja, scheint die ja zu stimmen.

Gruß Mordor
 
Nein, die Datei befindet sich nicht auf dem Server, sondern auf dem Rechner, der den Namen nicht auflösen kann. Bei OS X heißt sie wahrscheinlich so ähnlich.

Wenn Du nslookup verwendest, wird ja explizit eine DNS-Abfrage gestartet. Die ganzen anderen Programme verwenden (zumindest bei UNIX-Betriebssystemen) für die Namensauflösung die libresolv.so. Diese Library kann ganz unterschiedliche Quellen dafür heranziehen (u.A. NIS, LDAP, lokale Dateien, und DNS). Welche Quelle(n) in welcher Reihenfolge befragt werden, wird mit der Config-Datei /etc/nsswitch.conf (-> man nsswitch.conf) festgelegt.
 
Das hat mich auf jeden Fall mal weiter gebracht.

Durch Googeln bin ich auf folgendes gestossen:
eine nsswitch.conf gibt es beim Apple nicht. Dort wird alles über lookupd geregelt. Wenn ich lookupd aufrufe, erklärt mir dieser, dass die Hirarchie bei der Namensauflösung folgendermasen ist:

Cache -> /etc/hosts -> DNS -> NetinfoDatabase -> Directoryservice

Also wird der DNS ja rechtzeitig abgefragt. Jedoch bekomme ich immer noch kein Ergebnis. Den Cache hab ich auf dem Apple mittlerweile auch schon mal geleert. Geht leider alles nicht.

Edit:
Es liegt auf jeden Fall am Apple. Denn wenn ich eine SSH-Verbindung von system.local nach open-vz. local auf dem Linuxsystem machen, funktioniert es über die Domains einwandfrei.
 
Last edited by a moderator:
Das ist ein klassischer Apple "Fehler", der mit DNS-SD (Bonjour) zu tun hat. Dabei hat die TLD .local eine besondere Bedeutung. Nimm eine andere TLD (z. B. .invalid oder .lan) und es sollte klappen.
 
Jupp, genau das wars. Hab jetzt die tlds auf .lan geändert. und schon funktioniert es.

Danke an LinuxAdmin und Roger Wilco.
 
Back
Top