2013-02-15 13 views
7

すべての着信TCPパケットを複数のIPアドレスに転送しようとしています。複数のIPアドレスへのパケットのクローニングと転送

セットアップ:

A - 10.10.10.10 
B - 10.10.10.11 
C - 10.10.10.12 
D - 10.10.10.13 

私はB、C及びDは、(ポート8000​​上)のポート12345上のすべての着信パケットを受信します。理想的には私はAにこれをやりたかった。

私が上でこのルールに一台のマシンに転送することができます:私もTEEオプションを使用してパケットを複製することができ

iptables -t nat -A PREROUTING -p tcp --dport 12345 -j REDIRECT --to 10.10.10.11:8000 

iptables -t mangle -A PREROUTING -p tcp --dport 8000 -d 10.10.10.11 -j TEE --gateway 10.10.10.12 

これまでのところ、すべてが大丈夫です。問題は、CがCではなくBの宛先IPを持つパケットを受信するということです。さらに、Dおよび/または他の多くの宛先にどのように転送できるかわかりません。

iptablesルールで、ポート12345のすべての受信パケットを、他のすべてのマシン(B、C、D)にポート8000​​に送信するにはどうすればよいですか?

答えて

0

あなたはPOSTROUTINGを使用する必要があります:

iptables -t nat -A POSTROUTING -p tcp --dports 8080 -j SNAT --to-source 10.10.10.12 

をしかし、あなたはBまたは他のCのために、彼らはすべてのそれはで行わなければならないC.のIPで到着しますされたパケットを区別するための方法を見つける必要があります別のインターフェイスを持っている場合、インターフェイス。私はあなたが、そのような何かのゲートウェイを変更すると、それはケースだと仮定します。それはCへのルーティングパスだイメージング、インタフェースETH3への発信

iptables -t nat -A POSTROUTING -o eth3 -p tcp --dports 8080 -j SNAT --to-source 10.10.10.12 

ので、パケットのみを、CのIPに宛先IPの変更を持っています。

関連する問題