
Ziel
- Einrichten eines virtuellen Netzwerks, in dem mehrere Container gestartet werden
- Jeder Container sollte über seine IP vom Host-Netzwerk aus erreichbar sein
- die Container laufen rootless (es ist vorgesehen, das Testnetzwerk von einem CI-Runner aus auszuführen)
iptables
Es ist akzeptabel, einen bestimmten Befehl auszuführen , mitsudo
dem die erforderlichen Weiterleitungen zum virtuellen Netzwerk ermöglicht werden
Der Grund, warum ich die Verwendung veröffentlichter Ports vermeide, besteht darin, dass das virtuelle Netzwerk der „Realität“ ähneln soll, in der eine größere Anzahl von Diensten auf separater Hardware ausgeführt wird und die Tatsache, dass sie unterschiedliche IPs verwenden, für den Koordinierungsdienst von Bedeutung ist.
Mein Ansatz
$ 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 )
(Der DBUS
Hack ist ein Workaround fürdieses Problem)
Wenn ich mir jetzt iptables -L
die Ketten anschaue CNI-FORWARD
, und ich war naiv davon ausgegangen, dass eine einfache
sudo iptables -A CNI-FORWARD -d 10.10.10.0/24 -j ACCEPT
um vom Host-Netzwerk aus auf die Container zugreifen zu können. Sie erscheinen jedoch weiterhin streng getrennt und unzugänglich. (Die FORWARD
Kette hat ACCEPT
standardmäßig eine Richtlinie, daher gibt es hier kein Problem.)
Ist das grundsätzlich unmöglich (ich habe keine Beispiele dafür gefunden) oder mache ich einfach etwas falsch?
Könnten die CNI-*
Ketten mit irgendwelchen vorherigen Root-Containern in Zusammenhang stehen, da Rootless logischerweise ohnehin nichts Verwandtes beeinflussen könnte iptables
?