Getty Images/iStockphoto
DNS-Server-Fehlerbehebung unter Linux und Windows
Zur Fehlerbehebung bei DNS-Servern gehören die Überprüfung des DNS-Status, der Zonen-Konfiguration und der Protokolle. Lesen Sie einige Best Practices für Windows und Linux.
Die Namensauflösung ist ein wichtiger Bestandteil moderner Netzwerke. Services für die Namensauflösung liefern Namen, die sich Menschen im Gegensatz zu IP-Adressen leicht merken können.
Die Namensauflösung benutzt einen Adress (A) Record, um Namen mit IPv4-Adressen zu verknüpfen und einen Quad-A (AAAA) Record, um Namen mit IPv6-Adressen zu verbinden.
Endbenutzer verlassen sich auf die Namensauflösung, um Webseiten zu besuchen. Computertechniker können Namen verwenden, um Netzwerkdrucker oder -laufwerke zuzuordnen, und Systemadministratoren können sich aus der Ferne über Namen mit Servern oder VMs verbinden.
Damit Sie bei der Namensauflösung auf Fehlersuche gehen können, müssen Sie die Technologie zunächst verstehen. Der erste Artikel dieser Serie definiert Namensauflösung und bietet Beispiele für Funktionen wie die hosts-Datei und DNS. Der zweite Artikel befasst sich mit der Problembehebung bei der Namensauflösung aus Sicht des Clients. Hier kommen Tools wie Ping, Nslookup, host und dig zum Einsatz.
Dieser Artikel befasst sich mit der Fehlersuche bei DNS-Services am Server. Speziell geht es darum, den Status des Services und die primären Konfigurationsdateien zu überprüfen. Das gilt sowohl für Linux- als auch Windows-DNS-Server.
Fehlersuche bei Linux-basiertem DNS
Die Fehlersuche bei der Namensauflösung auf einem Linux-Server beginnt mit den Grundlagen. Ist der Service installiert und läuft er? Sind die Zone-Dateien richtig und enthalten sie die notwendigen Ressourcen-Records, um den Netzwerk-Host aufzulösen?
Der Service für die Namensauflösung unter Linux ist Berkeley Internet Name Domain (BIND), derzeit Version 9.
1. Überprüfen Sie, ob BIND installiert ist
Stellen Sie sicher, dass BIND installiert ist und läuft, wenn Sie beim Server für die Namensauflösung nach Fehlern suchen. Überprüfen Sie mit folgendem Befehl, ob BIND9 installiert ist:
$ named -v
Die Ausgabe sollte verraten, ob BIND installiert ist und entsprechend die Versionsnummer anzeigen. Ist es nicht installiert, ist das der Grund, warum die Namensauflösung zu diesem Server nicht funktionieren.
Bei Red Hat, Fedora und ähnlichen Distributionen installieren Sie BIND9 mit nachfolgendem Befehl:
$ sudo dnf install -y bind bind-utils
Unter Ubuntu, Debian und ähnlichen Distributionen, führen Sie diesen Befehl aus:
$ sudo apt install bind9 bind9-utils bind9-dnsutils
Ob Administratoren diverse Extras installieren müssen, hängt davon ab, wie sie den Server für die Namensauflösung einsetzen möchten.
2. Stellen Sie sicher, dass BIND läuft
Angenommen BIND ist installiert, dann überprüfen Sie im nächsten Schritt, dass der Server läuft. Verwenden Sie den Befehl systemctl mit der nachfolgenden Syntax:
$ sudo systemctl status bind9
Administratoren können die Befehle systemctl start, stop, restart, enable und disable verwenden, um den Service zu managen.
Vergessen Sie nicht, die Firewall zu konfigurieren. Erlauben Sie Port 53/udp für Anfragen und 53/tcp für Zone-Transfers.
3. Überprüfen Sie die Zone-Konfiguration
Die primären Verzeichnisse für die Konfigurationsdateien von BIND9 sind normalerweise /etc/bind und /var/cache/bind. Die hauptsächlichen Konfigurationsdateien heißen named.conf, named.conf.default-zones, named.conf.local und named.conf.options. Diese Dateien definieren, wie der Service für die Namensauflösung seine Aufgaben erfüllt.
Beachten Sie allerdings, dass die genauen Namen für Verzeichnisse und Dateien von der Distribution abhängen. Das gilt auch für die Speicherorte. Das ist bei Linux-Systemen nicht ungewöhnlich. Es könnte nützlich sein, wenn Sie die Verzeichnisse /etc und /var mit grep nach Zeichenketten durchsuchen, die named enthalten.
Zone-Dateien enthalten die eigentlichen Einträge der Ressourcen, die einen speziellen Hostnamen an die IP-Adresse binden. Zone-Dateien finden Sie normalerweise unter /var/cache/bind. Standard-Ressourcen-Records, etwa Start of Authority (SOA) und Name Server (NS) Records werden hier gespeichert, zusammen mit A und Pointer (PTR) Records, die für Anfragen zur Namensauflösung genutzt werden. Löst der Server Anfragen für mehrere Zones auf, hat jede Zone eine eigene Datei.
Überprüfen Sie mit folgendem Befehl die Zone-Datei-Konfiguration, wobei zonename der Name der DNS-Zone ist, für die der Administrator den Fehler sucht.
$ sudo named-checkzone zonename.com db.zonename.com
Das Utility named-checkzone überprüft die Zone-Dateisyntax. Diese Prüfung bietet die Möglichkeit, bestehende Zone-Dateien zu testen und Fehler zu beheben sowie die Konfiguration neuer Dateien zu bestätigen, bevor sie in BIND9 geladen werden.
Das Resultat sollte anzeigen, dass die Zone korrekt reagiert, indem sie den Exit-Code 0 liefert. Kommt bei der Prüfung Exit-Code 1 zurück, überprüfen Sie den Inhalt der Zone-Datei auf Fehler. Administratoren treffen möglicherweise auf folgende Fehler:
- Der Zone-Name ist nicht korrekt.
- Die Zone-Dateien enthalten möglicherweise inkorrekte A und PTR Resource Records.
- Der entsprechende Eintrag hat Tippfehler.
Hinweis: Administratoren empfinden es als vielleicht nützlich, den Fehler von Client-Seite aus mit Tools wie dig, host und nslookup zu suchen, um Probleme korrekt zu identifizieren.
Fehlersuche bei Windows-basiertem DNS
Microsoft Active Directory Domain Services (AD DS) integrieren mehrere Dienste, um Sicherheit und vereinfachtes Management zu bieten. Zunächst einmal gibt es DNS AD integrierte Zones. Mit der Funktion können Sie die DNS-Datenbank mit der AD-Datenbank replizieren – ein umfassenderes Design für die Replikation. Der zweite Service ist ein dynamisches Update von A und PTR Records via Dynamic Host Configuration Protocol (DHCP). DHCP registriert den Hostnamen und die IP-Adresse des Clients bei DNS, nachdem eine IP-Adresse zugewiesen wurde. Damit wird hoffentlich sichergestellt, dass die DNS-Zone auf dem aktuellen Stand ist. Weil die drei Services zusammenarbeiten, ist es oftmals sinnvoll, sie auf dem gleichen Server zu betreiben.
Fehlerbehebung bei der Namensauflösung enthält zwangsläufig auch AD DS und DHCP. Beachten Sie das, wenn Sie Nachrichten des Ereignisprotokolls durchlesen oder den Problemen bei der Namensauflösung auf den Grund gehen wollen.
Es gibt verschiedene Optionen für die Konsole und Windows PowerShell cmdlets für die Fehlerbehebung von DNS.
- Stellen Sie sicher, dass DNS installiert ist
Im ersten Schritt versichern Sie sich, dass DNS installiert ist. Überprüfen Sie dafür den Server Manager oder die Services-Konsole. Fügen Sie die DNS Role hinzu, falls das notwendig ist und konfigurieren Sie den Server als Teil der AD-Domäne.
Alle Services, inklusive DNS, sind in der Dienste-Konsole im Tools-Menü des Server Manager zu finden. Administratoren können den Status des Services überprüfen und ihn dann aus dieser Konsole neu starten.
2. Zones überprüfen
Öffnen Sie die Konsole DNS Manager (DNS im Tools-Menü), um existierende Zonen anzuzeigen und zu verwalten. Administratoren können hier auch neue Zonen erstellen. Ferner können Sie Konfigurationen wie Zone-Replikation, Security-Einstellungen und Forwarding verwalten.
3. Verwenden Sie die PowerShell, um Fehler in Konfigurationen zu finden
Solange Administratoren die entsprechenden cmdlets, Parameter und Kommandozeilenumgebungen wie die PowerShell kennen, sind sie damit häufig effizienter und schneller als mit einem GUI. Der offensichtliche Vorteil der Kommandozeile ist Scripting. Administratoren können sogar eigene Scripte für die Fehlersuche bei der Namensauflösung erstellen.
Es gibt diverse cmdlets, die bei der Fehlersuche und beim Reporting für DNS helfen. Das ist speziell nützlich, um Records aus der Zone zu zeigen. Sie können damit bestätigen, dass der DNS-Server den Namen für die entsprechende Anfrage auflösen kann.
Hier sind einige Beispiele, wie Sie mit der PowerShell Fehlersuche betreiben oder Informationen erhalten können.
Löschen Sie den DNS Resolver Cache mit diesem cmdlet:
> Clear-DnsServerCache
Verwenden Sie das folgende cmdlet, um Ressourcen-Records von den Servern zu erhalten und zu bestätigen, dass der Record existiert:
> Get-DnsServerResourceRecord -ComputerName DC1 -ZoneName myzone.local
Erhalten Sie A Records vom speziellen DNS-Server, indem Sie den Parameter -RRType A hinzufügen:
> Get-DnsServerResourceRecord -ComputerName DC1 -ZoneName myzone.local -RRType A
4. Überprüfen Sie die DNS-Konfiguration
Öffnen Sie im Server Manager das Menü Tools und wählen DNS aus, um die Konsole DNS Manager zu öffnen. Administratoren können sich über die Nodes alle DNS Zones anzeigen lassen, die der Server kennt. Hier sind einige Bereiche, die Sie je nach Fehlersuche überprüfen können:
- Überprüfen Sie, ob die korrekten Zones aufgelistet sind.
- Suchen Sie nach Tippfehlern in den statischen Ressourcen-Records.
- Überprüfen Sie, dass die korrekten Ressourcen-Records für A und PTR existieren.
- Prüfen Sie nach, ob die Firewall DNS Traffic erlaubt.
Administratoren können mit der DNS-Konsole auch die Zonen-Eigenschaften überprüfen, etwa Aufraümen und Weiterleitung. Die Einstellungen beeinflussen, wie DNS-Anfragen zur Namensauflösung verarbeitet.
Aufräumen (Scavenging) hilft bei der Bereinigung der DNS-Einträge. In AD-Umgebungen erstellen Windows-Clients oder DHCP-Server dynamisch A- und PTR-Ressourcen-Records. Kümmert sich niemand darum, steigt die Anzahl der Einträge, sofern alte nicht gelöscht werden. Deswegen gibt es bei DNS Eigenschaften wie Alterung und Aufräumen.
Alterung identifiziert Einträge, die ein gewisses Alter erreicht haben. Diese Datensätze sind als veraltet gekennzeichnet und werden nach einem bestimmten Zeitintervall entfernt (Aufräumen). Stellen Sie sicher, dass das Aufräumen auf einem DNS-Server in der Zone aktiviert ist, damit die Zone eine überschaubare Größe behält.
Die Weiterleitung (Forwarding) schickt nicht aufgelöste Anfragen an einen anderen Server. Die Konfiguration isoliert interne DNS-Server, die wahrscheinlich mit AD-Domain-Controllern (DC) gekoppelt sind. Sie haben keinen direkten Zugriff auf das Internet. Stattdessen befindet sich ein designierter DNS-Server im entsprechenden Subnet oder einer DMZ und ist so mit dem Internet verbunden.
Eine weitere Einstellung, die Sie prüfen sollten, ist Bedingte Weiterleitung. Bei der bedingten Weiterleitung für DNS können Sie bestimmte Domain-Namen mit bekannten DNS-Servern verknüpfen. Erhält ein DNS-Server eine Anfrage für den entsprechenden Domain-Namen, wird die Anfrage direkt zum angegebenen DNS-Server geschickt und nicht erst durch mehrere andere Server. Stellen Sie sicher, dass alle Domain-Namen an dieser Stelle korrekt sind und dass die entsprechenden IP-Adressen für die DNS-Server hinterlegt wurden.
5. Die Zone neu laden
Versuchen Sie im Anschluss die Zone neu zu laden. Administratoren können außerdem den DNS-Service neu starten. Beachten Sie allerdings, dass damit auch AD DS neu startet und das könnte sich auf Client-Systeme auswirken. Es wird davon ausgegangen, dass sich mindestens zwei AD DCs am Standort befinden. Damit federn Sie den Effekt ab, dass ein DC temporär nicht verfügbar ist.
6. Überprüfen Sie das Ereignisprotokoll
Überprüfen Sie im Anschluss die DNS-Logs im Ereignisprotokoll. Administratoren müssen sich vielleicht die AD-DS-Ereignisse anschauen und möglicherweise auch die DHCP-Ereignisse und nicht nur die DNS-Einträge. Suchen Sie nach Einträgen, die auf Probleme hinweisen, wenn DNS startet. Wichtiger ist noch, dass Sie DNS und AD DS auf Fehler bei der Replikation überprüfen.
Windows bietet mehrere DNS Service Interfaces. Administratoren können den Service mithilfe der Dienste-Konsole verwalten. Bei der DNS-Fehlersuche werden Sie sich aber wahrscheinlich meistens in der Konsole DNS-Manager aufhalten. Diese Konsole stellt Zonen-Management zu Verfügung, zeigt Ressourcen-Records an und Sie können die Einstellungen des Services modifizieren, etwa Aufräumen und Weiterleiten. In AD integrierte Zones verbessern die Sicherheit und die Performance der DNS-Zonen-Replikation. Außerdem ist eine engere Zusammenarbeit zwischen DNS und DHCP möglich. Vergessen Sie also nicht, AD-Replikation und DHCP-Einstellungen zu überprüfen, wenn Sie Fehlersuche bei DNS betreiben.
Fazit
DNS-Server sind einer der wichtigsten Dienste in einem Netzwerk. Dank Namensauflösung können Anwender mit Namen zu arbeiten, die sich relativ leicht merken lassen. Im Prinzip verbinden die Systeme die entsprechenden Namen mit den IP-Adressen, die TCP/IP benötigt. Viele Dienste sind auf DNS angewiesen, etwa E-Mail, Surfen im Web, Datei- und Druckerfreigabe sowie AD.
Beginnen Sie mit der Fehlersuche, indem Sie überprüfen, dass der Dienst installiert ist, läuft und auch erreichbar ist. Vergewissern Sie sich, dass die Zonen für die Ressourcen-Records vorhanden und richtig konfiguriert sind. Überprüfen Sie zudem, ob die Ressourcen-Records für die angefragten Ziele vorhanden und korrekt sind.