libvirt NAT-Konfiguration - DHCP funktioniert nicht

libvirt NAT-Konfiguration - DHCP funktioniert nicht

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 dhclientdie 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.

verwandte Informationen