So richten Sie das DNS-Caching mit dnsmasq unter Ubuntu ein

DNSmasq kann verwendet werden, um DNS-Anfragen für Linux-Distributionen zwischenzuspeichern. es kann jedoch ein wenig herausfordernd sein.

Der DNS-Cache dient dazu, das DNS-Lookup-Verfahren zu beschleunigen, das den Domänennamen einer Website in die zugehörige IP-Adresse umwandelt. Wenn mehrere Benutzer in Ihrem Netzwerk dieselbe Website-Adresse besuchen, kann die Verwendung des lokalen DNS-Cache-Servers die Zeit reduzieren, die zum Laden des Webs benötigt wird.

Lassen Sie uns zunächst sehen, was DNS-Caching ist.

Was ist DNS-Caching?

Das DNS wird vom Internet verwendet, um alle öffentlich zugänglichen Online-Sites und ihre zugehörigen IP-Adressen zu verfolgen. Es kann mit einem Telefonbuch verglichen werden. Die Verwendung von DNS verhindert, dass wir uns die IP jeder Site merken müssen, was für die Interaktion der Netzwerkinfrastruktur mit Internetseiten erforderlich ist.

Wann immer Sie die Suchmaschine auffordern, eine Webseite anzuzeigen, geschieht dies tatsächlich hinter den Kulissen.

Obwohl Ihr System Zugriff auf eine große Anzahl externer DNS-Server hat, besteht das Problem darin, dass eine zentrale Replik des DNS die Übertragung und Auflösung immer noch beschleunigt. Hier kommt das DNS-Caching ins Spiel.

Vor dem Senden der Anfrage an das Web übernimmt der DNS-Cache die Identitätsauflösung für Domänen, auf die kürzlich und häufig zugegriffen wurde, um den Vorgang erheblich zu beschleunigen.

Auf den DNS-Server wird immer dann zugegriffen, wenn eine IP-Adresse in einen Domänennamen aufgelöst werden muss. Dies kann den DNS-Server zusätzlich belasten, insbesondere wenn die Website viele Anfragen gleichzeitig erhält.

Ein DNS-Cache wird verwendet, um DNS-Anfragen und Antwortzeiten zu verkürzen. Die aufgelösten IP-Adressen werden zusammen mit Host-Details lokal gespeichert. Anstatt eine neue DNS-Abfrage zu initiieren, wird das Ergebnis aus dem DNS-Cache-Speicher abgerufen, wenn die IP oder der Domänenname das nächste Mal aufgelöst werden muss.

Wie hilft DNS-Caching bei der Behebung zeitweiliger DNS-Auflösungsprobleme auf Amazon EC2-Instances?

Die Mehrheit der Linux-Systeme verwendet keinen lokalen DNS-Cache. Das bedeutet, dass alle DNS-Anforderungen direkt an den von Amazon bereitgestellten autoritativen DNS-Resolver gesendet werden, der eine Beschränkung hinsichtlich der Anzahl der Anforderungen hat, die er gleichzeitig verarbeiten kann. DNS-Auflösungsprobleme treten auf, wenn viele Anfragen eingehen.

Die Bereitstellung eines lokalen DNS-Cache im System hilft Ihnen, die CPU- und Netzwerkauslastung zu reduzieren und gleichzeitig DNS-Auflösungsfehler zu vermeiden. Ein lokaler DNS-Cache antwortet auf Anfragen an externe DNS-Ressourcen wie Amazon RDS und S3.

Das DHCP-Protokoll wird während des Starts von Amazon EC2-Instances verwendet, die mit Amazon VPCs verbunden sind, um eine DNS-Serveradresse anzufordern.

Wenn Sie Amazon VPC verwenden, um eine Virtual Private Cloud aufzubauen, verwendet Route 53 DNS Resolver effektiv einen Resolver auf der VPC, um auf DNS-Anforderungen für EC2-Instances zu antworten, die unter lokalen Amazon VPC-Webadressen und Einträgen in privat verwalteten Zonen ausgeführt werden. Resolver führt wiederkehrende Suchvorgänge auf öffentlichen DNS-Servern für alle zusätzlichen Webadressen durch.

  Fehlerbehebung bei Webseiten, die nicht geladen werden

Ein DNS-Cache dient als vorübergehende Aufzeichnung früherer DNS-Abfragen, die unser System schnell untersuchen kann, während es versucht, auf eine Online-Website zuzugreifen. Es verwaltet ein Protokoll jeder bestehenden und nachfolgenden Sitzung. Dieser DNS-Cache erleichtert die Domänenauflösung und verhindert Fehler bei Amazon EC2-Linux-Instances.

Viele Benutzer verwenden normalerweise den Route 53-Dienst von Amazon für DNS, wenn sie auf AWS zugreifen. Es ist wirklich einfach zu bedienen und fast kostenlos. Es gibt jedoch eine Reihe von Gründen, die die Entscheidung des Benutzers für die Verwendung eines lokalen DNS-Servers beeinflussen könnten.

Obwohl bind9 immer noch eine großartige Option zum Einrichten eines lokalen DNS-Cache-Servers ist, ist dnsmasq viel einfacher zu installieren und zu konfigurieren, sowohl auf EC2-Instances als auch auf einem lokalen Computer.

Was ist dnsmasq?

DNSmasq ist ein Linux-bezogenes Tool, das DNS-, DHCP-, TFTP- und DNS-Caching unterstützt. Es ist kompakt und leicht und eignet sich daher ideal für Netzwerke und Firewalls mit weniger Ressourcenbeschränkungen.

Es ist unglaublich einfach zu installieren und zu konfigurieren. Um DNS und DHCP für Subnetze einzurichten, ist dnsmasq eine flexible und praktische Lösung.

Es ist möglich, diese DHCP-zugewiesenen Kennungen und zugehörigen Anweisungen für jeden Server oder für einen zugrunde liegenden Controller einzurichten. Dynamische und statische DHCP-Optionen werden beide von dnsmasq unterstützt. Es ist portabel und kann DNS und DHCP für mindestens 1.000 Clients verwalten.

Wenn eine DNS-Anfrage empfangen wird, antwortet dnsmasq entweder aus einem lokalen Cache oder überträgt sie an einen autoritativen DNS-Server. Zusätzlich zur Beantwortung von DNS-Anfragen für Adressen mit DHCP-Konfiguration überprüft es den Inhalt der Datei /etc/hosts, um lokale Hostnamen zu identifizieren, die nicht im öffentlichen DNS aufgeführt sind.

Die Verwendung des dnsmasq-Tools anstelle des integrierten DNS-Cache des Browsers verbessert die Leistung beim Surfen im Internet erheblich. Es ist ideal für eine integrierte Umgebung mit begrenzten Ressourcen, da es sehr einfach einzurichten ist und sehr wenig Speicherplatz benötigt.

Eigenschaften von dnsmasq

  • Es ist einfach, interne DNS-Server mit dnsmasq zu integrieren, indem Sie es so konfigurieren, dass bestimmte Abfragen zur Auflösung von Domänennamen an bestimmte autoritative Server übertragen werden.
  • Durch den konfigurierten lokalen DNS-Server wird die Arbeitslast des Servers reduziert und die Zuverlässigkeit erhöht.
  • Die DNS-Konfiguration für Firewall-fähige Endpunkte ist ziemlich einfach und unabhängig von dem vom ISP verwendeten DNS.
  • Wenn der mit dem Internet verbundene Port nicht erreichbar ist, während eine DNS-Prüfung auf dem Computer durchgeführt wird, wird der Suchvorgang sofort ausgesetzt.
  • Durch PPP- (Punkt-zu-Punkt-Protokoll) oder DHCP-Abfragen kann dnsmasq tatsächlich so konfiguriert werden, dass es regelmäßig Daten direkt vom zugrunde liegenden Domänenauflösungsserver sammelt.
  So analysieren Sie Text

Installation

Der systemd-aufgelöste Dienst muss vor der Installation und Konfiguration des Dienstprogramms dnsmasq deaktiviert werden.

systemctl stop systemd-resolved

Sie können es auch mit dem mask-Attribut verbergen, damit es beim Neustart nicht automatisch gestartet wird.

 systemctl mask systemd-resolved

Die Installation von dnsmasq ist die erste Aktion, die Sie ausführen müssen, nachdem Sie die systemd-resolved. DNSmasq ist in fast allen Linux-Distributionen vorinstalliert. Wenn nicht, können Sie es manuell installieren. Starten Sie ein Befehlsterminal und geben Sie dazu den folgenden Befehl ein.

sudo apt-get install dnsmasq

Verwenden Sie den folgenden Befehl, wenn Sie ein Yum-Benutzer sind:

sudo yum install -y dnsmasq

Dieser Befehl installiert das Tool automatisch und startet die dnsmasq im Hintergrund.

Nach erfolgreicher Installation können Sie den Status von dnsmasq mit dem folgenden Befehl überprüfen.

systemctl status dnsmasq

Wenn es seinen Status als „aktiv (läuft)“ anzeigt, bedeutet dies, dass die Installation abgeschlossen und auf Port 53 konfiguriert ist. Wenn es seinen Status als „inaktiv (tot)“ anzeigt, müssen Sie sowohl die Ubuntu-Maschine als auch dnsmasq erneut neu starten. Dadurch wird der Fehler behoben.

Aufbau

Dnsmasq kann jetzt auf Ihrem Computer als lokaler Caching-DNS-Server eingerichtet werden. Die Standardkonfigurationsdatei befindet sich unter /etc/dnsmasq.conf. Diese Konfigurationsdatei muss geändert werden, um das Dienstprogramm dnsmasq im System einzurichten.

Verwenden Sie diesen Befehl, um die Konfigurationsdatei zu öffnen und zu bearbeiten.

nano /etc/dnsmasq.conf

Die Konfigurationsdatei darf nur mit Root-Rechten bearbeitet werden. Löschen Sie einfach alles in der Datei, einschließlich der Kommentare, und kopieren Sie diese Konfigurationseinstellung einfach, und speichern Sie sie.

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1
expand-hosts
domain=geek-demo.com
cache-size=1000

Lassen Sie mich kurz beschreiben, was jeder der Parameter bedeutet.

  • Port – Um den Port anzugeben oder zu binden, den Dnsmasq zum Empfangen von DNS-Anforderungen verwendet.
  • domain-needed – Überträgt nur die Domainnamen an den Upstream-DNS-Server.
  • bogus-priv – verhindert Domain- und Portweiterleitung
  • listen-address – Um die Nameserver-Adresse zu definieren. Typischerweise wird localhost als Standard verwendet, um einen lokalen DNS-Server einzurichten.
  • domain – Um die Domänen zu konfigurieren, die dnsmasq an kurze Bezeichner anhängt.
  • cache-size – Die maximal zulässige DNS-Caching-Größe im Speicher.

Speichern und schließen Sie die Konfigurationsdatei, nachdem Sie alle erforderlichen Änderungen vorgenommen haben. Und der nächste Schritt besteht darin, die Datei /etc/resolv.conf zu bearbeiten, um die lokale Hostauflösungsadresse hinzuzufügen. Verwenden Sie den folgenden Befehl, um mit dem Nano-Editor zu öffnen.

nano /etc/resolv.conf

Hier finden Sie alle Nameserver, die Ihr System zur Adressauflösung verwendet. Fügen Sie in dieser Liste auch die Loopback-Adresse hinzu. Fügen Sie „nameserver 127.0.0.1“ hinzu und belassen Sie es in der ersten Zeile.

  So behalten Sie die Menüleiste auf dem Mac im Vollbildmodus

Speichern und beenden Sie die Konfigurationsdatei. Starten Sie das Dienstprogramm dnsmasq neu, damit die aktualisierte Einstellung wirksam wird.

systemctl restart dnsmasq

Testen des lokalen DNS-Caching-Servers

Es ist einfach, den lokalen DNS-Server zu testen. Öffnen Sie eine Befehlszeile und verwenden Sie den Befehl dig, um nach DNS-Caching zu suchen. Wenn Sie den Befehl dig zum ersten Mal ausführen, sollte das Ergebnis recht häufig sein.

┌──(root💀kali)-[/home/writer]
└─# dig wdzwdz.com                                                                                     1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> wdzwdz.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 623
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;wdzwdz.com.                 IN      A

;; ANSWER SECTION:
wdzwdz.com.          227     IN      A       172.66.43.163
wdzwdz.com.          227     IN      A       172.66.40.93

;; Query time: 31 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Oct 15 07:52:49 EDT 2022
;; MSG SIZE  rcvd: 74

Beachten Sie hier bitte, dass die Abfragezeit etwa 31 ms beträgt, um die Details vom Upstream-Nameserver abzufragen. Führen Sie denselben dig-Befehl noch einmal aus, und Sie werden eine deutliche Verkürzung der Abfragezeit feststellen.

┌──(root💀kali)-[/home/writer]
└─# dig wdzwdz.com                                                                                     1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> wdzwdz.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21942
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;wdzwdz.com.                 IN      A

;; ANSWER SECTION:
wdzwdz.com.          281     IN      A       172.66.40.93
wdzwdz.com.          281     IN      A       172.66.43.163

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Oct 15 07:58:10 EDT 2022
;; MSG SIZE  rcvd: 74

Hier beträgt die Abfragezeit 0 ms. Dies liegt daran, dass dnsmasq nach Durchführung der anfänglichen Suche die Daten gespeichert hat und alle anschließend durchgeführten Suchen aufgrund der Nutzung des gespeicherten Caches sofort erfolgten. Ein Neustart von dnsmasq ist notwendig, wenn Sie den gespeicherten DNS-Cache löschen möchten.

Einpacken

In diesem Artikel haben wir gesehen, wie man dnsmasq so einrichtet und konfiguriert, dass es als lokaler DNS-Server fungiert. Möglicherweise möchten Sie auch erfahren, wie Sie DNS-Server für Faster Browsing in verschiedenen Betriebssystemen ändern können.