
Meta
- Configurar una red virtual en la que se inician varios contenedores
- cada contenedor debe ser accesible por su IP desde la red host
- los contenedores se ejecutan sin raíz (está destinado a ejecutar la red de prueba desde un corredor de CI)
- es aceptable ejecutar un
iptables
comando específico consudo
el que permita los reenvíos necesarios a la red virtual
La razón por la que evito el uso de puertos publicados es que quiero que la red virtual se parezca a la "realidad" en la que una mayor cantidad de servicios se ejecutarán en hardware separado, y el hecho de que usarán diferentes IP es importante para la coordinación. servicio.
Mi acercamiento
$ 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 )
(El DBUS
truco es una solución paraeste problema)
Si ahora miro iptables -L
veo las cadenas CNI-FORWARD
, y estaba suponiendo ingenuamente que una simple
sudo iptables -A CNI-FORWARD -d 10.10.10.0/24 -j ACCEPT
para poder acceder a los contenedores desde la red host. Pero todavía parecen estrictamente separados e inaccesibles. (La FORWARD
cadena tiene ACCEPT
una política predeterminada, por lo que no hay problema).
¿Es fundamentalmente imposible (no he encontrado ningún ejemplo de esto) o simplemente estoy haciendo algo mal?
¿Podrían las CNI-*
cadenas estar relacionadas con algún contenedor rooteado anterior, ya que lógicamente desarraigado no podría afectar nada iptables
relacionado de todos modos?