
Ich möchte die Libvirt-Netzwerk-NAT-Konfiguration verwenden.
libvirt sagthttps://wiki.libvirt.org/page/Virtual_network_%22default%22_has_not_been_started:
"1) Wenn Sie dnsmasq nicht tatsächlich auf der physischen Maschine verwenden, um DHCP für diephysisches Netzwerk, sollten Sie dnsmasq einfach vollständig deaktivieren"
das entspricht meinem Kontext, daher stoppe und deaktiviere ich dnsmasq im Hostsystem.
im QEMU-System:
virsh # net-edit default
<network>
<name>default</name>
<uuid>b6ef8506-d4c7-4bba-9fe7-8f971ea87d10</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:06:86:de'/>
<domain name='circus.net'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.10'/>
</dhcp>
</ip>
</network>
Ich starte das Standardnetzwerk:
virsh # net-start default
Network default started
virsh # net-list
Name State Autostart Persistent
----------------------------------------------------------
default active no yes
Ich starte die Gäste S0 und S1
virsh # start S0
Domain S0 started
virsh # start S1
Domain S1 started
virsh # list
Id Name State
----------------------------------------------------
1 S0 running
2 S1 running
aber DHCP scheint nicht zu funktionieren:
virsh # net-dhcp-leases default
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID
-------------------------------------------------------------------------------
auf dem Hostcomputer:
ping: S1: Name or service not known
was ich versucht habe:
im virt-manager
hostnamectl set-hostname server1
hostnamectl set-hostname server0
virsh # shutdown S0
virsh # shutdown S1
virsh # net-destroy default
auf dem Host:
tcpdump -i virbr0
in qemu:
virsh # net-start default
virsh # start S0
virsh # start S1
tcpdump sieht nichts auf virbr0 zukommen
Meine Frage lautet: Wie kann DHCP in diesem Fall zum Laufen gebracht werden?
weitere Fragen:
1. Es wird gesagt, dass in Libvirt die Nat-Konfiguration sofort funktionieren sollte (Standardkonfiguration), nichts zu tun. Was genau bedeutet „sofort“? Sowohl S1 als auch S0 haben hier standardmäßig den FQDN auf „localhost.localdomain“ eingestellt, wie unterscheidet also Libvirt DHCP zwischen S0 und S1?
2. Wenn ich meine DNSMASQ-Konfiguration anpassen möchte (z. B. etwas wie log-facility=/var/log/dnsmasq.log), wo ist die Konfigurationsdatei? Nicht in /etc/dnsmasq.conf oder in /etc/dnsmasq.d/anyname.conf, da DNSMASQ auf dem Host nicht funktioniert?
Antwort1
Ich hatte das gleiche Problem auf einem Debian-System und poste eine Lösung, falls sie hilft, oder falls jemand sie verbessern könnte, wäre das großartig :)
Die Host-zu-Gast-Konnektivität funktioniert, nachdem der XML-Datei der Gastdomäne Folgendes hinzugefügt wurde:
<interface type='bridge'>
<source bridge='virbr0'/>
<model type='virtio'/>
</interface>
Dadurch wurde eine zuvor nicht sichtbare Netzwerkschnittstelle im Gastsystem erstellt. Dann habe ich dhclient
die Schnittstelle in der Gast-VM ausgeführt und sie hat eine 192.168.122.x-Adresse mit für das Hostsystem zugänglichen Ports erhalten.