192.168.72.0/28
自分のコンピュータにアドレスがあり、モードで実行されているのとeth0
同じコンピュータで実行されているコンテナにトラフィックを転送する必要があります。172.7.0.4
bridge
ルーティングルールを追加してみました。
ip route add 192.168.72.0/28 via 172.17.0.4
インターフェイスではトラフィックを表示できますが、eth0
Dockerコンテナのインターフェイスでは表示できません。
DNATも試してみたが運がなかった。
iptables -t nat -I PREROUTING -i eth0 -s 192.168.72.0/28 -j DNAT --to-destination 172.17.0.4
私は何を見逃していますか?
問題は、コンテナがブリッジで実行されており、非標準名を持つネットワークインターフェイスがあることです。この状況では、通常どのようなアプローチが使用されますか?
答え1
/etc/iproute2/rf_tables
追加の下に新しいルーティングテーブルを作成します。2 connect
次に、次のコマンドを実行します。
ip rule add from 192.168.72.0/28 table connect
ip route add default via 172.17.0.4 table connect
172.17.0.4
DockerコンテナのIPはどこにありますか?あなたの場合は異なる場合があります。
iptables
だとしたら今ルールに従うべき時
iptables -A INPUT -s 192.168.72.0/28 -j ACCEPT
iptables -A FORWARD -d 192.168.72.0/28 -j ACCEPT
iptables -A FORWARD -s 192.168.72.0/28 -j ACCEPT
iptables -A OUTPUT -d 192.168.72.0/28 -j ACCEPT
この時点で、すべてのトラフィックはDockerコンテナを通過し、正常に動作します。