
ゴール
- 複数のコンテナが起動する仮想ネットワークを設定する
- 各コンテナはホストネットワークからIPでアクセスできる必要があります
- コンテナはルートレスで実行されます(CIランナーからテストネットワークを実行することを目的としています)
- 仮想ネットワークへの必要な転送を許可する特定の
iptables
コマンドを実行することは許容されますsudo
公開ポートの使用を避けている理由は、多数のサービスが別々のハードウェア上で実行される「現実」に仮想ネットワークを似せたいためであり、それらのサービスが異なる IP を使用するという事実は調整サービスにとって重要だからです。
私のアプローチ
$ 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 )
(このDBUS
ハックはこの問題)
今見ると、iptables -L
チェーンが見えますCNI-FORWARD
が、私は単純に
sudo iptables -A CNI-FORWARD -d 10.10.10.0/24 -j ACCEPT
ホスト ネットワークからコンテナーにアクセスできるようにします。ただし、コンテナーは厳密に分離されており、アクセスできないように見えます (FORWARD
チェーンにはデフォルトでポリシーがあるACCEPT
ため、問題はありません)。
それは根本的に不可能なのでしょうか(これに関する例は見つかりませんでした)、それとも私が何か間違っているのでしょうか?
CNI-*
論理的にはルートレスは関連するものには影響を与えられないので、チェーンは以前のルートフル コンテナーに関連している可能性がありますかiptables
?