Eines der wichtigsten Komponenten einer Netzwerkstruktur ist der DNS und DHCP Serverdienst. Bei diesen Diensten haben wir unter Linux mehrere zur Auswahl. Mit diesen Artikel will ich aber einen DNS/DHCP Dienst vorstellen, der sehr einfach zu konfigurieren ist. Dnsmasq. Als Grundlage dient ein Linux Server mit Ubuntu 16.04 LTS.
Normalerweise folgt bei solchen Artikeln jetzt der zeilenlange Vortrag, was DNS und ein DHCP ist … Das ist auch wichtig zu verstehen: Der DNS ermöglicht uns die Auflösung von menschen-lesbaren Namen wie z.B. www.pilgermaske.org in eine IP-Adresse wie z.B. 188.40.94.213, über die sich unsere Rechner unterhalten. Der DHCP ist im Netzwerk der Dienst welcher an Rechner IP-Adressen verteilt und diese – mit dem zugehörigen PC-Namen – normalerweise im DNS einträgt.
Damit entsteht also mit der Zeit im Netzwerk (Internet oder Heimnetz) eine Art Telefonbuch, in der Dienste und Menschen Adressen zu Namen – und umgekehrt – nachschlagen können. Der Dnsmasq macht es uns einfach: Er ist DNS und DHCP in Einem und erspart uns ein umständliches konfigurieren von Berechtigungen, dass notwendig wird, wenn ein DHCP seine vergebenen Adressen im DNS eintragen soll. Siehe ISC DNS/DHCP als alternatives Produkt.
Ein Heimnetz, das die hier beschriebene Konfiguration nutzt, sieht etwa wie auf folgenden Bild aus, wobei auf dem Heim- Server mit 2 Netzwerkkarten der Dnsmasq installiert wäre:
Beachte, dass es bei zwei Netzwerkkarten notwendig sein kann, das routing (von einer Netzwerkkarte zur anderen) in der /etc/sysctl.conf mit der Option net.ipv4.ip_forward=1 zu aktivieren!
Die Konfiguration von Dnsmasq ist sehr einfach
- Installiere Dnsmasq mit dem Befehl apt-get install dnsmasq auf der Konsole.
- Überprüfe die /etc/hosts das der Servername korrekt hinterlegt ist!
- Aktiviere in der /etc/dnsmasq.conf die letzte Zeile (conf-dir), damit dnsmasq seine config im folgenden Ordner findet.
- Lege im Ordner /etc/dnsmasq.d eine Datei mit den Namen dnsmasq.conf an (mit 644 und root:root ver-rechtet).
- In diesen Beispiel ist eth0 die Netzwerkkarte zum Internet und eth1 zum Heimnetz. An eth0 sollen also keine IP’s vergeben werden.
- Netzwerkkarten eines Server’s sind normalerweise mit einer festen IP-Adresse konfiguriert, also keine dynamische Zuweisung über DHCP.
- Füge in die dnsmasq.conf folgenden Inhalt ein:
domain-needed bogus-priv filterwin2k local=/meinheim.lan/ expand-hosts domain=meinheim.lan dhcp-authoritative interface=eth1 no-dhcp-interface=eth0 dhcp-range=interface:eth1,192.168.1.11,192.168.1.99,6h log-facility=/var/log/dnsmasq.log # optional: den clients weitere werte ueber dhcp zuweisen # wenn Wins-Server(samba) im Netz: #dhcp-option=44,192.168.1.1 # wenn anderes Gateway notwendig: #dhcp-option=3,192.168.1.100 # wenn anderer Nameserver z.B. fuer die .org-Domaenen gewuenscht: #server=/org/8.8.4.4
Werte mit einer # (Raute) davor sind de-aktiviert und dienen als Beispiel. Mit der Anpassung der interface Option an das eigene Netzwerk hast Du eine funktionierende Konfiguration.
Mit dem Setzen des Wertes ENABLED=1 in der Datei /etc/default/dnsmasq wird der Dienst aktiviert und mit service dnsmasq start sogleich gestartet. Überprüfe danach, ob in der /etc/resolv.conf die Einträge search meinheim.lan und nameserver 127.0.0.1 stehen. Ein nslookup
Beachte!
Ist es notwendig, weitere Nameserver einzubinden, sollte in der /etc/network/interfaces – unter der iface Konfiguration für die Netzwerkkarte – mit einem Eintrag wie: dns-nameserver
Die Suchdomäne – also der Name des Heimnetzes – wird so ebenfalls an dnsmasq übergeben: Eine Zeile wie: dns-search meinheim.lan unter einem iface übergibt diesen Wert zur automatischen Generierung der resolv.conf.
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.2
dns-nameserver 8.8.8.8
dns-nameserver 8.8.4.4
dns-search meinheim.lan
Zusätzlich – s.o. in der config – kann ein Eintrag in der dnsmasq Konfiguration gesetzt werden, der Dnsmasq sagt, dass z.B. alle Internet- Adressen, die auf .org enden, von dem DNS mit der IP-Adresse 8.8.4.4 aufgelöst werden sollen. Das wäre aber ein Sonderfall und ist hier nur eine Beispielhafte Ergänzung!
Clients anpassen
Und meine Rechner? Klar ist wohl, dass die Rechner in der Netzwerk- Konfiguration auf DHCP eingestellt sein müssen, was aber Standard bei vielen Betriebssystemen – wie z.B. Windows, Linux und OSX – nach einer Installation ist.
Das Ergebnis ist, dass ein Rechner im Heimnetzwerk (nach einen Neustart), den Dnsmasq Server als DNS und Gateway eingetragen hat, eine IP-Adresse mit einem zugehörigen Lease (Gültigkeit der IP -> Range) und einen DNS Suffix (meinheim.lan) erhält. Unter Windows können in einer cmd Konsole und mit dem Befehl ipconfig /all die empfangenen Einträge des Rechners überprüft werden. Mit der oben-gezeigten aktiven Konfiguration geht jeder Rechner im Heimnetz über den Dnsmasq Server in das Internet! (siehe Bild oben)
Beachte auch – als eine weitere Hilfestellung für Dnsmasq – die kommentierte Beispiel- Konfiguration unter /usr/share/doc/dnsmasq/examples und den Inhalt von /var/log/dnsmasq.log.
Have fun
Comments