Próbuję skonfigurować wirtualne urządzenie sieciowe NAT bez DHCP dla libvirt na hoście Arch Linux.
Co próbowałem:
# 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>
Mój laptop wyświetla następujące informacje podczas uruchamiania:
# virsh net-start default
error: Failed to start network default
error: internal error: Failed to initialize a valid firewall backend
Wszystkie inne wątki dotyczące tego tematu mówią o aktualizacji oprogramowania - używam najnowszych wersji:
$ 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
Co może być tego przyczyną internal error
i co mogę zrobić przeciwko?
źródło
firewalld
, nie ma go również na wiki ArchLinux , wystarczy rozpocząćebtables
idnsmasq
, zlibvirtd
/virtlogd
później.ebtables
idnsmasq
firewalld
, jak zauważyli @pepper_chico (komentarz) i Stuart P. Bentley (inna odpowiedź).Jest to błąd, który pojawia się, jeśli libvirtd został uruchomiony bez
ebtables
i / lubdnsmasq
zainstalowany. Jeśli masz je zainstalowane i nadal występuje ten problem, prawdopodobnie musisz ponownie uruchomićlibvirtd
usługę:Kredytowej w komentarzach po drugiej odpowiedź na to pytanie to dla oświetlania. Przekazuję go jako nową i osobną odpowiedź na pierwotne pytanie, ponieważ instalacja i rozpoczęcie
firewalld
rozwiązywania pierwotnego problemu może powodować nowe problemy : po uruchomieniu demona zapory większość usług, które będą potrzebne na maszynie wirtualnej , w tym DHCP, zostanie domyślnie zablokowany , co oznacza, że maszyny wirtualne nie będą mogły uzyskać dostępu do sieci podczas inicjalizacji.Straciłem ponad godzinę swojego życia, próbując wyśledzić ten problem, a prześledzenie go do zapory ogniowej, którą właśnie włączyłem, było jednym z najgłupszych źródeł błędu, na jaki kiedykolwiek wpadłem. Nie pozwól mu wziąć dowolny czas od twoich .
źródło