libvirt: "Fehler beim Initialisieren eines gültigen Firewall-Backends"

17

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 errorund was kann ich dagegen tun?

testandby
quelle

Antworten:

28

Installieren ebtables, firewalldund dnsmasqscheint das Problem zu beheben. Vergessen Sie nicht, firewalldden libvirtdDienst zu starten und auch neu zu starten .

Die Befehle:

sudo pacman -Syu ebtables dnsmasq firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo systemctl restart libvirtd

HINWEIS: Vergessen Sie nicht, Ihre virt-managerGUI zu schließen und erneut zu öffnen (falls Sie eine verwenden).

AliReza Mosajjal
quelle
16
Es muss nicht installiert werden firewalld, es ist auch nicht im ArchLinux-Wiki aufgeführt , es muss nur gestartet werden ebtablesund dnsmasq, mit libvirtd/ virtlogddanach.
pepper_chico
11
Ich möchte betonen, starten Sie libvirtd nach der Installation neu ebtablesunddnsmasq
ThorSummoner
3
Ich bestätige, dass keine Installation erforderlich ist firewalld, wie von @pepper_chico (Kommentar) und Stuart P. Bentley (andere Antwort) angegeben.
Alex Oliveira
„DANKE“ Ihre firewalld sperrte mich gerade vor meinem Remote - Server, und nicht tut rein gar nichts für die Frage ... wie STUBID SIND SIE, oder Sie sind einer von denen , die gerade BURNING gern mit anderen zusammen ... FOR FUN? !?
Zauberer
9

Dies ist der Fehler, die aufkommt , wenn libvirtd wurde gestartet , ohne ebtablesund / oder dnsmasqinstalliert. Wenn Sie sie installiert haben und das Problem weiterhin besteht, müssen Sie den libvirtdDienst wahrscheinlich neu starten :

sudo systemctl restart libvirtd.service

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

Stuart P. Bentley
quelle