ルーティングに影響を与えずに 2 つのネットワーク インターフェイス間で NAT を行う方法

ルーティングに影響を与えずに 2 つのネットワーク インターフェイス間で NAT を行う方法

私の Linux ベースのルーターには 5 つのイーサネット ポートがあります。現在、NAT なしでポート 1 と 2 および専用 WAN ポート間のルーターとして機能しています。ポート 1 は 192.168.1.1/24、ポート 2 は 192.168.2.1/24、WAN ポートは 192.168.0.1/24 です。

発信 WAN 接続は、使用状況を追跡するログ デバイスを通過し、次に NAT を実行する 2 番目のホーム ルーターを通過し、その WAN ポートでパブリック IP を使用します。

簡単に言うと、ネットワークは次のようになり、IP プレフィックスは 192.168.- です。

server1--------Router1--------Logging device--------Router2----------
   .1.2      .1.1  .0.1                           .0.254  (public ip)

Router1 の設定は正常に機能しており (これは単純なルーターです)、Router2 も同様です (これは単純なゲートウェイです)。ただし、Router2 を削除し、Router1 のポート 3 と 4 の間で NAT を実行し、ポート 4 で実際のパブリック IP を使用するようにしたいと思います。

それは実現可能でしょうか? すべてのトラフィックがログ記録デバイス (元の IP 送信元アドレスを持つ) を通過するように、ポート 1-2-WAN と 3-4 間の厳密な分離を維持したいと考えています。

透過ブリッジングが解決策になるでしょうか? このブリッジにソース NAT を適用できますか? IP アドレス指定は適切に行われていますか?

答え1

router1 の 5 つのイーサネット ポートの名前が eth0 - eth4 で、WAN が eth3 にあると仮定します。

iptables -t nat -A POSTROUTING --source 192.168.1.0/24 --out-interface eth3 -j MASQUERADE
iptables -t nat -A POSTROUTING --source 192.168.2.0/24 --out-interface eth3 -j MASQUERADE

パブリック IP アドレスとして固定 IP を使用している場合は、「-j MASQUERADE」を「-j SNAT --to-source $PUBLIC_IP」に置き換えます (もちろん、$PUBLIC_IP を WAN アドレスに置き換えます)。

もちろん、デフォルト ルートを eth3 に設定する必要がありますが、これは質問の一部ではありません。パブリック IP アドレスへの着信トラフィックをファイアウォールで保護することも必要です。

関連情報