Estou tentando entender como o systemd-nspawn gerencia o acesso à internet e o encaminhamento de portas para contêineres.
Configurei um contêiner nspawn com --network-veth
e um encaminhamento de porta com --port=80
. Tanto o host quanto o contêiner executam systemd-networkd. Tudo funciona perfeitamente: o contêiner consegue acessar a internet e o tráfego de entrada na porta 80 é encaminhado para o contêiner.
Gostaria de entender e inspecionar como o systemd gerencia isso. Eu esperava (ingenuamente?) encontrar regras relacionadas no iptables, mas se eu executar, iptables -t ... -S
todas as tabelas parecem vazias, tanto no host quanto no contêiner. Também executei o mesmo comando nsenter
para entrar no namespace de rede do veth, mas ainda não vejo regras.
Então, o systemd não usa o Netfilter para NAT/Masquerading? Se não, o que ele usa?
O iptables foi substituído pelo mais novo nftables , que o systemd usará se disponível.
Então, para ver as regras criadas pelo systemd, tente
sudo nft list ruleset
Na minha máquina com systemd 257.5 e um contêiner nspawn em execução, vejo: