サーバーBからeth0を受け取るアプリケーションをサーバーBで実行しています。
サーバーAのGTPパケットがありますが、ソースアドレスを変更したいです。パケットのGTP層にはパブリックIP(xxxxなど)があります。ソースIPをxxxxに変更したいです。
アプリケーションはxxxxシリーズを期待していますが、ヘッダーに10.xxxがあるため、パケットを破棄して接続設定に失敗します。
10.xxx(ソース)---->xxxx(対象)
ポータルにはいくつかの解決策があることを知っていますが、私の問題は、発信インターフェイスがなく、アプリケーションが変更されたIP(eth0のxxxxなど)のみを受信して応答することです。どのようにパケットを見ることができますか?そしてtcpdump
?
私はインターネットで次の例のルールを使用しました。
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to x.x.x.x
しかし、それは私の目的には合いません。
デフォルトでは、パケットはgtpであり、指定されたインターフェイスから来ます。パケットは gtp 層のパブリック IP で構成されます。アプリケーションは、接続要求時にパケット内に存在するパブリックIPを見つけるため、指定された送信元IPを破棄します。パブリックIPを接続可能(src IP)として割り当てることができると、接続が確立され、発信トラフィックも変更されたsrc IPを応答して通過でき、最終的に接続が確立されます。
パケットがeth0に到着したら、私のsrc IPをGTP層に存在するパブリックIPに変更するiptableルールを持つことはできますか?