tldr; bridge (veja abaixo) não funciona se houver uma queda correspondente em outra tabela (como as regras padrão do firewalld).
Olá,
estou construindo minha própria biblioteca de VM (uma espécie de quickemu ).
Tenho um problema com as regras de firewall para ponte. Comecei com iptables-nft e funcionou bem até testar meus scripts no fedora. Não importa o que eu faça, o firewalld bloqueia tudo. Então optei pelo nftables para tentar ignorar as regras do firewalld diretamente, mas mesmo assim não consigo encontrar uma maneira de fazê-lo funcionar sem excluir as regras do firewalld.
Pelo que entendi, a prioridade afeta apenas a ordem em que as regras são testadas, se houver drop, mesmo no final o pacote é descartado?
Existe uma maneira de contornar esse comportamento que eu não conheço? Tentei pesquisar as marcas, mas não tenho certeza se é a solução certa.
Aqui estão as regras que uso para a ponte (funciona perfeitamente se não houver outra tabela no conjunto de regras):
#!/usr/bin/nft -f
# vim:set ts=2 sw=2 et:
table ip QEMU
delete table ip QEMU
table ip QEMU {
chain input {
type filter hook input priority filter - 1;
ct state {established,related} iifname "virbr0" counter accept
}
chain forward {
type filter hook forward priority filter - 1;
ct state {established,related} iifname "virbr0" counter accept
}
chain postrouting {
type nat hook postrouting priority srcnat;
iifname "virbr0" counter masquerade
}
}