ここに入ることができないため、UDPパケットストリーム(重要な場合はネットワークストリームデータ)を2番目の宛先にコピーする必要があります。
iptables
いくつかの研究の終わりに、「manangleテーブル」の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
「明らかな」解決策は、独自のパケット書き換えコードを使用してiptables
宛先ヘッダーを正しい値に書き換えることです。ただソースパケットの代わりに冗長パケットで発生します。つまり、私が主に使用するDNATはPREROUTINGテーブルでのみ機能するため、これ以上適用できなくなり、この時点では通常パケットと冗長パケットを区別できません。
明らかなものを見逃していない限り、私は立ち往生しています。どんな提案がありますか?
パケットのIPアドレスを正しい宛先サーバーに変更するためにPOSTROUTINGのルールを追加する方法はありますか?
ベストアンサー1
レプリケーションパケットが送信されるシステムに次のiptableルールを追加することでこの問題を解決しました。
sudo iptables -t nat -A PREROUTING -p udp --dport 9003 -j NETMAP --to xx.xx.xxx.xx
これは、ポートに送信されたすべてのUDPパケットの宛先IPを9003
プライベートIPアドレスに変更することです。