libvirt: "Falha ao inicializar um back-end de firewall válido"


18

Estou tentando configurar um dispositivo de rede NAT virtual sem DHCP para libvirt em um host do Arch Linux.

O que eu tentei:

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

Meu laptop produz o seguinte na inicialização:

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

Todos os outros tópicos relacionados a este tópico estão relacionados à atualização de software - estou usando as versões mais recentes:

$ 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

Qual poderia ser a razão disso internal errore o que posso fazer contra?

Respostas:


29

Instalando ebtablese dnsmasqparece corrigir o problema. Não se esqueça de reiniciar o libvirtdserviço.

Os comandos:

sudo pacman -Syu ebtables dnsmasq
sudo systemctl restart libvirtd

NOTA: não esqueça de fechar e reabrir sua virt-managerGUI (se você estiver usando uma).

EDIT: A resposta original sugeriu também a instalação firewalld. Isso não parece ser necessário para muitos usuários e pode adicionar um firewall indesejado adicional ao seu sistema. No entanto, se você quiser experimentá-lo, também poderá adicionar os seguintes comandos:

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

17
Não há necessidade de instalar firewalld, também não está listado no ArchLinux wiki , é apenas necessário iniciar ebtablese dnsmasq, com libvirtd/ virtlogddepois.
01

11
Eu quero enfatizar, reinicie o libvirtd , após a instalação ebtablesednsmasq
ThorSummoner

3
Confirmo que não há necessidade de instalar firewalld, como observado por @pepper_chico (comentário) e Stuart P. Bentley (outra resposta).
Alex Oliveira

"OBRIGADO", seu firewall acabou de me trancar do lado de fora do meu servidor remoto e NÃO ESTÁ FAZENDO NADA ABSOLUTAMENTE PELA PERGUNTA ... quão estúpido você é, ou você é um daqueles caras que APENAS APRECIA QUEIMAR OUTRAS PESSOAS ... POR DIVERTIMENTO? !?
THESorcerer

9

Este é o erro que surge se o libvirtd foi iniciado sem ebtablese / ou dnsmasqinstalado. Se você os tiver instalado e ainda tiver esse problema, provavelmente precisará reiniciar o libvirtdserviço:

sudo systemctl restart libvirtd.service

Agradecemos os comentários da outra resposta a esta pergunta por esclarecer isso. Estou enviando-o como uma resposta nova e separada para a pergunta original, porque a instalação e o início firewalldda solução do problema original podem causar novos problemas : assim que o daemon do firewall estiver em execução, a maioria dos serviços que você deseja na sua máquina virtual , incluindo DHCP, será bloqueado por padrão , o que significa que suas VMs não poderão acessar a rede na inicialização.

Perdi mais de uma hora da minha vida tentando rastrear esse problema, e rastreá-lo para um firewall que eu havia acabado de ativar era uma das fontes mais idiotas de um bug em que já encontrei. Não deixe que demore algum tempo para você .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.