SNATと仮面舞踏会の違い

SNATと仮面舞踏会の違い

SNATとMasqueradeの実際の違いは何ですか?

ローカルネットワークでインターネット接続を共有するには、SNATまたはMasqueradeを選択する必要がありますか?

答え1

宛先には、SNAT発信するすべてのパケットに適用するIPアドレスを指定する必要があります。宛先をMASQUERADE使用すると、インターフェイスを提供でき、そのインターフェイスのすべてのアドレスは、発信するすべてのパケットに適用されるアドレスです。また、SNATカーネルの接続トレースを使用すると、インターフェイスが閉じて復元されたときにすべての接続を追跡します。これはターゲットの場合には該当しませんMASQUERADE

良い文書には以下が含まれます。NetfilterウェブサイトのHOWTOそしてiptablesマニュアルページ

答え2

SNATそして、チェーン内のテーブルMASQUERADEに対して同じソースNAT操作を実行します。natPOSTROUTING

違い

  • MASQUERADEするいいえ--to-source動的に割り当てられたIPで使用するように設計されているため必須です。

  • SNAT働くただ静的IPを使用してください。だから必要です。--to-source

  • MASQUERADE追加のオーバーヘッドがあり、宛先がパケットに遭遇するたびに使用するIPアドレスを確認する必要があるSNATため、遅くなります。MASQUERADE

ノートMASQUERADE:VPC CIDR内にプライベートIPを持つVPCのAWS EC2インスタンスの一般的なユースケース(パブリックサブネットにあると仮定10.10.1.0/24) -10.10.1.100インターネットと通信するために接続されたパブリックIPもあります。 )、プライベートIPはこれを介して1:1 NAT(AWSネットワークインフラストラクチャマジック)を実行します。パブリックIPは、インスタンスの電源を入れ直した後に変更されることがあります。このユースケースでは、EIP以外の場合は停止してから開始する方がMASQUERADE良い選択です。

重要:静的IPを持つターゲットを使用できますが、追加のMASQUERADEオーバーヘッドに注意してください。

引用する

答え3

短い答え:SNATを使う

説明:私はRaspbianルーターから偽装ルールを削除しようとしましたが(インターフェースIPアドレスは192.168.8.2で固定eth0を介して他のルーターと通信しています)、インターネット共有は引き続き機能します。私が試したコマンドは次のとおりです。

iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.8.2

関連情報