dnsmasq auf KVM-Wirtssystem

tsk

Member
Moin zusammen,

ich betreibe in meinem lokalen Heimnetz u.a. einen Ubuntu 12.04 Desktop, auf dem mehrere Server (Ubuntu Server 12.04, 14.04) per KVM virtualisiert werden. In den Servern steckt viel Arbeit, und ich kann mir nicht erlauben, sie zu "verlieren". Die Server sind mit statischer IP über virtbr konfiguriert, und nutzen derzeit den Nameserver meines Routers, um nach außen zu gelangen.

Jetzt möchte ich auf einem der vServer (Ubuntu 14.04) einen Mail Server einrichten, um einen späteren live Betrieb vorzubereiten. Dies erfordert einen Nameserver im LAN. Bind ist mir zu komplex, aber dnsmasq scheint beherrschbar.

Der ideale Ort für den NS wäre der Desktop, auf dem auch die Server virtualisiert werden:
1. NS: Der Desktop selbst
2. NS: Mein Router

Das Paket dnsmasq ist noch nicht installiert. Es wird aber bereits von libvirt benutzt. Es gibt ellenlange Threads zu Problemen, für mich, als interessierten Laien, in marsianisch und mit nicht eindeutigem Endergebnis.

Meine Frage: Kann ich mich trauen, das Paket dnsmasq auf dem KVM Host zu installieren, oder schieße ich mir dann selbst in's Knie?

Ich könnte das Risiko vermeiden, und den Nameserver ausschließlich auf dem Gast-Server installieren. Damit könnte ich meinen Mail Server betreiben. Allerdings müsste ich dann meine virtuellen Domains weiterhin per /etc/hosts auf den einzelnen Lan Clients bekannt machen. Weiterer Nachteil wäre, dass ich später, auf dem live Server, auch einen externen NS hätte. Den von netcup. Damit würde dann meine vServer Umgebung im LAN von der späteren live Umgebung abweichen, was nicht so gut wäre.

Irgendwelche Ideen?
 
Ich nutze KVM selber nicht, aber so wie ich es sehe, mußt du nur darauf achten, dass dnsmasq sich nicht an die virtuellen Netzwerke bindet: http://wiki.libvirt.org/page/Libvirtd_and_dnsmasq
Allerdings sollte doch nichts dagegen sprechen, den dnsmasq im Gast zu installieren - normalerweise wird das keinen Einfluss auf deine Tests haben.
Alternative: Zusätzliche virtuelle Maschine für den dnsmasq erstellen und dessen IP auf allen Clients als DNS-Server eintragen.
 
Hallo danton,

vielen Dank für Deine Hilfe. Die Seite auf libvirt.org kannte ich bereits - die klingt ausgesprochen harmlos. Es gibt/gab allerdings auch lange Threads in anderen Foren, wo es um heftige Konflikte ging (mehrheitlich aus 2011/2012, also wohl vor 12.04).

Auf dem Gast mit dem betroffenem Server möchte ich keinen DNS Server installieren, da ich beabsichtige, ihn nach Fertigstellung auf den live Server zu klonen. Die Idee, dafür eine weitere virtuelle Maschine aufzusetzen, erscheint mir als genialer Königsweg.

Grüße,

Thomas
 
Ich habe noch eine Frage, hoffentlich nicht zu dumm:

Mein Nameserver ist auf einem KVM Gast-Server installiert. Er soll ausschließlich lokale Domains auflösen, und mir die Werbemafia vom Hals halten. Die Namensauflösungen von Testdomains auf dem Wirt, wie auch auf anderen LAN Clients, funktioniert. Auch externe Domains werden aufgelöst. Dies wundert mich ein bisschen, denn resolv.conf führt trotz mehrerer Reboots ausschließlich den NS auf localhost auf, nicht jedoch meinen Router als 2., und Googles NS als dritten.

Der NetworkManager ist nicht installiert.

Code:
# /etc/hosts (auf Gast-Server):
127.0.0.1	localhost
127.0.1.1	parmenides.unkommod-local.eu parmenides
192.168.2.23	unkommod-local.eu www.unkommod-local.eu maximus.unkommod-local.eu
# The following lines are desirable for IPv6 capable hosts
...

Code:
# /etc/resolv.conf (auf dem Gast-Server)
nameserver 127.0.0.1

Code:
# /etc/network/interfaces (auf dem Gast-Server)
# derzeit - bis auf IP - identisch auf Server und Clients
# 192.168.2.23 = NS auf virt. Server
# 192.168.2.254 = NS des DSL Router
# 8.8.8.8 = NS v. Google
auto eth0
iface eth0 inet static
	address 192.168.2.23
	network 192.168.2.0
	netmask 255.255.255.0
	broadcast 192.168.2.255
	gateway 192.168.2.254
	dns-nameservers 192.168.2.23 192.168.2.254 8.8.8.8

Versuche über /etc/resolvconf/resolv.conf.d/head (oder base) etwas zu ändern, führen zu merkwürdigen Ergebnissen (doppelter localhost, falsche Reihenfolge, base scheint völlig ignoriert zu werden).

Ich vermute mein Problem in "interfaces". Muss man daran etwas ändern, wenn lokal ein NS läuft? Muss der erste Eintrag auf dem Server ggf. der localhost sein?

Merkwürdig ist auch (jeweils von einem LAN-Client oder auf dem Server selbst ausgeführt):

Code:
#nslookup parmenides (oder parmenides.unkommod-local.eu):
Server:		192.168.2.23
Address:	192.168.2.23#53

Name:	parmenides
Address: 127.0.1.1

Besser sieht das Ergebnis für die Testdomains aus:

Code:
#nslookup www.unkommod-local.eu (oder beliebiger anderer Domain - außer parmenides):
Server:		192.168.2.23
Address:	192.168.2.23#53

Name:	www.unkommod-local.eu
Address: 192.168.2.23

Wo steckt da der Wurm?

NACHTRAG:

Hatte mich bei ifup vertippt. Nach Neustart löst jetzt alles korrekt auf. Was bleibt, ist völliges Unverständnis hinsichtlich der gültigen resolv.conf:

Code:
# /etc/resolv.conf 
nameserver 127.0.0.1

Code:
# /var/run/dnsmasq/resolv.conf:
nameserver 192.168.2.23
nameserver 192.168.2.254

Welche wird denn wirklich genutzt? Oder werden beide in die gültige migriert?
 
Last edited by a moderator:
Back
Top