iptablesのコンテキストでのMASQUERADEとは何ですか?


42

ではiptables何度も私はターゲット参照 MASQUERADEを。それは何ですか?私は多くのものを検索し、見つけました。しかし、マスケレードとは何かをわかりやすく説明してくれる人が必要 ですか?

例(この回答から引用)は次のとおりです。

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

回答:


33

元のトラフィックを中断することなくトラフィックをルーティングできるようにするiptables実装に依存するアルゴリズムです。

仮想Wi-Fiアダプターを作成してWi-Fiを共有する場合は、マスカレードアルゴリズムを使用します。

私はあなたの無線LANを介してイーサネット接続を共有することについて話していません、私はそれを仮想アダプタにマスカレードすることによってあなたの無線LANを介して無線LAN接続を共有することについて話します。これにより、Wi-Fi接続をwifi経由で共有できます。

これを読んで、マスカレードまでスクロールダウンしてください:http : //billauer.co.il/ipmasq-html.html

詳細については、http//oreilly.com/openbook/linag2/book/ch11.htmlをご覧ください

「Connectify for linux」に関するこれらの質問はすべて、MASQUERADEアルゴを実装することで解決できます。

直接の例については、次のページをご覧ください:http : //pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

私は最後のリンクを読んでいません!!!! しかし、以下は正確な抜粋/例です。

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

私は、検索エンジンがアルゴリズムを悪意のある種類のハックにする方法を本当に嫌います。

最終編集:このリンクは最高ですhttp://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias



MASUERADEルール(コードリストの3行目)をテストしましたが、リンクはインターフェイス間で完全に共有され、利用可能です。したがって、私はFORWARDルールが何のためにイライラしていますか?(コードリストの2行目のルール)
千木郷

34

MASQUERADEは、inetインターフェイスの外部IPがルールの作成時に不明な場合(サーバーが外部IPを動的に取得する場合)にSNATターゲット(ソースNAT)の代わりに使用できるiptablesターゲットです。


IPアドレスがわかっている場合、何を使用する必要がありますか?
リュック

4
@Luc、元のホストからのipパケットに元のソースipの代わりに配置されるソースipを定義するSNATターゲット(ソースネットワークアドレス変換)。このように-j SNAT --to-source xx.xx.xx.xx、xx.xx.xx.xxは目的のインターフェースの外部IPです。また、外部IPがわかっている場合に使用する必要があると言えません。SNATではなくMASQUERADEを使用して、ルールを柔軟にし、現在持っている特定の外部IPにバインドしないようにすることをお勧めします。
セルゲイP.別名紺

7

IPマスカレードは、ネットワークアドレス変換(NAT)および他の一般的なオペレーティングシステムを共有するネットワーク接続としても知られています。これは基本的に、パブリックインターネット全体のIPアドレスを持たないコンピューターが、インターネット上の他のコンピューターとインターネットの間にある別のコンピューターの助けを借りて通信できるようにする方法です。

ご存じのように、IPアドレスはインターネット上でマシンを識別するために使用されます。IPアドレスを持つパケットが与えられると、インターネットを構成するすべてのルーターは、そのパケットを宛先に到達させるためにそのパケットの送信先を認識します。現在、ローカルエリアネットワークやインターネットに直接接続されていない他のネットワーク内で私的使用のために予約されているIPアドレスの範囲もいくつかあります。これらのプライベートアドレスは、パブリックインターネットで使用されないことが保証されています。

これは、プライベートネットワークに接続されているマシンがインターネットに直接接続できないため、プライベートIPアドレスを使用しているマシンで問題を引き起こします。パブリックインターネットでの使用が許可されているIPアドレスがありません。IPマスカレードは、プライベートIPアドレスを持つマシンがインターネットと通信できるようにすることでこの問題を解決すると同時に、マシンのパケットを変更して元のプライベートIPアドレスの代わりに有効なパブリックIPアドレスを使用します。インターネットから返されるパケットは、プライベートIPマシンに到達する前に元のIPアドレスを使用するように変更されます。

これはインターネットネットワークに限定されないことに注意しください。マスカレード/ NATを使用して、1つのネットワークから別のネットワークにトラフィックをルーティングできます。たとえば、10.0.0.0 / 24および192.168.0.0/24

IptablesマスカレードルールはSNATルールに置き換えることができます

iptables -t nat -A POSTROUTING -o eth2 -s 10.0.0.0/24  -j MASQUERADE

=

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth2 -j SNAT --to-source 192.168.1.2
# supposing eth2 assigned ip is 192.168.1.2

マスカレードとsnatの両方では"1" > /proc/sys/net/ipv4/ip_forward、設定ファイルnanoを編集して、エコーを使用して、または永続的にカーネルレベルでip_forwardを有効にする必要があります/etc/sysctl.conf

IP Forwardは、マシンをルーターのように動作させ、したがって、ターゲットネットワーク(local / net / other / etc)によって論理的に、またはルートテーブルに従って、すべてのアクティブなインターフェイスからパケットをリダイレクト/転送します。ip_forwardを有効にすると、重要なセキュリティリスクが生じる可能性があることに注意してください。ip_forwardを回避できない場合は、追加のiptables / routeルールによって監視/保護する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.