私は現在以下を持っています iptables
からトラフィックをリダイレクトするためのルール b.b.b.b
に a.a.a.a
:
-A PREROUTING -p tcp -m tcp --dport 25566 -j DNAT --to-destination a.a.a.a:25566
-A POSTROUTING -d a.a.a.a/32 -p tcp -m tcp --dport 25566 -j SNAT --to-source b.b.b.b
ただし、すべてのトラフィックは a.a.a.a
(から b.b.b.b
)はIPアドレスを示します b.b.b.b
着信トラフィックのIPとして。
元のIPがトラフィックのルーティング先の他のサーバーに表示されるように、元のIPをパケット内のどこかに保持するにはどうすればよいですか。
元のIPアドレスを ルーティング パケットではなく NATによる転送 。通常、ルーティングするIPアドレス空間が不十分なため、NATを使用します。
—
user4556274
@ user4556274これを行う方法について何か光を当てましたか。
—
William Edwards
プラットフォームによって異なります。典型的なLinuxでは、編集することでルーティングを有効にします。
—
user4556274
/etc/sysctl.conf
行のコメントを解除する net.ipv4.ip_forward=1
その後、で適用 sysctl -p /etc/sysctl.conf
。あるインタフェースに入ってきたパケットは、ルーティングテーブルが要求するものであれば、他のインタフェースから出て行きます。 ip -4 route
)ただし、ルーティング可能なIPアドレスが1つしかない場合(通常のホーム設定)、これはインターネットトラフィックでは機能しません。ただし、ホームネットワーク内でローカルルーティングを試すことはできます。
2つ目のルールは送信元IP(送信元NAT)を書き換えることです。あなたはそれなしで試したことがありますか?
—
user2313067