サーバーガイドのドキュメント
IPマスカレードの目的は、ネットワーク上のプライベートでルーティング不可能なIPアドレスを持つマシンが、マスカレードを行っているマシンを介してインターネットにアクセスできるようにすることです。 プライベートネットワークからインターネットに向かうトラフィックは、要求を行ったマシンに返信できるように操作する必要があります。 これを行うには、カーネルは、各パケットの送信元 IPアドレスを変更して、要求を行ったプライベートIPアドレスではなくインターネット経由で返信するようにしなければなりません。 Linuxは接続トラッキング (conntrack)を使用して、どの接続がどのマシンに属しているかを追跡し、それに応じて各戻りパケットを再ルーティングします。 プライベートネットワークを離れたトラフィックは、Ubuntuゲートウェイマシンから発信されたものとして「偽装」されています。 このプロセスは、Microsoftのドキュメントでインターネット接続の共有と呼ばれています。
IPマスカレードの手順
これは1つのiptablesルールで行うことができます。これはネットワーク構成によって若干異なる場合があります:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE上記のコマンドは、プライベートアドレス空間が192.168.0.0/16で、インターネット接続デバイスがppp0であることを前提としています。 構文は次のように分類されます。
- -t nat - ルールはナットテーブルに入ることです
- -A POSTROUTING - ルールはPOSTROUTINGチェーンに追加されます(-A)。
- -s 192.168.0.0/16 - ルールは、指定されたアドレス空間から発信されるトラフィックに適用されます
- -o ppp0 - ルールは、指定されたネットワークデバイス経由でルーティングされるようにスケジュールされたトラフィックに適用されます
- -j MASQUERADE - このルールに一致するトラフィックは、上記のように操作されるMASQUERADEターゲットに「ジャンプ」(-j)することです
フィルタテーブルの各チェーン(デフォルトテーブル、ほとんどまたはすべてのパケットフィルタリングが行われる)には、デフォルトポリシー ACCEPTがありますが、ゲートウェイデバイスに加えてファイアウォールを作成する場合は、ポリシーをDROPに設定するか、あなたのマスカレードされたトラフィックは、上記のルールが動作するようにFORWARDチェーンを通して許可される必要があります:
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j sudo iptables -A FORWARD -d 192.168.0.0/16 -mステート設定、関連-i ppp0 -j ACCEPT上記のコマンドは、ローカルネットワークからインターネットへのすべての接続と、それらの接続に関連するすべてのトラフィックを開始したマシンに戻すことができます。
* ライセンス