Ich versuche, ein virtuelles NAT-Netzwerkgerät ohne DHCP für libvirt auf einem Arch Linux-Host einzurichten.
Was ich ausprobiert habe:
# virsh net-define network.xml
Network default defined from network.xml
[ network.xml
]:
<network>
<name>default</name>
<bridge name="maas0" />
<forward mode="nat" />
<ip address="10.137.0.1" netmask="255.255.255.0" />
</network>
Mein Laptop gibt beim Start Folgendes aus:
# virsh net-start default
error: Failed to start network default
error: internal error: Failed to initialize a valid firewall backend
In allen anderen Threads zu diesem Thema geht es um das Aktualisieren von Software - ich verwende die aktuellsten Versionen:
$ pacman -Q ebtables dnsmasq libvirt iptables
ebtables 2.0.10_4-5
dnsmasq 2.75-1
libvirt 1.3.3-1
iptables 1.4.21-3
Was könnte der Grund dafür sein internal error
und was kann ich dagegen tun?
networking
virtual-machine
linux-kvm
qemu
libvirt
testandby
quelle
quelle
firewalld
, es ist auch nicht im ArchLinux-Wiki aufgeführt , es muss nur gestartet werdenebtables
unddnsmasq
, mitlibvirtd
/virtlogd
danach.ebtables
unddnsmasq
firewalld
, wie von @pepper_chico (Kommentar) und Stuart P. Bentley (andere Antwort) angegeben.Dies ist der Fehler, die aufkommt , wenn libvirtd wurde gestartet , ohne
ebtables
und / oderdnsmasq
installiert. Wenn Sie sie installiert haben und das Problem weiterhin besteht, müssen Sie denlibvirtd
Dienst wahrscheinlich neu starten :Wir danken den Kommentaren zur anderen Antwort auf diese Frage, um dies zu beleuchten. Ich sende es als neue und separate Antwort auf die ursprüngliche Frage ein, da die Installation und der Beginn
firewalld
der Lösung des ursprünglichen Problems neue Probleme verursachen kann : Sobald der Firewall-Daemon ausgeführt wird, werden die meisten Dienste innerhalb Ihrer virtuellen Maschine benötigt , einschließlich DHCP, wird standardmäßig blockiert , was bedeutet, dass Ihre VMs bei der Initialisierung nicht in der Lage sind, das Netzwerk zu erreichen.Ich habe über eine Stunde meines Lebens verloren, als ich versucht habe, dieses Problem aufzuspüren, und es auf eine Firewall zurückzuführen, die ich gerade aktiviert hatte, war eine der dümmsten Ursachen für einen Fehler, auf den ich jemals gestoßen bin. Lass dir keine Zeit dafür .
quelle