Website-Suche

So richten Sie einen DNS/DHCP-Server mit dnsmasq unter CentOS/RHEL 8/7 ein


Ein Dynamic Host Configuration Protocol (DHCP)-Server weist jedem Gerät in einem Netzwerk dynamisch IP-Adressen und andere Netzwerkkonfigurationsparameter zu. Ein DNS-Forwarder in einem LAN leitet DNS-Anfragen für nicht-lokale Domänennamen an vorgelagerte DNS-Server (außerhalb dieses Netzwerks) weiter. Ein DNS-Caching-Server beantwortet rekursive Anfragen von Clients, sodass die DNS-Anfrage schneller aufgelöst werden kann, wodurch die DNS-Suchgeschwindigkeit für zuvor besuchte Websites verbessert wird.

dnsmasq ist ein schlanker, einfach zu konfigurierender DNS-Forwarder, eine DHCP-Serversoftware und ein Router-Advertisement-Subsystem für kleine Netzwerke. Dnsmasq unterstützt Linux, *BSD, Mac OS X sowie Android.

Es verfügt über ein DNS-Subsystem, das einen lokalen DNS-Server für das Netzwerk bereitstellt, alle Abfragetypen an vorgelagerte rekursive DNS-Server weiterleitet und gängige Datensatztypen zwischenspeichert. Das DHCP-Subsystem unterstützt DHCPv4, DHCPv6, BOOTP, PXE und einen TFTP-Server. Und das Router-Advertisement-Subsystem unterstützt die grundlegende Autokonfiguration für IPv6-Hosts.

In diesem Artikel führen wir Sie durch die Anweisungen zur Installation und Einrichtung eines DNS/DHCP-Servers mit dnsmasq unter CentOS/RHEL 8/7 > Verteilungen.

Installieren von dnsmasq unter CentOS und RHEL Linux

1. Das Paket dnsmasq ist in den Standard-Repositorys verfügbar und kann wie gezeigt einfach mit dem YUM-Paketmanager installiert werden.

yum install dnsmasq

2. Sobald die Installation des dnsmasq-Pakets abgeschlossen ist, müssen Sie zunächst den dnsmasq-Dienst starten und ihn so aktivieren, dass er automatisch beim Systemstart startet. Überprüfen Sie außerdem seinen Status, um sicherzustellen, dass es betriebsbereit ist, indem Sie die folgenden systemctl-Befehle verwenden.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Konfigurieren des dnsmasq-Servers in CentOS und RHEL Linux

3. Der dnsmasq-Server kann über die Datei /etc/dnsmasq.conf (die gut kommentierte und erläuterte Optionen enthält) und den Benutzer konfiguriert werden -definierte Konfigurationsdateien können auch im Verzeichnis /etc/dnsmasq.d hinzugefügt werden.

DNS ist standardmäßig aktiviert. Bevor Sie also Änderungen vornehmen, stellen Sie sicher, dass Sie eine Sicherungskopie der Datei /etc/dnsmasq.conf erstellen.

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4. Öffnen Sie nun die Datei /etc/dnsmasq.conf mit Ihrem bevorzugten textbasierten Editor und nehmen Sie die folgenden vorgeschlagenen Konfigurationseinstellungen vor.

vi /etc/dnsmasq.conf 

Mit der Option listen-address wird die IP-Adresse festgelegt, an der dnsmasq lauscht. Um Ihren CentOS/RHEL-Server zum Abhören von DHCP- und DNS-Anfragen im LAN zu verwenden, legen Sie den listen-address zu seinen LAN-IP-Adressen hinzu (denken Sie daran, 127.0.0.1 einzuschließen). Beachten Sie, dass die Server-IP statisch sein muss.

listen-address=::1,127.0.0.1,192.168.56.10

Im Zusammenhang mit dem oben Gesagten können Sie die Schnittstelle, die dnsmasq abhört, mithilfe der Option „Schnittstelle“ einschränken (fügen Sie mehr Zeilen für mehr als eine Schnittstelle hinzu).

interface=eth0

5. Wenn Sie möchten, dass eine Domäne (die Sie wie unten gezeigt festlegen können) automatisch zu einfachen Namen in einer Hosts-Datei hinzugefügt wird, entkommentieren Sie das expand- hosts-Option.

expand-hosts

6. So legen Sie die Domäne für dnsmasq fest, was bedeutet, dass DHCP-Clients vollqualifizierte Domänennamen haben, solange die festgelegte Domäne übereinstimmt, und legt die „Domäne“ fest “ DHCP-Option für alle Clients.

domain=tecmint.lan

7. Definieren Sie als Nächstes auch den Upstream-DNS-Server für nicht-lokale Domänen mithilfe der Option server (in der Form server=dns_server_ip), wie gezeigt .

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Anschließend können Sie Ihre lokale Domain mithilfe der Option Adresse wie gezeigt auf eine oder mehrere IP-Adressen umstellen.

address=/tecmint.lan/127.0.0.1 
address=/tecmint.lan/192.168.56.10

9. Speichern Sie die Datei und überprüfen Sie die Syntax der Konfigurationsdatei wie gezeigt auf Fehler.

dnsmasq --test

Konfigurieren von dnsmasq mit der Datei /etc/resolv.conf

10. In diesem Schritt müssen Sie alle an dnsmasq zu sendenden Abfragen durchführen, indem Sie die Localhost-Adressen als einzige Nameserver in der Datei /etc/resolv.conf hinzufügen.

vi /etc/resolv.conf

11. Die Datei /etc/resolv.conf wird von einem lokalen Daemon, insbesondere dem NetworkManager, verwaltet, daher werden alle vom Benutzer vorgenommenen Änderungen überschrieben. Um dies zu verhindern, schützen Sie sie mit einem Schreibschutz, indem Sie wie gezeigt das unveränderliche Dateiattribut (Schreibzugriff auf die Datei deaktivieren) mithilfe des Befehls chattr festlegen.

chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf

Definieren von DNS-Hosts und -Namen

12. Der Dnsmasq liest alle DNS-Hosts und Namen aus der Datei /etc/hosts. Fügen Sie also die IP-Adressen und Namenspaare Ihrer DNS-Hosts hinzu wie gezeigt.

127.0.0.1       dnsmasq
192.168.56.10 	dnsmasq 
192.168.56.1   	gateway
192.168.56.100	maas-controller 
192.168.56.20 	nagios
192.168.56.25 	webserver1

Wichtig: Lokale DNS-Namen können auch durch den Import von Namen aus dem DHCP-Subsystem oder durch die Konfiguration einer Vielzahl nützlicher Datensatztypen definiert werden.

13. Um die oben genannten Änderungen zu übernehmen, starten Sie den dnsmasq-Dienst wie gezeigt neu.

systemctl restart dnsmasq

14. Wenn der Dienst firewalld ausgeführt wird, müssen Sie die Dienste DNS und DHCP in der Firewall-Konfiguration öffnen , um Anfragen von Hosts in Ihrem LAN an den dnsmasq-Server weiterzuleiten.

firewall-cmd --add-service=dns --permanent
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload

Lokales DNS testen

15. Um zu testen, ob der lokale DNS-Server oder die Weiterleitung ordnungsgemäß funktioniert, müssen Sie Tools wie dig oder nslookup zum Durchführen von DNS-Abfragen verwenden. Diese Tools werden vom bind-utils-Paket bereitgestellt, das unter CentOS/RHEL 8 möglicherweise nicht vorinstalliert ist, Sie können es jedoch wie gezeigt installieren.

yum install bind-utils

16. Nach der Installation können Sie wie gezeigt eine einfache Abfrage für Ihre lokale Domain ausführen.

dig tecmint.lan
OR
nslookup tecmint.lan

17. Sie können auch versuchen, den FQDN eines der Server abzufragen.

dig webserver1.tecmint.lan
OR
nslookup webserver1.tecmint.lan

18. Um eine umgekehrte IP-Suche zu testen, führen Sie einen ähnlichen Befehl aus.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Aktivieren Sie den DHCP-Server mit dnsmasq

19. Sie können den DHCP-Server aktivieren, indem Sie die Option dhcp-range auskommentieren und den Bereich der für die Lease verfügbaren Adressen und optional eine Lease-Zeit angeben z. B. (für mehr als ein Netzwerk wiederholen).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. Die folgende Option definiert, wo der DHCP-Server seine Lease-Datenbank speichert. Dies hilft Ihnen, die von ihm zugewiesenen IP-Adressen einfach zu überprüfen.

dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

21. Um den DHCP-Server in den autorisierenden Modus zu versetzen, entfernen Sie das Kommentarzeichen für die Option.

dhcp-authoritative

22. Speichern Sie die Datei und starten Sie den dnsmasq-Dienst neu, um die letzten Änderungen zu übernehmen.

systemctl restart dnsmasq

Damit sind wir am Ende dieses Leitfadens angelangt. Um uns bei Fragen oder Gedanken zu diesem Leitfaden zu erreichen, verwenden Sie das unten stehende Feedback-Formular.