Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:dns-probleme]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:dns-probleme [2014/09/15 11:15] (aktuell)
Zeile 1: Zeile 1:
 +{{tag> DNS Nameserver}}
 +
 +====== DNS - Konfiguration und Fehlersuche ======
 +
 +Probleme bei der Namensauflösung sind häufig und lästig. Diese Seite bietet einen Überblick über das DNS-System bei linuxmuster.net sowie eine Schritt-für-Schritt-Anleitung zur Fehlersuche. Sie gilt für alle Versionen der PaedML/​OpenML und linuxmuster.net mit IPCop oder IPFire.
 +
 +===== Einführung =====
 +
 +Als zentraler DNS-Server läuft ein Bind auf dem Server. Er kennt alle Rechner im Schulnetz, dafür sorgt import_workstations. Anfragen nach externen Rechnern leitet er an den IPFire/​IPCop weiter, auf dem ebenfalls ein DNS-Server läuft (kein Bind sondern Dnsmasq). Der wiederum leitet die Anfragen an einen externen Nameserver weiter.
 +
 +Die Clients erhalten per DHCP den Server als Nameserver zugewiesen.
 +
 +====== Fehlersuche und Problembehebung ======
 +
 +<note important>​Bei der Fehlersuche ist ein strukturiertes Vorgehen unabdingbar. Die folgenden Schritte bauen aufeinander auf und müssen genau in dieser Reihenfolge abgearbeitet werden. Solange es noch Probleme bei einem Schritt gibt, ist es sinnlos, beim nächsten weiterzumachen.\\
 +Außerdem kann man aus der Tatsache, dass ein Test funktioniert,​ nicht schließen, dass alle vorherigen Schritte übersprungen werden können.\\
 +\\
 +Sicherheitshalber sollte man also alle Tests der Reihe nach durchführen.</​note>​
 +
 +===== Schritt 1: Externen Nameserver testen =====
 +
 +Als allererstes testet man, ob vom IPFire aus ein externer Nameserver erreichbar ist. Das kann ein vorgelagerter Router sein, auf dem ein Nameserver läuft, man kann aber auch einen anderen Nameserver im Internet verwenden. Beliebt ist der Nameserver von Google mit der IP-Adresse 8.8.8.8 - hierauf beziehen sich die Beispiele.
 +
 +=== Test ===
 +
 +Beim IPFire testet man als root auf der Kommandozeile:​
 +
 +<​code>​dig @8.8.8.8 www.heise.de</​code>​
 +
 +Die Ausgabe von ''​dig''​ ist ein wenig unübersichtlich. Wichtig ist folgender Abschnitt:
 +
 +<​code>​
 +;; ANSWER SECTION:
 +www.heise.de. 3361 IN A 193.99.144.85
 +
 +;; Query time: 38 msec
 +;; SERVER: 8.8.8.8#​53(8.8.8.8)
 +</​code>​
 +
 +Eine Answer Section mit einer IP-Adresse zeigt, dass die Anfrage erfolgreich war. Weiter unten wird der Server angegeben, der geantwortet hat.
 +
 +=== Es klappt nicht ===
 +
 +Hier muss man zwei Fälle unterscheiden. Lautet die Fehlermeldung ''​connection timed out; no servers could be reached'',​ so ist der externe Nameserver nicht erreichbar (Achtung, das ''​(1 server found)''​ in der Ausgabe bedeutret etwas anderes). Es liegt ein Problem mit der Anbindung nach draußen vor, eventuell filtert auch ein vorgelagerter Router DNS-Anfragen heraus.
 +
 +Erhält man jedoch eine Antwort (was man an der oben wiedergegebenen Zeile mit '';;​SERVER:​ 8.8.8.8 ...''​ erkennt), aber keine Answer Section mit IP-Adresse, so konnte der externe Nameserver den Namen nicht auflösen. Beim Google-Server ist ein Tippfehler die wahrscheinlichste Ursache, verwendet man den Nameserver eines vorgelagerten Routers, so sollte man dessen Konfiguration überprüfen - oder gleich einen anderen Nameserver verwenden.
 +
 +===== Schritt 2: Nameserver auf dem IPFire =====
 +
 +Nun wird getestet, ob der Nameserver auf dem IPFire läuft und auch externe Adressen auflösen kann.
 +
 +==== Test ====
 +
 +Wieder als root auf der Kommandozeile versucht man:
 +
 +<​code>​dig @10.16.1.254 www.heise.de</​code>​
 +
 +Wenn in der Ausgabe eine Answer Section mit der IP-Adresse vorhanden ist, geht es weiter bei Schritt 3.
 +
 +==== Es klappt nicht ====
 +
 +Wenn es nicht klappt, dann ruft man ''​setup''​ auf und trägt den externen DNS-Server ein - vielleicht zur Sicherheit auch einen zweiten. Wenn der Fehler weiterhin besteht, dann ist die IPFire-Installation grundlegend fehlerhaft. Anstatt einer weiteren Fehlersuche empfiehlt sich eine Neuinstallation.
 +
 +
 +===== Schritt 3: Namensauflösung auf dem IPFire =====
 +
 +Der Nameserver auf dem IPFire funktioniert,​ nun gilt es zu testen, ob er auch korrekt genutzt wird.
 +
 +==== Test ====
 +
 +Auch hier kann man wieder ''​dig''​ verwenden, diesmal ohne einen Nameserver anzugeben:
 +
 +<​code>​dig www.heise.de</​code>​
 +
 +In der Ausgabe ist zweierlei wichtig: Zum einen sollte als antwortender Server die 127.0.0.1 oder 10.16.1.254 genannt werden. Zum anderen sollte wieder eine Answer Section mit IP-Adresse enthalten sein.
 +
 +Auch in der Ausgabe von
 +
 +<​code>​ping www.heise.de</​code>​
 +
 +sollte die IP-Adresse zu finden sein.
 +
 +==== Es klappt nicht ====
 +
 +Mögliche Fehlerquelle ist eine beschädigte Datei ''/​etc/​resolv.conf''​. Auf dem IPFire sollte sie ausschließlich folgende Zeile enthalten:
 +
 +<​code>​nameserver 127.0.0.1</​code>​
 +
 +Außerdem sollte die Datei ''/​etc/​host.conf''​ so aussehen:
 +
 +<​code>​order hosts,​bind</​code>​
 +
 +
 +===== Schritt 4: Nameserver auf dem Server =====
 +
 +An dieser Stelle funktioniert auf dem IPFire alles, wie es soll. Nun geht es an den Server,die folgenden Tests führt man also als root auf dem Server aus.
 +
 +
 +==== Test: IPFire ist erreichbar ====
 +
 +Zunächst stellt man sicher, dass der IPFire erreichbar ist:
 +
 +<​code>​dig @10.16.1.254 www.heise.de</​code>​
 +
 +==== Es klappt nicht ====
 +
 +Die Kommunikation zwischen Server und IPFire klappt nicht, wahrscheinlich liegt ein Netzwerkproblem vor. 
 +
 +==== Test: Nameserver auf dem Server läuft ====
 +
 +Nun befragt man den Nameserver auf dem Server:
 +
 +<​code>​dig @10.16.1.1 www.heise.de</​code>​
 +
 +==== Es klappt nicht ====
 +
 +Bei Problemen muss man genau die Ausgabe untersuchen:​
 +
 +- Es gibt keine Zeile, die mit '';;​ SERVER: 10.16.1.1''​ beginnt. Dann läuft der Nameserver nicht. Wenn ein ''​service bind9 restart''​ (bzw. ''/​etc/​init.d/​bind9 restart''​ für PaedML/​OpenML 5.X) das Problem nicht beseitigt und auch ein ''​import_workstations''​ nicht, dann muss man die Konfiguration des Bind näher untersuchen. Wenn ein Backup vorhanden ist, kann man auch das Verzeichnis ''/​etc/​bind''​ komplett wiederherstellen.
 +
 +-  Der Nameserver läuft, kann aber den Namen nicht auflösen. Dann fehlt vermutlich der Eintrag
 +<​code>​
 +        forwarders {
 +                10.16.1.254;​
 +        };
 +</​code>​
 +in der Datei ''/​etc/​bind/​named.conf.options'' ​
 +
 +
 +===== Schritt 5: Namensauflösung auf dem Server =====
 +
 +Wie beim IPFire gilt: Der Server soll nun auch bei Bedarf den Nameserver befragen.
 +
 +
 +==== Test ====
 +
 +Der Test läuft wieder mit ''​dig'',​ aber ohne einen Nameserver anzugeben:
 +
 +<​code>​dig www.heise.de</​code>​
 +
 +Auch hier gilt: Zum einen sollte als antwortender Server die 10.16.1.1 genannt werden. Zum anderen sollte eine Answer Section mit IP-Adresse enthalten sein.
 +
 +Auch in der Ausgabe von
 +
 +<​code>​ping www.heise.de</​code>​
 +
 +sollte die IP-Adresse zu finden sein.
 +
 +==== Es klappt nicht ====
 +
 +Mögliche Fehlerquelle ist wie beim IPFire eine beschädigte Datei ''/​etc/​resolv.conf''​. Auf dem Server sollte sie beispielsweise so aussehen:
 +
 +<​code>​
 +nameserver 10.16.1.1
 +search linuxmuster.lokal
 +</​code>​
 +
 +
 +Und noch der Inhalt der Datei ''/​etc/​host.conf'':​
 +
 +<​code>​
 +order hosts,bind
 +multi on
 +</​code>​
 +
 +
 +===== Schritt 6: Namensauflösung auf dem Client =====
 +
 +Die Clients erhalten den Nameserver per DHCP zugewiesen, Fehlerquelle ist also eine verbogene DHCP-Konfiguration.
 +
 +==== Test ====
 +
 +Testen kann man auch hier mit:
 +
 +<​code>​dig www.heise.de</​code>​
 +
 +
 +Windowsrechner kennen den Befehl nicht, hier (und auch bei den meisten Linux-Varianten) kann man stattdessen ''​nslookup''​ verwenden:
 +
 +<​code>​nslookup www.heise.de</​code>​
 +
 +Oder auch:
 +
 +<​code>​ping www.heise.de</​code>​
 +
 +==== Es klappt nicht ====
 +
 +Wenn es wider Erwarten Probleme gibt, sollte man die DHCP-Konfiguration überprüfen,​ bei Windowsrechnern etwa mit:
 +
 +<​code>​ipconfig /​all</​code>​
 +
 +Eventuell hilft es auch, eine statische IP-Adresse zu konfigurieren und anschließend wieder auf DHCP umzustellen.
 +
 +Auf dem Server kann man mit ''​import_workstations''​ die DHCP-Konfiguration neu erzeugen.
  
 [[anwenderwiki:dns-probleme]] anwenderwiki/dns-probleme.txt · Zuletzt geändert: 2014/09/15 11:15 (Externe Bearbeitung)