DNSmasq kann verwendet werden, um DNS-Anfragen für Linux-Distributionen zwischenzuspeichern. es kann jedoch ein wenig herausfordernd sein.
Der DNS-Cache arbeitet, um die zu beschleunigen DNS-Suche Verfahren, das den Domänennamen einer Website in die zugehörige IP-Adresse umwandelt. Wenn mehrere Benutzer in Ihrem Netzwerk dieselbe Website-Adresse besuchen und die lokale DNS-Cache-Server kann die Ladezeit des Webs verkürzen.
Lassen Sie uns zunächst sehen, was DNS-Caching ist.
What Is 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.
Die DNS-Server wird immer dann zugegriffen, wenn es notwendig ist, eine IP-Adresse in einen Domänennamen aufzulösen. 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 Begrenzung 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 z 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.
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.
What is 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 /etc/hosts
-Datei, 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.
Features of 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.
Installation
Die systemd-resolved
Der Dienst muss vor der Installation und Konfiguration des deaktiviert werden dnsmasq
Dienstprogramm.
systemctl stop systemd-resolved
Sie können es auch mit verbergen Maske" -Attribut, damit es beim Neustart nicht automatisch gestartet wird.
systemctl mask systemd-resolved
Die Installation von dnsmasq ist die erste Aktion, die Sie nach dem Deaktivieren von ausführen müssen 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 überprüfen dnsmasq
indem Sie den folgenden Befehl verwenden.
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.

Configuration
Dnsmasq kann jetzt auf Ihrem Computer als lokaler Caching-DNS-Server eingerichtet werden. Die Standardkonfigurationsdatei befindet sich unter /etc/dnsmasq.conf
. Diese Konfigurationsdatei muss zum Einrichten geändert werden dnsmasq
Nutzen im System.
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.
- Hafen – Um den Port anzugeben oder zu binden, den Dnsmasq zum Empfangen von DNS-Anforderungen verwendet.
- Domäne benötigt – Überträgt nur die Domänennamen an den vorgeschalteten DNS-Server.
- Scheinprivat – verhindert Domänen- und Portweiterleitung
- Hör-Adresse – Um die Nameserver-Adresse zu definieren. Typischerweise wird localhost als Standard verwendet, um einen lokalen DNS-Server einzurichten.
- Domain – Zum Konfigurieren der Domänen, die dnsmasq an Kurzkennungen anhängt.
- Cache-Größe – 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 ist die Bearbeitung der /etc/resolv.conf
Datei, um die Auflösungsadresse des lokalen Hosts 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. Hinzufügen "Nameserver 127.0.0.1“ und belassen Sie es in der ersten Zeile.

Speichern und beenden Sie die Konfigurationsdatei. Starten Sie das Dienstprogramm dnsmasq neu, damit die aktualisierte Einstellung wirksam wird.
systemctl restart dnsmasq
Testing Local DNS Caching server
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 geekflare.com 1 ⚙
; <<>> DiG 9.18.0-2-Debian <<>> geekflare.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:
;geekflare.com. IN A
;; ANSWER SECTION:
geekflare.com. 227 IN A 172.66.43.163
geekflare.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 geekflare.com 1 ⚙
; <<>> DiG 9.18.0-2-Debian <<>> geekflare.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:
;geekflare.com. IN A
;; ANSWER SECTION:
geekflare.com. 281 IN A 172.66.40.93
geekflare.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.
Fazit
In diesem Artikel haben wir gesehen, wie man dnsmasq so einrichtet und konfiguriert, dass es als lokaler DNS-Server fungiert. Sie könnten auch daran interessiert sein, zu erfahren, wie man das macht Ändern Sie die DNS-Server für schnelleres Surfen in verschiedenen Betriebssystemen.