Ich möchte die Netzwerkkonfiguration der Gäste (IP-Adresse, Subnetz, Gateway, Broadcast-Adresse) auf dem Host-System festlegen. Das verwendete Netzwerk-Setup befindet sich im bridge
Modus. Wie kann ich das Netzwerk vom Host aus konfigurieren, anstatt den Client selbst für eine statische Netzwerkkonfiguration zu konfigurieren?
Wenn ich ausführe:
virsh edit vm1
Es gibt auch einen <network>
Block und ich habe versucht, die Netzwerkschnittstelle von dort aus zu konfigurieren, aber leider scheint die Gast-VM sie nicht zu verwenden und ist daher für das Netzwerk offline (da nur die automatische Netzwerkkonfiguration verwendet wird) ... Gast VMs basieren sowohl auf Linux als auch auf Windows. Jede Hilfe wäre sehr dankbar.
Antworten:
Wenn Sie im Gast keine Konfiguration vornehmen möchten, ist die einzige Option ein DHCP-Server, der statische IP-Adressen ausgibt. Wenn Sie den
bridge
Modus verwenden, handelt es sich wahrscheinlich um einen externen DHCP-Server. Konsultieren Sie das Handbuch, um herauszufinden, wie statische Leases bereitgestellt werden.Aber zumindest in Vorwärtsmodi
nat
oderroute
können Siednsmasqd
libvirts eingebauten Modus verwenden (neuere Versionen von libvirtd unterstützen die Option "dhcp-hostsfile" von dnsmasq). Hier ist, wie:Ermitteln Sie zunächst die MAC-Adressen der VMs, denen Sie statische IP-Adressen zuweisen möchten:
Bearbeiten Sie dann das Netzwerk
Suchen Sie den
<dhcp>
Abschnitt, schränken Sie den dynamischen Bereich ein und fügen Sie Hosteinträge für Ihre VMs hinzuStarten Sie dann Ihre VM neu (oder starten Sie den DHCP-Client neu, z. B.
ifdown eth0; ifup eth0
)Update: Es gibt Berichte, dass die Änderung nach "virsh net-edit" möglicherweise nicht wirksam wird. In diesem Fall versuchen Sie dies nach der Bearbeitung:
... und starten Sie den DHCP-Client der VM neu.
Wenn das immer noch nicht funktioniert, müssen Sie möglicherweise
Hinweis: Der KVM-Host kann auf keinen Fall eine VM mit unbekanntem Betriebssystem und unbekannter Konfiguration zur Verwendung einer bestimmten Netzwerkkonfiguration zwingen. Wenn Sie jedoch wissen, dass die VM ein bestimmtes Netzwerkkonfigurationsprotokoll verwendet, beispielsweise DHCP, können Sie dieses Protokoll verwenden. Dies wird in diesem Beitrag vorausgesetzt.
Einige Betriebssysteme (z. B. einige Linux-Distributionen) ermöglichen es auch, Netzwerkkonfigurationsoptionen an den Gast zu übergeben, z. B. über die Kernel-Befehlszeile. Aber das ist sehr spezifisch für das Betriebssystem, und ich sehe keinen Vorteil gegenüber der DHCP-Methode.
quelle
virsh net-update
Dies ist ein guter Befehl für Sie (Sie müssen Ihr Netzwerk nicht neu starten / zerstören usw.).Siehe: https://www.redhat.com/archives/libvir-list/2012-September/msg01380.html
quelle
Ich konnte
dnsmasq
die neu hinzugefügte IP-MAC-Zuordnung durch einfaches Senden eines-HUP
Signals an dendnsmasq
Prozess "sehen". Danach reichte ein Neustart des neuen Gasts aus, um ihm die richtige IP zuzuweisen, ohne dass ein Neustartlibvirtd
oder das Netzwerk selbst erforderlich wäre .In der offiziellen libvirt-Dokumentation ( http://wiki.libvirt.org/page/Networking#Applying_modifications_to_the_network ) wird dieses inoffizielle Perl-Skript erwähnt, das den gesamten Prozess automatisiert: https://gist.github.com/bendiken/032ea1bddb9ffafe98b4
Ich habe dieses Skript nicht selbst ausprobiert, da ich herausgefunden habe, dass die Hostdatei bereits aktualisiert wurde und das Senden des -HUP-Signals ausreichend war.
Auf dem Host läuft Debian 7.8 und die Paketversionen sind:
quelle