So führen Sie Ihren eigenen DNS-Server in Ihrem lokalen Netzwerk aus

0
200
jivacore/Shutterstock.com

Der Betrieb eines eigenen DNS-Servers ist eine großartige Möglichkeit, die Reaktionsfähigkeit Ihres Netzwerks zu beschleunigen, die Abhängigkeit von öffentlicher Infrastruktur zu verringern und von zusätzlichen Funktionen wie Hostnamen-Routing zu profitieren. So richten Sie mit Dnsmasq einen DNS-Server auf einem Linux-Rechner ein.

Was ist DNS?

DNS ist das System die einen Domainnamen wie example.com in die numerische IP-Adresse seines Servers übersetzt. Dies könnte wie 127.0.0.1 aussehen. Immer wenn Sie eine Netzwerkanfrage unter Verwendung eines Domänennamens stellen, führt Ihr System eine DNS-Suche durch, um die Serveradresse zu ermitteln, die es kontaktieren soll.

Dies fügt jeder Anfrage, die Sie stellen, einen Overhead hinzu. Obwohl Ihr Gerät DNS-Antworten zwischenspeichert, wird bei Besuchen neuer Domains ein DNS-Roundtrip durchgeführt, bevor die eigentliche Anfrage beginnt. Dies geschieht auf der Ebene des Betriebssystem-Netzwerkstapels, unsichtbar für Sie als Benutzer.

ISPs betreiben normalerweise DNS-Server. Sie verlassen sich wahrscheinlich auf den Server Ihres ISP, wenn Sie die Standardeinstellungen Ihres Routers und Ihrer Geräte verwenden. Andere öffentliche DNS-Server sind von Anbietern wie Cloudflare und Google erhältlich.

Warum ein eigenes DNS ausführen?

Das Ausführen eines eigenen DNS-Servers gibt Ihnen mehr Kontrolle über Ihr Netzwerk. Eine häufige Motivation besteht darin, Domänenzuordnungen auf Netzwerkebene konfigurieren zu können, z. B. Webserver zu 192.168.0.101. Die Konfiguration Ihres Routers für die Verwendung Ihres DNS würde dazu führen, dass jedes Ihrer verbundenen Geräte über http://web-server auf 192.168.0.101 zugreifen kann.

Werbung

Wenn Sie Ihren eigenen DNS-Server haben, können Sie die Einstellungen an einem Ort zentralisieren, anstatt sie einzeln in /etc/hosts auf jedem Gerät anzuwenden. Sie gelten für alles, was Sie mit Ihrem Netzwerk verbinden, einschließlich eingebetteter Hardware, die keine andere Möglichkeit bietet, den Routing-Stack anzupassen.

Ein interner DNS-Server kann auch die Leistung verbessern und eine zusätzliche Ebene bieten der Belastbarkeit. Weitreichende DNS-Ausfälle sind keine Seltenheit; Wenn Sie einen benutzerdefinierten Server mit einem langlebigen Cache für kritische Dienste verwenden, mit denen Sie interagieren, können Sie Ausfallzeiten bei Ihrem ausgewählten Upstream-Anbieter vermeiden.

DNS mit Dnsmasq

Dnsmasq ist ein einfacher DNS-Server, der in den meisten Linux-Distributionen enthalten ist. Es ist auch erfrischend einfach zu konfigurieren.

Bevor Sie beginnen, sollten Sie sich überlegen, welche Funktionen Ihr DNS-Server bereitstellen muss. In dieser Anleitung betrachten wir die Einrichtung von Dnsmasq mit lokalem Caching, einigen benutzerdefinierten Domain-Routen und Googles 8.8.8.8 als Upstream-DNS-Anbieter.

Der Routing-Ablauf sieht so aus: so:

  • Netzwerkrouter erhält eine Anfrage von einem Ihrer verbundenen Geräte. Der Router wird so konfiguriert, dass er den Dnsmasq-Host als seinen DNS-Server verwendet.
  • Dnsmasq prüft, ob er eine definierte Route für den Domänennamen hat, wie z. B. Webserver zu 192.168.0.101. Wenn die Anfrage nach http://web-server/example-page war, wird 192.168.0.101 an den Router zurückgesendet.
  • Wenn Dnsmasq keine passende Route hat, leitet es die DNS-Anfrage an Googles 8.8.8.8 weiter, um die Auflösung im öffentlichen Internet zu ermöglichen. Dadurch wird sichergestellt, dass Sie auch bei Verwendung Ihres eigenen DNS weiterhin auf das breitere Internet zugreifen können.

Sie müssen keine Konfigurationsänderungen auf Ihren Clientgeräten vornehmen. Alles, was sich hinter Ihrem Router befindet, führt am Ende DNS-Abfragen über Dnsmasq durch. Es ist jedoch erwähnenswert, dass alle gängigen Desktop- und mobilen Betriebssysteme die Einrichtung eines DNS-Servers unterstützen, sodass Sie einzelne Geräte für die Verwendung von Dnsmasq konfigurieren können, ohne es auf Router-Ebene zu aktivieren.

Erste Schritte

Wir gehen davon aus, dass Sie bereits über einen funktionierenden Linux-Computer verfügen, der bereit ist, Dnsmasq zu hosten. Dnsmasq ist nicht besonders ressourcenintensiv – Wenn Sie nur wenige Client-Geräte haben, läuft es problemlos auf einem Raspberry Pi.

Werbung

Ihrem Host sollte eine statische IP zugewiesen sein. Von hier an bezieht sich die IP 192.168.0.1 auf den Dnsmasq-Server.

Stellen Sie sicher, dass Dnsmasq installiert ist:

# Angenommen, ein Debian-System apt update apt install dnsmasq

Die Konfigurationsdatei von Dnsmasq befindet sich normalerweise unter /etc/dnsmasq.conf. Dies ist mit den Anfangseinstellungen vorbelegt. Damit Dnsmasq in einem lokalen Netzwerkszenario effektiv funktioniert, müssen einige Änderungen vorgenommen werden. Führen Sie sudo nano /etc/dnsmasq.conf aus, um die Datei zu öffnen, und verwenden Sie dann die Tastenkombination Strg+W, um die folgenden Zeilen zu suchen und auskommentieren:

#domain-needed #bogus-priv

Entfernen Sie das #-Zeichen aus der Anfang jeder Zeile. Folgendes wird durch diese Einstellungen aktiviert:

  • Domain-benötigt– Dadurch wird verhindert, dass Dnsmasq lokale Namen ohne Domänenteil an den Upstream-DNS-Server weiterleitet. In unserer Installation bedeutet dies, dass example.com zur Auflösung über Google berechtigt ist, Beispiel oder Webserver jedoch nicht. Es reserviert punktlose Namen für Ihr lokales Netzwerk.
  • bogus-priv– Verhindert die Weiterleitung von DNS-Reverse-Lookup-Abfragen an den Upstream-DNS-Server. Das bedeutet, dass interne IPs wie 192.168.0.101 Google niemals offengelegt werden. Wenn Sie dies nicht aktivieren, könnte die Architektur Ihres internen Netzwerks unbeabsichtigt an Ihren Upstream-Provider weitergegeben werden.

Um Ihren Upstream-DNS-Server einzurichten, fügen Sie Ihrer Konfigurationsdatei eine neue Zeile hinzu:

server= 8.8.8.8 server=4.4.4.4

Dies weist Dnsmasq an, unaufgelöste Anfragen an 8.8.8.8 weiterzuleiten. Wenn dieser Server nicht verfügbar ist, wird stattdessen 4.4.4.4 verwendet. Diese Adressen sind die primären und sekundären Resolver für den DNS-Dienst von Google.

Passen Sie als nächstes die Cache-Größe an. Dies ist standardmäßig ein relativ niedriger Wert von 150 zwischengespeicherten Anforderungen. Wenn Sie diesen Wert erhöhen, kann Dnsmasq mehr Lookups aus dem Cache bereitstellen, wodurch die Netzwerklatenz reduziert wird. Suchen Sie die Cache-Größenzeile, kommentieren Sie sie und ändern Sie ihren Wert:

cache-size=1000

Speichern und schließen Sie die Datei jetzt.

Zuordnen von Hostnamen zu IPs

Es gibt verschiedene Möglichkeiten, Hostnamen ihren IP-Adressen zuzuordnen. Am einfachsten ist es, der vorhandenen Datei /etc/hosts Ihres Servers Einträge hinzuzufügen. Dnsmasq lädt automatisch die Regeln aus dieser Datei als Teil seiner Standardkonfiguration.

Werbung

Öffne /etc/hosts und füge deine Routen am Ende der Datei hinzu. Die IP-Adresse steht an erster Stelle, gefolgt vom zuzuweisenden Namen:

192.168.0.101 web-server 192.168.0.105 gateway.lan

Diese Zeilen bedeuten, dass jede Anfrage an http://web-server an 192.168 weitergeleitet wird .0.101, während http://gateway.lan bei 192.168.0.5 endet. Speichern und schließen Sie die Datei, wenn Sie die Zuordnung Ihrer Geräte abgeschlossen haben.

Testen Ihres Servers

Starten Sie Dnsmasq neu, um alle Ihre Änderungen zu übernehmen:

sudo service dnsmasq restart

Überprüfen Sie, ob der Server ordnungsgemäß läuft:

sudo service dnsmasq status

Aktiv (wird ausgeführt) sollte grün angezeigt werden . Wenn Sie dies nicht tun, überprüfen Sie die Protokollzeilen am Ende der Statusinformationen, um herauszufinden, was nicht stimmt.

Jetzt können Sie Ihren Server testen. Sie können mit dem dig-Tool manuelle DNS-Suchversuche durchführen. Möglicherweise müssen Sie zuerst das dnsutils-Paket installieren.

dig google.com @localhost dig gateway.lan @localhost

Beide dieser Befehle sollten eine IP-Adresse im ANTWORT-ABSCHNITT anzeigen. Im Fall von gateway.lan sollte das Ergebnis laut der in /etc/hosts eingerichteten Routing-Regel 192.168.0.5 sein. Der @localhost-Teil der Befehle weist dig an, Ihren lokalen DNS-Server abzufragen.

Konfigurieren Ihres Netzwerks

Der letzte Schritt besteht darin, Ihren Netzwerkrouter so zu konfigurieren, dass er DNS-Lookups über Ihren Dnsmasq-Server durchführt. Die Schritte hierfür variieren je nach verwendeter Routing-Ausrüstung.

Werbung

Sobald Sie die richtige Einstellungsseite gefunden haben, stellen Sie die IP Ihres Servers (192.168.0.1 in dieser Anleitung) als primären DNS-Server des Routers ein. Es empfiehlt sich, einen öffentlichen DNS-Anbieter wie Googles 8.8.8.8 als sekundären Server zu konfigurieren. Dadurch wird sichergestellt, dass Sie auch dann weiterhin auf das Internet zugreifen können, wenn Ihr DNS-Server abstürzt und offline geht.

Jetzt stellen alle mit Ihrem Router verbundenen Geräte DNS-Abfragen über Ihre Dnsmasq-Instanz. Sie können Ihre Geräte über die ihnen zugewiesenen Namen wie Webserver und gateway.lan erreichen und vom DNS-Caching auf Netzwerkebene profitieren.

Schlussfolgerung

h2>

DNS ist ein kompliziertes Thema, aber Dnsmasq macht es einfach, einen einfachen Server in Betrieb zu nehmen. Es gibt viele weitere Einstellungen, die Sie erkunden können, sobald Sie die Kernfunktionen zum Laufen gebracht haben. Damit können Sie Abfragen filtern, Relays und Proxys verwalten, Skripte ausführen, wenn Ereignisse auftreten, und andere Arten von DNS-Einträgen wie MX-Ergebnisse für Mailserver einrichten.

Dnsmasq benötigt normalerweise nicht viel manuelles Intervention, sobald es live ist. Sie können Protokolle mit service dnsmasq status oder systemctl status dnsmasq überwachen. Jetzt können Sie von Ihrem selbst gehosteten DNS-Server profitieren, die Leistung maximieren und interne Domänennamen verwenden, um lokale Netzwerkgeräte zu erreichen.