web-dev-qa-db-ja.com

受信IPを別の宛先IP質問にルーティングするiptables

テスト設定があります:

  • server1:1.1.1.1
  • server2:2.2.2.2
  • クライアント:3.3.3.3

クライアントIP 3.3.3.3に1.1.1.1サーバーからのHTTPリクエストを実行させようとしています。しかし、私は1.1.1.1サーバーがこのリクエストを実際のHTTPDサーバー2.2.2.2に渡すことを望んでいます。

2.2.2.2でHTTP応答を使用してクライアント3.3.3.3と直接通信したい。

しかし、HTTPリクエストを受け入れるために1.1.1.1を必要とし、それからリクエストを2.2.2.2に転送し、2.2.2.2を応答させてから、3.3.3.3に転送して、これを機能させるための解決策があると思いますか?それ以外の場合、クライアント3.3.3.3は2.2.2.2からの応答を受け取り、なぜ2.2.1.1の代わりに2.2.2.2が応答しているかを知らず、無視しますか?

いずれにせよ、これは私が1.1.1.1のiptablesで試したものです:

iptables -t nat -A POSTROUTING -o venet0:0 -j SNAT --to-source 2.2.2.2
iptables -t nat -A PREROUTING -i venet0:0 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A PREROUTING -d 3.3.3.3 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -s 2.2.2.2 -j SNAT --to-source 3.3.3.3

これは変更を加えないように見えました。

8
RCG

私はそれを理解しました:

iptables -t nat -A PREROUTING -d 3.3.3.3 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -s 2.2.2.2 -j SNAT --to-source 3.3.3.3
8
RCG