
目標
- 設定啟動多個容器的虛擬網絡
- 每個容器都應該可以透過主機網路的 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
相關的東西?