次のページ 前のページ 目次へ

2. 予備知識

2.1 IP マスカレードとは

IP マスカレードは、 Linux におけるネットワーキング機能であり、多くの 商用のファイアウォールやネットワークルータに見受けられる 1対多の NAT (Network Address Translation: ネットワークアドレス変換) と似ています。 例として、 Linux ホストが PPP やイーサネット等にてインターネットに接続 されているとしましょう。 IP マスカレードの特徴は Linux ボックスに (PPP やイーサネット等にて) 接続される "内部の" コンピュータにも等しくインターネットを 利用できるようにします。 Linux の IP マスカレーディングは、内部マシンが公式に割り当てられた IP アドレスを持たなくても、内部マシンがインターネットに 接続できるようにします。

マスカレードは、 マスカレードゲートウェイを経由して、全てのマシンを 隠してインターネットにアクセスできるようにします。 インターネット上の他のマシンからは、発生する全てのトラフィックは あたかも IP マスカレード Linux サーバ自身からのものであるように 見えます。 その追加機能に加えて、 IP マスカレードは非常に安全なネットワーキング 環境を作るための土台を提供します。 しっかり作られたファイアウォールを伴えば、しっかり設定された マスカレードシステムと内部の LAN のセキュリティを壊すことはかなり 難しくなるでしょう。

マスカレードが 1対1 の NAT やプロキシによる問題解決方法とどのように 違うのか、もっと知りたい方は、 FAQ の章 の IP マスカレードは、プロキシや NAT サービスとどう違うのでしょうか? をご覧ください。

2.2 現在の状態

IP マスカレードは何年もの間使われ続けており、Linux カーネル 2.2.x の段階にある現在、とても成熟した状態にあります。 Linux カーネル 1.3.x から、MASQ サポートが組み込まれています。 今日、多くの個人や商業ベースのビジネスにおいて使われ、優秀な結果を おさめています。

Web ブラウジング、 TELNET, FTP, PING, TRACEROUTE 等の一般的な ネットワークの利用は、 IP マスカレード上でうまく動作します。 FTP, IRC とリアルオーディオ (Real Audio) のような他の コミュニケーションは適切な IP MASQ モジュールをロードすればうまく 動作します。 ストリーミングオーディオのような他のネットワークに特有のプログラム ( MP3, True Speech など) も同様に動作します。 メーリングリストの何人かの優秀なユーザはビデオ会議ソフトウェアに おいても良い結果を出しました。

内部と外部のイーサネットネットワークの間を 1 つだけのネットワークカード (NIC) にて IP マスカレードを動作させることはお薦めできません。 詳細については FAQ の章の IP マスカレードは1枚だけのイーサネットネットワークカードで動作しますか? にある解説をご覧ください。

ともかく、より完全なサポート済みソフトウェアの一覧は サポートしているクライアントソフトウエアとその他の設定情報 の章をご覧になってください。

IP マスカレードは、他の様々な異なる OS やハードウェアプラットフォーム にて稼働する 'クライアントマシン' に対し、サーバとして良好に動作します。

以下に内部の MASQ されたシステム上での成功例を示します -

このリストはまだまだ続きます。要するに、 TCP/IP を喋れる OS プラットフォームであれば、 IP マスカレードと一緒に使えるはずなのです。

2.3 IP マスカレードが有用な場合

2.4 IP マスカレードが無用な場合

2.5 どのようにして IP マスカレードは動作するか

Ken Eves 氏によるオリジナルの IP マスカレード FAQ から引用します -

これはもっとも簡単な構成図です - 

   SLIP/PPP         +------------+                         +-------------+
   ISP へ           |  Linux     |         SLIP/PPP        | Anybox      |
  <---------- modem1|    #1      |modem2 ----------- modem3|             |
    111.222.121.212 |            |           192.168.0.100 |             |
                    +------------+                         +-------------+

上図において、 IP_MASQUERADING を伴う Linux box が Linux #1 として
インストールされており、 modem1 を使った SLIP 或は PPP 接続にて、
インターネットに接続されています。
このマシンにはパブリック IP アドレスとして 111.222.121.212 が割り当て
られています。
更に発信側のダイヤルインと SLIP 或は PPP 接続を受け入れるための
modem2 が接続されています。
第2 のシステム ( Linux が稼働している必要はありません) は
Linux #1 box へ発呼し、 SLIP 或は PPP 接続を開始します。
このマシンはインターネットからパブリックな IP アドレスが
*割り当てられません*ので、プライベートアドレスの 192.168.0.100 を
用います。(下記参照。)

マスカレードとルーティングの設定が適切であれば、マシン "Anybox" は
あたかもインターネットに直接接続されたかのように振る舞うことができます
(いくつかの例外はありますが)。

Pauline Middelink 氏からの引用 - 

Linux #1 box は "ANYBOX" マシンのゲートウェイとして設定されていなければ
ならないことを忘れてはなりません。 (ここで、それがデフォルトルートなのか、
或は単なるサブネットであるのかは問題ではありません。)

もし "ANYBOX" がそのようにできないのであれば、 Linux マシンは全ての
ルーティングされたアドレスに対して代理 arp をサポートするよう
設定されるべきです。

けれども、代理 arp のセットアップと設定はこの文書の扱う範囲外です。

次にあげるのは comp.os.linux.networking からの過去の投稿からの
引用で、上記例に合致するように名前を書き換え、編集したものです - 

   o ANYBOX に Linux マシンがゲートウェイだと教えておきます。
   o マシン ANYBOX に、 PPP 或は SLIP 接続される Linux box が
     ゲートウェイであることを教えておきます。
   o ANYBOX から Linux box にパケットが 届いた時、 Linux box は
     パケットに対して新しい TCP/IP ソースポート番号を割り当てて、
     パケットヘッダに自分の IP アドレスを書き込んで、元の IP
     アドレスを保存しておきます。
     MASQ サーバはこうして修正したパケットを SLIP/PPP 
     インターフェースを通じてインターネットへ送信します。
   o パケットがインターネット から Linux box に帰って来たら、
     Linux はポート番号が先に割り当てたものの一つであるか調べます。
     もしそうなら、 MASQ サーバは元のポートと IP アドレスを得て、
     戻って来たパケットヘッダにそれを復元し、そのパケットを
     ANYBOX へ送ります。
   o パケットを送られたホストは、その違いに全く気付かないでしょう。

もう一つの IP マスカレーディングの例 -

典型的な例を下図に示します -


    +----------+
    |          |  イーサネット
    | A-box    |::::::
    |          |.2   : 192.168.0.x
    +----------+     :
                     :      +----------+   PPP   
    +----------+     :   .1 |  Linux   |   link
    |          |     :::::::| Masq-Gate|:::::::::::::::::::// インターネット
    | B-box    |::::::      |          |  111.222.121.212
    |          |.3   :      +----------+
    +----------+     :      (マスカレード
                     :       ゲートウェイ)
    +----------+     :
    |          |     :
    | C-box    |::::::
    |          |.4    
    +----------+  
                
    |                       |          |
    | <-内部ネットワーク--> |          | <- 外部ネットワーク ---->
    |                       |          |

この例では、4台のコンピュータシステムが接続されています。 またおそらくその他に、図のもっと右側にインターネットへの PPP 接続 を提供するホストが、そしてさらにその右側にはあなたが情報をやり取り したいと思うインターネット上のリモートホストが存在することでしょう。 Linux システム masq-gate は IP マスカレードを行う ゲートウェイで、マシン A-boxB-box 及び C-box から構成される内部ネットワークから インターネットへの接続を行います。 内部ネットワークは RFC-1918 にて割り当てられた幾つかのプライベートネットワークアドレス の一つ (この例では 192.168.0.0) を使います。 Linux box は TCP/IP アドレス 192.168.0.1 を持ち、その他のホストは 以下のアドレスを持っています -

3台のマシン A-boxB-box 及び C-boxは TCP/IP を話すことができればどんなオペレーティングシステムが動作して いても構いません。 OS は Windows 95Macintosh MacTCP 或は OpenTransport 或は別の Linux box など、インターネット上の他のマシンに接続 できるものです。 動作中、マスカレーディングシステム或は MASQ-gate はこれら 内部接続の全てを masq-gate 自身から発生するように見えるように 変換します。 次にマスカレードは、マスカレードされた接続へ戻ってくるデータが中継されて、 発信元のシステムへ戻されるように処理します。 これにより、内部ネットワーク上のシステムからはインターネットへの直接 経路があるように見え、データがマスカレードされていることは意識しません。 これを "透過的な" 接続と呼びます。

注意 - 以下に示すトピックの詳細については よくある質問 (FAQ) をご覧ください -

2.6 IP マスカレードを Linux 2.2.x で使うための必要条件

** 最新の情報については IP マスカレードの情報源 を参照してください。 **

2.7 IP マスカレードを Linux 2.3.x 及び 2.4.x で使うための必要条件

** 最新情報については IP マスカレードの情報源 を参照してください。 **

詳細な情報とその他パッチ等は IP マスカレードの情報源 をご覧ください。

2.8 IP マスカレードを Linux 2.0.x で使うための必要条件

** 最新情報は IP マスカレードの情報源 を参照してください。 **


次のページ 前のページ 目次へ