libvirt: "Error al inicializar un backend de firewall válido"

18

Estoy tratando de configurar un dispositivo de red NAT virtual sin DHCP para libvirt en un host Arch Linux.

Lo que he intentado:

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

Mi computadora portátil muestra lo siguiente en el inicio:

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

Todos los otros hilos relacionados con este tema están hablando sobre la actualización de software: estoy usando las versiones más recientes:

$ 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

¿Cuál podría ser el motivo internal errory contra qué puedo hacer?

testandby
fuente

Respuestas:

29

Instalando ebtablesy dnsmasqparece solucionar el problema. No olvides reiniciar el libvirtdservicio.

Los comandos:

sudo pacman -Syu ebtables dnsmasq
sudo systemctl restart libvirtd

NOTA: no olvide cerrar y volver a abrir su virt-managerGUI (si está usando una).

EDITAR: La respuesta original sugirió también la instalación firewalld. Esto no parece ser necesario para muchos usuarios y puede agregar un firewall adicional no deseado a su sistema. Sin embargo, si desea probarlo, también puede agregar los siguientes comandos:

sudo pacman -Syu firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo systemctl restart libvirtd
AliReza Mosajjal
fuente
17
No es necesario instalarlo firewalld, tampoco figura en la wiki de ArchLinux , solo es necesario comenzar ebtablesy dnsmasq, con libvirtd/ virtlogddespués.
pepper_chico
11
Quiero enfatizar, reiniciar libvirtd , después de instalar ebtablesydnsmasq
ThorSummoner
3
Confirmo que no hay necesidad de instalar firewalld, como lo señalaron @pepper_chico (comentario) y Stuart P. Bentley (otra respuesta).
Alex Oliveira
"GRACIAS" su cortafuegos me encerró afuera de mi servidor remoto y NO ESTÁ HACIENDO ABSOLUTAMENTE NADA POR LA PREGUNTA ... ¿Qué tan ESTUDIO ES USTED, o usted es uno de esos tipos que DISFRUTAN QUEMANDO A OTRAS PERSONAS ... POR DIVERSIÓN? !?
THESorcerer
9

Este es el error que aparece si libvirtd se inició sin ebtablesy / o dnsmasqinstalado. Si los tiene instalados y todavía tiene este problema, probablemente necesite reiniciar el libvirtdservicio:

sudo systemctl restart libvirtd.service

Gracias a los comentarios sobre la otra respuesta a esta pregunta por aclarar esto. Lo envío como una respuesta nueva y separada a la pregunta original porque la instalación y el inicio firewallddel problema original pueden causar nuevos problemas : una vez que se ejecuta el demonio de firewall, la mayoría de los servicios que querrá dentro de su máquina virtual , incluido DHCP, se bloqueará de forma predeterminada , lo que significa que sus máquinas virtuales no podrán acceder a la red en la inicialización.

Perdí más de una hora de mi vida tratando de rastrear este problema, y ​​rastrearlo a un firewall que acababa de habilitar fue una de las fuentes más tontas de un error con el que me he encontrado. No dejes que te quite tiempo del tuyo .

Stuart P. Bentley
fuente