Я пытаюсь настроить виртуальное сетевое устройство NAT без DHCP для libvirt на хосте Arch Linux.
Что я пробовал:
# 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>
Мой ноутбук выдает следующее при запуске:
# virsh net-start default
error: Failed to start network default
error: internal error: Failed to initialize a valid firewall backend
Все остальные темы по этой теме говорят об обновлении программного обеспечения - я использую самые последние версии:
$ 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
Что может быть причиной этого internal error
и что я могу сделать против?
источник
firewalld
, его также нет в вики ArchLinux , просто нужно начатьebtables
иdnsmasq
сlibvirtd
/virtlogd
после.ebtables
иdnsmasq
firewalld
, как отмечают @pepper_chico (комментарий) и Стюарт П. Бентли (другой ответ).Это ошибка, которая появляется, если libvirtd был запущен без
ebtables
и / илиdnsmasq
установлен. Если они установлены, но проблема все еще не устранена, вам, вероятно, необходимо перезапуститьlibvirtd
службу:Благодарим за комментарии к другому ответу на этот вопрос для освещения этого. Я представляю его как новый и отдельный ответ на исходный вопрос, поскольку установка и запуск
firewalld
для решения исходной проблемы могут вызвать новые проблемы : после запуска демона брандмауэра большинство служб, которые вы захотите использовать на своей виртуальной машине , включая DHCP, по умолчанию будет заблокирован , что означает, что ваши виртуальные машины не смогут подключиться к сети при инициализации.Я потерял более часа своей жизни, пытаясь отследить эту проблему, и отслеживание ее на брандмауэре, который я только что включил, было одним из самых глупых источников ошибок, с которыми я когда-либо сталкивался. Не позволяй этому занять какое-то время у тебя .
источник