Domänenlösungsproblem mit Standard-Debian

Domänenlösungsproblem mit Standard-Debian

Ich habe eine einfache Installation mit Debian als Gast in Virtualbox. Ich habe das resolvconfPaket installiert. Die Datei resolv.conf ist diese:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 10.3.x.x
nameserver 10.219.x.x

Ich habe Nameserver über die GUI (Anwendungen/Systemtools/Netzwerktools) hinzugefügt.

8.8.8.8 ist Googles DNS und ich möchte es zum Auflösen von Internetadressen verwenden. 10.3.xx und 10.219.xx werden zum Auflösen interner Domänen wie teleportal.company.intra benötigt.

Wenn ich diese Nameserver in resolv.conf habe (und 8.8.8.8 ist der erste), erhalte ich bei der internen Abfrage einer Adresse eine Fehlermeldung:

> host teleportal.company.intra           
Host teleportal.company.intra not found: 3(NXDOMAIN)

Wenn ich jedoch die nameserverAdresse des zweiten explizit als Nameserver für nslookup einstelle, funktioniert es:

» nslookup teleportal.company.intra 10.3.x.x
Server:     10.3.x.x
Address:    10.3.x.x#53

teleportal.company.intra    canonical name = proxy.dummy1.dummy2.private.
Name:   proxy.dummy1.dummy2.private
Address: 172.27.x.x
Name:   proxy.dummy1.dummy2.private
Address: 172.27.x.x

In der resolv.conf-Dokumentation heißt es, dass die nameserverEinträge der Reihe nach ausprobiert werden, wenn einer von ihnen die Abfrage nicht lösen kann. Wenn ich jedoch bei der Verwendung das Debuggen einschalte, nslookupsehe ich, dass nslookupnicht einmal andere Einträge ausprobiert werden, sondern nur der erste.

Wenn ich die Reihenfolge ändere nameservers, werden interne Adressen richtig aufgelöst (nslookup verwendet weiterhin nur den ersten Eintrag).

Wie kann ich drei Nameserver einrichten, sodass die Dienstprogramme sie alle der Reihe nach verwenden?

Antwort1

Die resolv.confListe der Nameserver wird nur im Falle eines Timeouts nacheinander kontaktiert. Nicht, wenn ein Nameserver autoritär sagt „es gibt keine solche Domain“ ( NXDOMAIN). In Ihrem Fall 8.8.8.8weiß der DNS anscheinend nichts davon teleportal.company.intraund der Resolver hat angehalten, als er das bekam NXDOMAIN.

Wenn möglich, sollten Sie einen DNS-Server konfigurieren und ihn für alle Ihre Auflösungen verwenden und den DNS-Server entscheiden lassen, wie der Name aufgelöst wird. Wenn es 10.3.x.xIhr Intranet-DNS-Server ist, könnte er wahrscheinlich auch die Internet-Hostnamen auflösen.

Wenn Sie die Anfragen jedoch wirklich an verschiedene DNS-Server basierend auf den Namen weiterleiten möchten, können Sie Folgendes versuchen:Abonnieren. Es handelt sich um ein zwischenspeicherndes DNS-Proxy-Programm, das lokal ausgeführt wird. Installieren Sie es ( apt-get install pdnsd) und fügen Sie Ihren localhost ( 127.0.0.1) zu resolv.conf hinzu. In der pdnsd.confKonfigurationsdatei können Sie angeben, welche DNS-Server basierend auf der Namensübereinstimmung kontaktiert werden sollen. Ein Beispielabsatz für Ihr /etc/pdnsd.conf:

server {
    label= "google";
    exclude = ".company.intra";
    ip = 8.8.8.8;
}

server {
    label= "intra";
    include = ".company.intra";
    ip = 10.3.x.x;
}

Ich habe viele andere Parameter aus der obigen Datei herausgeschnitten. Sie sollten der Dokumentation und der Beispielkonfigurationsdatei folgen, die mit dem Debian-Paket geliefert wird, um Ihr einzurichten pdnsd.conf.

Antwort2

ICHdenkendass der Resolver auf sekundäre (oder tertiäre oder ...) DNS zurückgreiftnur wenn der erste (oder zweite oder ...) fehlschlägt.

In diesem Fall die Abfragescheitert nicht, gibt es korrekt zurück NXDOMAIN, d. h. der Domänenname existiert nicht.

Wenn Sie wirklich Googles DNS (oder ein beliebiges anderes DNS) verwenden möchten, um externe Domänen aufzulösen (anstelle Ihrer internen Nameserver), können Sie Ihre Server 10.3.x.xso konfigurieren, dass sie nur für Ihre internen Namen 10.219.x.xdienen authoritativeund alle anderen Abfragen an externe DNS weiterleiten. Verwenden Sie dann Ihre internen Nameserver alsnurNameserver auf Ihren internen Computern.

verwandte Informationen