web-dev-qa-db-ja.com

iptables:宛先の変更-TEEされたパケットのIP

ここに入ることができない理由のために、UDPパケットストリーム(重要な場合はnetflowデータ)を2番目の宛先に複製する必要があることに気付きました。

いくつかの調査の結果、iptables 'マングルテーブルのTEEターゲットが正確に次のことを行っていることがわかりました。

iptables -t mangle -A PREROUTING -d 192.168.81.21 --protocol udp --destination-port 6343 -j TEE --gateway 192.168.228.2 
iptables -t mangle -A PREROUTING -d 192.168.81.21 --protocol udp --destination-port 6344 -j TEE --gateway 192.168.228.2 

私が今抱えている唯一の問題は、192.168.228.2の宛先サーバーが元の192.168.81.21アドレスの宛先ヘッダーを持つパケットを受信するため、netflowトラフィックをリッスンするソフトウェアがそれらを受け入れないことです。

「明らかな」解決策は、iptables '独自のパケット書き換えコードを使用して宛先ヘッダーを正しい値に書き換えることですが、それはのみ重複したパケットで発生し、オリジナル。これは、通常のDNATの使用が終了していることを意味します。これは、PREROUTINGテーブルに対してのみ有効であり、その時点では、通常のパケットと重複したパケットをまだ区別できません。

私が見逃している明らかなものがない限り、私はちょっと立ち往生しています。助言がありますか?

パケットのIPアドレスを正しい宛先サーバーに変更するPOSTROUTINGのルールを追加する方法はありますか?

3
Shadur

複製されたパケットが送信されるマシンに以下のiptableルールを追加することで、これを解決しました。

Sudo iptables -t nat -A PREROUTING -p udp --dport 9003 -j NETMAP --to xx.xx.xxx.xx

これは、ポート9003宛てのUDPパケットの宛先IPをプライベートIPアドレスに変更します。

1
Kannaj