まず、私の英語力が残念です。
非常に単純なインフラストラクチャが実行されています。ドッカー:
container1
:iptablesファイアウォール。
container2
:httpsリポジトリ。
container3
:アンサーブルサーバー。
コンテナ1WAN を通過できるように 2 つのインターフェイスがあります。イーサネット0以下を介してコンテナ2と3と通信します。イーサネット1(ローカルエリアネットワーク)。
質問LAN経由でインターネットにアクセスできる必要があります(ping -c3 google.com)。
container1
- ipv4_forwardingを設定し、WANのGWをデフォルトパスに設定しました(他の2つのコンテナと通信してインターネットに接続します)。
container2
; container3
- LANはうまく通信していますが、FWのIPアドレスをpingできないため、WANに到達できません...200.200.100.1(DockerのブリッジインターフェイスはFWサブネットGW、FW IPとして使用されます。200.200.200.2)。
iptables confが見つからないか(まだ何もしない)、docker外部ルーティング(ホストのdocker0-docker1インターフェイス間)を設定する必要がありますか?
必要に応じてコンテナルーティングテーブルを送信できます。何かが欠けている可能性があります。
友達が私を助けてください。」)
ありがとうございます。
答え1
LAN サブネットが次のと仮定します。10.20.20.0/24(ドッカーIP範囲)とインターネットインターフェース(WAN)イーサネット0
dockerbridgeが配置されているホストで次のコマンドを実行します。 (この場合、ホストはファイアウォールとして機能します。)
# apt install iptables-persistent -y
# iptables -t nat -A POSTROUTING ! -d 10.20.20.0/24 -o eth0 -j MASQUERADE
# iptables -I FORWARD -j ACCEPT
# netfilter-persistent save
# netfilter-persistent reload