So finden Sie die IP-Adresse einer neuen virtuellen Maschine mit libvirt 0.10.0+ (geroutetes Netzwerk) heraus

So finden Sie die IP-Adresse einer neuen virtuellen Maschine mit libvirt 0.10.0+ (geroutetes Netzwerk) heraus

Mein Ziel ist es, die IP-Adresse der neuen virtuellen Maschine nur mithilfe der libvirt-API (>=0.10) herauszufinden. Derzeit verwende ich den Net-Update-Befehl von libvirt: Bevor ich eine neue Maschine starte, lege ich einen statischen DHCP-Eintrag dafür fest und die VM bootet mit bekannter Adresse.

Es funktioniert sogar mit alten Libvirt-Versionen fast einwandfrei, hat aber einen Fehler. Wenn ich die Maschine „zwingend ausschalte“, sendet sie keine „Release“-Anfrage an den DHCP-Server (libvirt/dnsmasq) und diese IP bleibt in der Lease-Datei. Wenn ich eine neue Maschine mit derselben IP-Adresse erstelle, bevor die DHCP-Lease abgelaufen ist, erhält sie keine IP-Adresse aus dem statischen Eintrag, da der DHCP-Server davon ausgeht, dass diese IP bereits verwendet wird (basierend auf Informationen in der Lease-Datei).

Gibt es robustere Lösungen, um die IP-Adresse des Computers zu erhalten oder sie vor dem Start festzulegen, ohne Shell-Zugriff auf den Zielserver oder eine statische Netzwerkkonfiguration innerhalb der virtuellen Maschine?

Antwort1

In libvirt >= 1.2.14 ist es möglich, libvirt abzufragen, um die IP-Adressen anzufordern, die einer Gast-NIC zugewiesen wurden. Dadurch wird die Notwendigkeit vermieden, statische IP-Adressen einzurichten. Beispiel:

# virsh domifaddr f25kubdev
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet1      52:54:00:b4:fc:f2    ipv4         192.168.122.13/24

Ich bin mir nicht sicher, ob das für Sie von Nutzen ist, da Sie libvirt 0.10.0 erwähnen

Wenn Sie >= 1.2.10 haben, gibt es einen weniger direkten Weg, um die Informationen zu erhalten, indem Sie die DHCP-Lease-Datenbank abfragen

# virsh net-dhcp-leases default
 Expiry Time          MAC address        Protocol  IP address                Hostname        Client ID or DUID
-------------------------------------------------------------------------------------------------------------------
 2017-01-19 12:01:01  52:54:00:b4:fc:f2  ipv4      192.168.122.13/24         f25kubdev       ff:00:b4:fc:f2:00:04:52:fb:4b:29:01:5e:44:c8:b6:57:85:dd:f2:7a:98:73

Sie müssen die MAC-Adresse dann manuell der gewünschten Domäne zuordnen – der Befehl „domifaddr“ übernimmt diese Zuordnung für Sie.

Vor 1.2.10 gab es überhaupt keine Möglichkeit, diese Informationen über die Libvirt-API abzurufen – Sie müssten direkt in der DNSMASQ-Lease-Datei herumstöbern.

verwandte Informationen