転送されたパケットのパスが発信するパケットのパスとは異なります。

転送されたパケットのパスが発信するパケットのパスとは異なります。

私は特定のソースからSRCNAT(具体的にMASQUERADE)パケットを転送するためにiptablesを使用しています。発信パケット(このコンピュータで開始)を転送されたパケット(別のデフォルトパス)とは異なる方法でルーティングしたいと思います。どうすればいいですか?

ベストアンサー1

1つの方法は、iptablesにトラフィックを表示し、ポリシールーティングを使用してアウトバウンドパスを一致させることです。

あなたが持っていると仮定ゲートウェイ1そしてゲートウェイ2同じLAN上...

ip route flush table 3
ip route add table 3 <lan net>
ip route add default via <gateway1>

ip route flush table 4
ip route add table 4 <lan net>
ip route add default via <gateway2>

iptables にトラフィックを表示します。

iptables -t mangle -A PREROUTING   -s 10.0.0.0/24 -j MARK --set-mark 3
iptables -t mangle -A PREROUTING   -s 10.1.0.0/24 -j MARK --set-mark 4

送信元アドレス、宛先アドレス、ポートなど、必要なものを一致させることができます。

ダイナミック ゲートウェイ IP に依存せずに iptables からソース IP を明示的に書き換えるので、MASQUERADE の代わりに SNAT を使用できます。バラよりSNATとMASQUERADEの違い

おすすめ記事