Domain Name Service (DNS) (Deutsch)

Domain Name Service (DNS) ist ein Internetdienst, der IP-Adressen und vollständig qualifizierte Domainnamen (FQDN) einander zuordnet. Auf diese Weise erleichtert DNS das Speichern von IP-Adressen. Computer, auf denen DNS ausgeführt wird, werden Namensserver genannt. Ubuntu wird mit BIND (Berkley Internet Naming Daemon) ausgeliefert, dem am häufigsten verwendeten Programm zur Wartung eines Nameserver unter Linux.,

Geben Sie an einer Terminalaufforderung den folgenden Befehl zum Installieren von DNS ein:

sudo apt install bind9

Ein sehr nützliches Paket zum Testen und Beheben von DNS-Problemen ist das Paket dnsutils. Sehr oft werden diese Tools bereits installiert, aber um zu überprüfen und/oder zu installieren dnsutils geben Sie Folgendes ein:

sudo apt install dnsutils

Konfiguration

Es gibt viele Möglichkeiten, BIND9 zu konfigurieren. Einige der häufigsten Konfigurationen sind ein Caching-Nameserver, ein primärer Server und ein sekundärer Server.,

  • Wenn BIND9 als Caching-Nameserver konfiguriert ist, findet BIND9 die Antwort auf Namensabfragen und merkt sich die Antwort, wenn die Domäne erneut abgefragt wird.

  • Als Primärserver liest BIND9 die Daten für eine Zone aus einer Datei auf seinem Host und ist für diese Zone maßgebend.

  • Als sekundärer Server ruft BIND9 die Zonendaten von einem anderen Nameserver ab, der für die Zone maßgebend ist.

Übersicht

Die DNS-Konfigurationsdateien werden im Verzeichnis /etc/bind gespeichert., Die primäre Konfigurationsdatei ist /etc/bind/named.conf, die im Layout des Pakets nur diese Dateien enthält.

Die Root-Nameserver wurden früher in der Datei beschrieben. Dies wird jetzt stattdessen von der /usr/share/dns/root.hints – Datei bereitgestellt, die mit dem dns-root-data – Paket geliefert wird, und wird in der obigen – Konfigurationsdatei referenziert.

Es ist möglich, denselben Server so zu konfigurieren, dass er ein Caching-Nameserver ist, primär und sekundär: Alles hängt von den Zonen ab, die er bedient., Ein Server kann der Start von Authority (SOA) für eine Zone sein, während er einen sekundären Dienst für eine andere Zone bereitstellt. Die ganze Zeit Caching-Dienste für Hosts auf dem lokalen LAN bereitstellt.

Caching-Nameserver

Die Standardkonfiguration fungiert als Caching-Server. Kommentieren und bearbeiten Sie einfach /etc/bind/named.conf.options, um die IP-Adressen der DNS-Server Ihres ISP festzulegen:

forwarders { 1.2.3.4; 5.6.7.8;};

Hinweis

Ersetzen Sie 1.2.3.4 und 5.6.7.8 durch die IP-Adressen der tatsächlichen nameserver.,

Um die neue Konfiguration zu aktivieren, starten Sie den DNS-Server neu. Über eine Terminalaufforderung:

sudo systemctl restart bind9.service

Informationen zum Testen eines Caching-DNS-Servers finden Sie unter dig.

Primärserver

In diesem Abschnitt wird BIND9 als Primärserver für die Domäne konfiguriert example.com. Ersetzen Sie einfach example.com mit der FQDN (Fully Qualified Domain Name).,

Zonendatei weiterleiten

Um BIND9 eine DNS-Zone hinzuzufügen und BIND9 in einen primären Server umzuwandeln, bearbeiten Sie zuerst /etc/bind/named.conf.local:

zone "example.com" { type master; file "/etc/bind/db.example.com";};

Hinweis

Wenn bind wie bei DDNS automatische Updates für die Datei erhält, verwenden Sie /var/lib/bind/db.example.com anstelle von /etc/bind/db.example.com sowohl hier als auch im folgenden Kopierbefehl.,

Verwenden Sie nun eine vorhandene Zonendatei als Vorlage, um die /etc/bind/db.example.com – Datei zu erstellen:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

Bearbeiten Sie die neue Zonendatei /etc/bind/db.example.com und ändern Sie localhost. in den FQDN lassen Sie die zusätzliche . am Ende Ihres Servers., Ändern Sie 127.0.0.1 in die IP-Adresse des Nameserver und root.localhost in eine gültige E-Mail-Adresse, jedoch mit einem . anstelle der üblichen @ Symbol, wobei Sie am Ende erneut die .. Ändern Sie den Kommentar, um die Domäne anzugeben, für die diese Datei bestimmt ist.

Erstellen Sie einen A-Datensatz für die Basisdomäne example.com. Erstellen Sie außerdem einen A-Datensatz für ns.example.com, den Nameserver in diesem Beispiel:

Sie müssen die Seriennummer jedes Mal erhöhen, wenn Sie Änderungen an der Zonendatei vornehmen., Wenn Sie vor dem Neustart von BIND9 mehrere Änderungen vornehmen, erhöhen Sie die Seriennummer einfach einmal.

Jetzt können Sie DNS-Einträge am unteren Rand der Zonendatei hinzufügen. Siehe Allgemeine Datensatztypen für Details.,

Hinweis

Viele Admins verwenden gerne das letzte Datum, das als Seriennummer einer Zone bearbeitet wurde, z. B. 2020012100, das yyyymmddss ist (wobei ss die Seriennummer ist)

Sobald Sie Änderungen an der Zonendatei vorgenommen haben, muss BIND9 neu gestartet werden, damit die Änderungen wirksam werden:

sudo systemctl restart bind9.service

Reverse Zone File

Nachdem die Zone eingerichtet ist und Namen in IP-Adressen aufgelöst werden, muss eine Reverse Zone hinzugefügt werden, damit DNS eine Adresse in einen Namen auflösen kann.,

Bearbeiten Sie /etc/bind/named.conf.local und fügen Sie Folgendes hinzu:

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

Hinweis

Ersetzen Sie 1.168.192 durch die ersten drei Oktette des verwendeten Netzwerks. Benennen Sie auch die Zonendatei /etc/bind/db.192 entsprechend. Es sollte mit dem ersten Oktett Ihres Netzwerks übereinstimmen.,

Erstellen Sie nun die /etc/bind/db.192 Datei:

sudo cp /etc/bind/db.127 /etc/bind/db.192

Weiter bearbeiten /etc/bind/db.192 Ändern der gleichen Optionen wie /etc/bind/db.example.com:

Die Seriennummer in der umgekehrten Zone muss auch bei jeder Änderung inkrementiert werden. Für jeden Datensatz, den Sie in /etc/bind/db.example.com konfigurieren, dh für eine andere Adresse, müssen Sie einen PTR-Datensatz in /etc/bind/db.192.,

Nach dem Erstellen der Reverse Zone-Datei starten Sie BIND9 neu:

sudo systemctl restart bind9.service

Sekundärer Server

Sobald ein primärer Server konfiguriert wurde, wird dringend ein sekundärer Server empfohlen, um die Verfügbarkeit der Domäne aufrechtzuerhalten, falls der primäre nicht mehr verfügbar ist.

Zunächst muss auf dem primären Server die Zonenübertragung zulässig sein., Fügen Sie die Option allow-transfer zu den Beispieldefinitionen für Vorwärts-und Rückwärtszonen in /etc/bind/named.conf.localhinzu:

Hinweis

Ersetzen Sie 192.168.1.11 durch die IP-Adresse Ihres sekundären Nameserver.

Starten Sie BIND9 auf dem primären Server neu:

sudo systemctl restart bind9.service

Als nächstes installieren Sie das bind9-Paket auf dem sekundären Server auf dieselbe Weise wie auf dem primären., Bearbeiten Sie dann die /etc/bind/named.conf.local und fügen Sie die folgenden Deklarationen für die Vorwärts-und Rückwärtszonen hinzu:

Hinweis

Ersetzen Sie 192.168.1.10 durch die IP-Adresse Ihres primären Nameserver.,

Starten Sie BIND9 auf dem sekundären Server neu:

sudo systemctl restart bind9.service

In /var/log/syslog sollten Sie etwas Ähnliches wie das Folgende sehen (einige Zeilen wurden aufgeteilt, um dem Format dieses Dokuments zu entsprechen):

Hinweis

Hinweis: Eine Zone wird nur übertragen, wenn die Seriennummer auf der primären größer ist als die auf der sekundären., Wenn Sie möchten, dass Ihr primärer DNS andere sekundäre DNS-Server über Zonenänderungen benachrichtigt, können Sie also-notify { ipaddress; }; zu /etc/bind/named.conf.local hinzufügen, wie im folgenden Beispiel gezeigt:

Hinweis

Das Standardverzeichnis für nicht autorisierende Zonendateien ist /etc/bind/named.conf.local = „2f21455f0a“ > . Dieses Verzeichnis ist auch in AppArmor so konfiguriert, dass der benannte Daemon darauf schreiben kann. Weitere Informationen zu AppArmor finden Sie unter Sicherheit-AppArmor.,

Fehlerbehebung

Dieser Abschnitt behandelt die Diagnose von Problemen mit DNS-und BIND9-Konfigurationen.

Prüfung

resolv.conf

Der erste Schritt beim Testen von BIND9 besteht darin, die IP-Adresse des Nameserver zu einem Hosts-Resolver hinzuzufügen. Der primäre Nameserver sollte ebenso konfiguriert werden wie ein anderer Host, um die Dinge zu überprüfen. Einzelheiten zum Hinzufügen von Nameserver-Adressen zu Ihren Netzwerkclients finden Sie unter DNS-Clientkonfiguration., Am Ende sollte Ihre nameserver Zeile in /etc/resolv.conf auf 127.0.0.53 und Sie sollten einen search Parameter für Ihre Domain haben. In etwa so:

nameserver 127.0.0.53search example.com

Um zu überprüfen, welchen DNS-Server Ihr lokaler Resolver verwendet, führen Sie Folgendes aus:

systemd-resolve --status

Hinweis

Sie sollten Ihrer Clientkonfiguration auch die IP-Adresse des sekundären Nameserver hinzufügen, falls der primäre nicht verfügbar ist.,

dig

Wenn Sie das dnsutils-Paket installiert haben, können Sie Ihr Setup mit dem DNS-Lookup-Dienstprogramm dig testen:

  • Nach der Installation von BIND9 verwenden Sie dig für die Loopback-Schnittstelle, um sicherzustellen, dass Port 53 überwacht wird.,i>

    Wenn Sie BIND9 als Caching-Nameserver konfiguriert haben, „graben“ Sie eine externe Domäne, um die Abfragezeit zu überprüfen:

    dig ubuntu.com

    Beachten Sie die Abfragezeit gegen Ende der Befehlsausgabe:

    ;; Query time: 49 msec

    Nach einem zweiten Graben sollte es Verbesserungen geben:

    ;; Query time: 1 msec

ping

Um nun zu demonstrieren, wie Anwendungen DNS verwenden, um einen Hostnamen aufzulösen, verwenden Sie das ping-Dienstprogramm, um eine ICMP-Echoanforderung zu senden:

ping example.com

Dies testet, ob der Nameserver den Namen ns.example.com in eine IP-Adresse auflösen kann., Die Befehlsausgabe sollte ähneln:

named-checkzone

Eine gute Möglichkeit, Ihre Zonendateien zu testen, ist die Verwendung des Dienstprogramms named-checkzone, das mit dem Paket bind9 installiert ist. Mit diesem Dienstprogramm können Sie sicherstellen, dass die Konfiguration korrekt ist, bevor Sie BIND9 neu starten und die Änderungen live vornehmen.,

  • Um unsere Beispiel-Forward Zone-Datei zu testen, geben Sie Folgendes über eine Eingabeaufforderung ein:

    named-checkzone example.com /etc/bind/db.example.com

    Wenn alles richtig konfiguriert ist, sollten Sie eine ähnliche Ausgabe sehen wie:

    zone example.com/IN: loaded serial 6OK
  • Um die Reverse zone-Datei zu testen, geben Sie Folgendes ein:

    named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192

    Die Ausgabe sollte ähnlich sein wie:

    zone 1.168.192.in-addr.arpa/IN: loaded serial 3OK

Hinweis

Die Seriennummer Ihrer Zonendatei wird wahrscheinlich unterschiedlich sein.,

Schnelle temporäre Abfrageprotokollierung

Mit dem Tool rndc können Sie die Abfrageprotokollierung schnell ein-und ausschalten, ohne den Dienst neu zu starten oder die Konfigurationsdatei zu ändern.

Um die Abfrageanmeldung einzuschalten, führen Sie Folgendes aus:

sudo rndc querylog on

Um sie auszuschalten, führen Sie Folgendes aus:

sudo rndc querylog off

Die Protokolle werden an syslog gesendet und werden standardmäßig in /var/log/syslog angezeigt:

Hinweis

Die Anzahl der Protokolle, die durch Aktivieren von querylog generiert werden, könnte riesig sein!,

Logging

BIND9 verfügt über eine Vielzahl von Protokollierungskonfigurationsoptionen, aber die beiden wichtigsten sind channel und category, die konfigurieren, wohin Protokolle gehen und welche Informationen protokolliert werden.

Wenn keine Protokollierungsoptionen konfiguriert sind, lautet die Standardkonfiguration:

logging { category default { default_syslog; default_debug; }; category unmatched { null; };};

Konfigurieren wir stattdessen BIND9, um Debug-Nachrichten im Zusammenhang mit DNS-Abfragen an eine separate Datei zu senden.

Wir müssen einen Kanal konfigurieren, um anzugeben, an welche Datei die Nachrichten gesendet werden sollen, und eine Kategorie., In diesem Beispiel protokolliert die Kategorie alle Abfragen. Bearbeiten Sie /etc/bind/named.conf.local und fügen Sie Folgendes hinzu:

logging { channel query.log { file "/var/log/named/query.log"; severity debug 3; }; category queries { query.log; };};

Hinweis

Die Debug-Option kann von 1 auf 3 gesetzt werden. Wenn kein Level angegeben ist, ist Level 1 der Standardwert.,

  • Da der benannte Daemon als bind-Benutzer ausgeführt wird, muss das Verzeichnis /var/log/named erstellt und der Besitz geändert werden:

    sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
  • Starten Sie nun BIND9 neu, damit die Änderungen wirksam werden:

    sudo systemctl restart bind9.service

Sie sollten die Datei /var/log/named/query.log mit Abfrageinformationen füllen. Dies ist ein einfaches Beispiel für die Protokollierungsoptionen BIND9. Für die Abdeckung der erweiterten Optionen siehe weitere Informationen.,

Allgemeine Datensatztypen

Dieser Abschnitt behandelt einige der häufigsten DNS-Datensatztypen.

  • A Datensatz: Dieser Datensatz ordnet eine IP-Adresse einem Hostnamen zu.

    www IN A 192.168.1.12
  • CNAME record: Wird verwendet, um einen Alias für einen vorhandenen Datensatz zu erstellen. Sie können keinen CNAME – Datensatz erstellen, der auf einen anderen CNAME – Datensatz verweist.

    web IN CNAME www
  • MX Datensatz: Definiert, wohin E-Mails gesendet werden sollen., Muss auf einen – Datensatz verweisen, nicht auf eine CNAME.

    @ IN MX 1 mail.example.com.mail IN A 192.168.1.13
  • NS Datensatz: Definiert, welche Server Kopien einer Zone bereitstellen. Es muss auf einen – Datensatz verweisen, nicht auf eine CNAME. Hier werden primäre und sekundäre Server definiert.

    @ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11

Weitere Informationen

  • Upstream BIND9 Dokumentation

  • Bind9.net hat links zu einer großen Sammlung von DNS-und BIND9 Ressourcen.,

  • DNS and BIND ist jetzt ein beliebtes Buch in seiner fünften Ausgabe. Es gibt jetzt auch ein DNS – und BIND-On-IPv6-Buch.

  • Ein großartiger Ort, um BIND9-Unterstützung anzufordern und sich mit der Ubuntu-Server-Community zu beschäftigen, ist der #ubuntu-Server IRC-Kanal auf freenode.

Zuletzt aktualisiert vor 10 Monaten. Helfen Sie, dieses Dokument im Forum zu verbessern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Zur Werkzeugleiste springen