
Meta
- Configure uma rede virtual na qual vários contêineres são iniciados
- cada contêiner deve ser acessível por seu IP a partir da rede host
- os contêineres são executados sem root (destina-se a executar a rede de teste a partir de um executor de CI)
- é aceitável executar um
iptables
comando específico comsudo
o qual permite os encaminhamentos necessários para a rede virtual
A razão pela qual estou evitando usar portas publicadas é que quero que a rede virtual se assemelhe à "realidade" na qual um número maior de serviços estará rodando em hardware separado, e o fato de que eles usarão IPs diferentes é importante para a coordenação serviço.
Minha abordagem
$ podman network create --subnet 10.10.10.0/24 virtnet1
$ ( export DBUS_SESSION_BUS_ADDRESS=; podman run --rm -d --name nmt --network virtnet1 praqma/network-multitool )
(O DBUS
hack é uma solução alternativa paraesse assunto)
Se eu olhar agora, iptables -L
vejo as correntes CNI-FORWARD
, e estava ingenuamente assumindo que um simples
sudo iptables -A CNI-FORWARD -d 10.10.10.0/24 -j ACCEPT
para poder acessar os contêineres da rede host. Mas eles ainda parecem estritamente separados e inacessíveis. (A FORWARD
rede tem ACCEPT
uma política padrão, então não há problema.)
É fundamentalmente impossível (não encontrei nenhum exemplo disso) ou estou apenas fazendo algo errado?
As CNI-*
cadeias podem estar relacionadas a quaisquer contêineres com root anteriores, já que logicamente sem root não seria capaz de afetar nada iptables
relacionado?