Seite wählen

NETWAYS Blog

Pimp your DNS!

Bei einem Consultingkunden hatte ich eine interessante Aufgabenstellung zu lösen: „Jedes Mal wenn die Domänencontroller geplant nacheinander durchgestartet werden führt das dazu, dass die Hosts im Monitoring (Icinga) kurzzeitig nicht erreichbar sind“. Auf die Frage warum die Domänencontroller regelmäßig durchgestartet werden möchte ich übrigens nicht näher eingehen 😉

Nach etwas Recherche hat sich dann herausgestellt dass das Problem aller Wahrscheinlichkeit nach am DNS liegt. Dazu sollte man wissen das die DNS-Auflösung über das sog. Resolver Configuration File die Datei „/etc/resolv.conf“ bei mehreren Einträgen sequenziell läuft. D.h. das immer versucht wird über den zuerst eingetragen Nameserver aufzulösen, sollte das nicht funktionieren wird nach Erreichen des Timeouts (standardmäßig 5s) der nächste Eintrag probiert usw.

Was also tun? Den herkömmlichen Mechanismus zur DNS-Auflösung einfach ersetzen! Eine elegante und einfach zu installierende Alternative ist dnsmasq. Das Tool bietet zwar noch ein paar weitere Möglichkeiten, in meinem Fall reicht es aber schon aus das dnsmasq die Nameserver parallel befrägt (all-servers) und den nimmt, der am schnellsten antwortet. Am Beispiel von CentOS 7 lässt sich dnsmasq als Plugin über den Network Manager aktivieren. Dazu hinterlegen wir zuerst einmal die Hauptkonfiguration von dnsmasq in der Datei „/etc/NetworkManager/dnsmasq.d/dnsmasq.conf“:

resolv-file=/etc/resolv.dnsmasq
all-servers
interface=lo
bind-interfaces
cache-size=0

Danach übertragen wir die beispielhaften Nameserver aus „/etc/resolv.conf“ nach „/etc/resolv.dnsmasq“:

nameserver 8.8.8.8
nameserver 8.8.4.4

Ist das passiert können wir im Network Manager über „/etc/NetworkManager/conf.d/dns.conf den DNS-Modus ändern:

[main]
dns=dnsmasq

Noch kurz den Network Manager neu laden:

systemctl reload NetworkManager.service

Und schon kommen wir in den Genuss der Auflösung via dnsmasq. Dabei ist zu beachten das der Network Manager die bisherigen Namerserver-Einträge in der „/etc/resolv.conf“ entfernt und gegen lediglich einen Eintrag auf „127.0.0.1“ ersetzt hat.

Beim betroffenen Kunden funktioniert die Lösung mit dnsmasq seit einigen Monaten zuverlässig und das auch wenn die Domänencontroller mal wieder durchgestartet werden. Und natürlich würde es mich freuen wenn wir auch Ihr Problem lösen können!

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

Messen der Netzwerk Performance mit iperf

Quelle: http://www.nwlab.net


In einem Consulting- und Monitoring-Leben passiert es immer wieder das bestimmte Netzwerkverbindungen und Leitungen einfach nicht so tun wie sie eigentlich sollten. Besonders in Zeiten der Virtualisierung ist eine Bandbreite von 1GBit/s nicht mehr unbedingt 1GBit/s wert. So zeigt das Betriebssystem der virtuellen Maschine zwar dieses Gigabit an, jedoch tummeln sich auf dem physikalischen Host mehrere VMs, welche sich die verfügbare Bandbreite teilen müssen.
Man ist also gut beraten indem man den Durchsatz einfach selber misst. Hierzu empfiehlt sich unter Linux iperf! Das Tool iperf kann als Server und Client gestartet werden, wobei der benutzte Port mit der Option -p frei wählbar ist.
Starten des Servers:
root@server-2:~# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.1.2 port 5001 connected with 192.168.1.1 port 35733

Start des Clients:
root@server-1:~# iperf -c 192.168.1.2
------------------------------------------------------------
Client connecting to 192.168.1.2, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.1 port 35733 connected with 192.168.1.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.10 GBytes 943 Mbits/sec

Des weiteren beherrscht iperf auch bidirektionale Test, Limitierung von Übertragungszeiten und übertragenen Bytes, womit es auch gut für automatische Messungen (z. B. Monitoring Plugins) geeignet ist.

Tobias Redel
Tobias Redel
Head of Professional Services

Tobias hat nach seiner Ausbildung als Fachinformatiker bei der Deutschen Telekom bei T-Systems gearbeitet. Seit August 2008 ist er bei NETWAYS, wo er in der Consulting-Truppe unsere Kunden in Sachen Open Source, Monitoring und Systems Management unterstützt. Insgeheim führt er jedoch ein Doppelleben als Travel-Hacker und renoviert, baut und bastelt als Heimwerker an allem was er finden kann.