libvirt: "Impossibile inizializzare un backend firewall valido"


18

Sto cercando di configurare un dispositivo di rete NAT virtuale senza DHCP per libvirt su un host Arch Linux.

Cosa ho provato:

# 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>

Il mio laptop emette quanto segue all'avvio:

# virsh net-start default
error: Failed to start network default
error: internal error: Failed to initialize a valid firewall backend

Tutti gli altri thread riguardanti questo argomento parlano dell'aggiornamento del software - Sto usando le versioni più recenti:

$ 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

Quale potrebbe essere la ragione di ciò internal errore cosa posso fare contro?

Risposte:


29

Installazione ebtablese dnsmasqsembra risolvere il problema. Non dimenticare di riavviare il libvirtdservizio.

I comandi:

sudo pacman -Syu ebtables dnsmasq
sudo systemctl restart libvirtd

NOTA: non dimenticare di chiudere e riaprire la virt-managerGUI (se ne stai usando una).

EDIT: la risposta originale suggeriva anche l'installazione firewalld. Ciò non sembra essere necessario per molti utenti e potrebbe aggiungere un firewall aggiuntivo indesiderato al sistema. Tuttavia, se vuoi provarlo, puoi anche aggiungere i seguenti comandi:

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

17
Non è necessario installarlo firewalld, inoltre non è elencato nella wiki di ArchLinux , è solo necessario iniziare ebtablese dnsmasq, con libvirtd/ in virtlogdseguito.
pepper_chico

11
Voglio sottolineare, riavviare libvirtd , dopo l'installazione ebtablesednsmasq
ThorSummoner,

3
Confermo che non è necessario installare firewalld, come notato da @pepper_chico (commento) e Stuart P. Bentley (altra risposta).
Alex Oliveira,

"GRAZIE" il tuo firewall mi ha appena bloccato fuori dal mio server remoto, e NON STA ASSOLUTAMENTE NULLA PER LA DOMANDA ... quanto sei STUBIDO, o sei uno di quei ragazzi che SOLO GODONO DI BRUCIARE ALTRE PERSONE ... PER DIVERTIMENTO? !?
incantatore

9

Questo è l'errore che si presenta se libvirtd è stato avviato senza ebtablese / o dnsmasqinstallato. Se li hai installati e stai ancora riscontrando questo problema, probabilmente dovrai riavviare il libvirtdservizio:

sudo systemctl restart libvirtd.service

Ringraziamo i commenti sull'altra risposta a questa domanda per illuminare questo. Lo sto inviando come una risposta nuova e separata alla domanda originale perché l'installazione e l'avvio firewallddella risoluzione del problema originale possono causare nuovi problemi : una volta che il daemon firewall è in esecuzione, la maggior parte dei servizi desiderati nella tua macchina virtuale , incluso DHCP, verrà bloccato per impostazione predefinita , il che significa che le macchine virtuali non saranno in grado di raggiungere la rete durante l'inizializzazione.

Ho perso più di un'ora della mia vita cercando di rintracciare questo problema e rintracciarlo su un firewall che avevo appena attivato era una delle fonti più stupide di un bug in cui mi sia mai imbattuto. Non lasciarti prendere dal tuo tempo .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.