Libvirt из коробки настраивает некий набор правил. Типа того:
UUID Name
-----------------------------------------------------------------
4aacb81b-37c8-4762-98a0-2530bead889d allow-arp
31448a3a-3130-4be6-88d2-dd588cb619a8 allow-dhcp
2ac10127-508c-43f9-afb3-8a764ca06ab1 allow-dhcp-server
fb5c4e21-80e4-40f4-946b-b935f3ce0182 allow-dhcpv6
3b69f0a3-dbe8-4d37-ab83-38aa14706781 allow-dhcpv6-server
5cc11d1d-1bfe-4449-bf77-514406af5cba allow-incoming-ipv4
69579615-b9ce-4329-bd75-8c8e4194545b allow-incoming-ipv6
6b246912-9724-44b9-817a-395caaade98a allow-ipv4
98acc384-6848-410b-ac7e-58e65e3aa17a allow-ipv6
5cd3d6e6-b031-46ad-ad44-615436e1ebf9 clean-traffic
9a6712c5-c8e7-44e2-bde4-2ec09c1f7274 clean-traffic-gateway
601179d1-9b1b-4129-8341-de8b013c5d0c no-arp-ip-spoofing
bd2dd6e5-f3c0-4982-a558-336bfad7d80f no-arp-mac-spoofing
37e6f3e3-39a7-430c-bb9c-a127ab27dc50 no-arp-spoofing
6b61e4f6-141a-4f19-af64-a24781143be9 no-ip-multicast
abbc00fc-d834-46d3-9b02-c4df5e712b10 no-ip-spoofing
02626aaa-a7ef-4ac7-950d-7155bcaaff49 no-ipv6-multicast
ae8ec097-fdb1-4791-ad8a-855e191d99c5 no-ipv6-spoofing
7e5f8aa9-6b2c-48a5-9b01-65207cabeaea no-mac-broadcast
0173f1d8-7fd8-452e-9ee7-cd611c88d48b no-mac-spoofing
fbaa6911-1653-45eb-806f-92e993f5466f no-other-l2-traffic
0c0b01a5-79c6-40d9-b684-9780eee3fcbf no-other-rarp-traffic
1a782424-b873-467a-9f66-56a398e80863 qemu-announce-self
4dabf4c0-a761-4c51-8b44-c36e6370d492 qemu-announce-self-rarp
Что там в этих правилах описано тут
https://libvirt.org/firewall.html
Копнул чуть чуть и не совсем понятно, как эти правила соотносятся с тем, что помещается в iptables. Например, в FORWARD-е имеется три цепочки связаные с libvirt:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
LIBVIRT_FWX all -- anywhere anywhere
LIBVIRT_FWI all -- anywhere anywhere
LIBVIRT_FWO all -- anywhere anywhere
Вот откуда беруться эти цепочки и правила в них?