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
oder route
können Sie dnsmasqd
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:
virsh dumpxml $VM_NAME | grep 'mac address'
Bearbeiten Sie dann das Netzwerk
virsh net-list
virsh net-edit $NETWORK_NAME # Probably "default"
Suchen Sie den <dhcp>
Abschnitt, schränken Sie den dynamischen Bereich ein und fügen Sie Hosteinträge für Ihre VMs hinzu
<dhcp>
<range start='192.168.122.100' end='192.168.122.254'/>
<host mac='52:54:00:6c:3c:01' name='vm1' ip='192.168.122.11'/>
<host mac='52:54:00:6c:3c:02' name='vm2' ip='192.168.122.12'/>
<host mac='52:54:00:6c:3c:03' name='vm3' ip='192.168.122.12'/>
</dhcp>
Starten 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:
virsh net-destroy $NETWORK_NAME
virsh net-start $NETWORK_NAME
... und starten Sie den DHCP-Client der VM neu.
Wenn das immer noch nicht funktioniert, müssen Sie möglicherweise
- Beenden Sie den libvirtd-Dienst
- Beenden Sie alle noch aktiven dnsmasq-Prozesse
- Starten Sie den libvirtd-Dienst
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.