NAT ゲートウェイ
NATは"Network Address Translation"の省略形だ。NATはファイヤーウォール(あるいはゲートウェイ/ルーター)に経路指定可能なIPアドレスを割り振り、より多くのマシンにでIPを共有するというファイヤーウォールの一つの形式だ。たとえば、君が5つのIPアドレスしか割り当てられていないネットワークのオフィスをもってて、でも15のマシンを接続しなければならないような場合がそうだ。同じことが利用可能なIPが一つしかない場合にも適用できる。
NAT と Windows
Windows 98 や Windows 2000といったマイクロソフト Windowsは "Internet Connection Sharing"という機能を持っている。これはネットワーク全体をまかなっているシステムのIPアドレスを共有できるようにするとても簡単なNATシステムだ。これはもし君と二人のルームメイトが一つのアイヤルアップ接続を共有したい場合に使うことになるだろう。Windowsは典型的に(RFC
1918で定義されている)クラスCの内部予約アドレス空間(192.168.*.*)を使うだろう。
実はこの場合Gnutellaはあっけなく動作する。さらにプロパティーを設定する場合(あなたがWindowsに"この接続を共有せよ"と指示する場合)あなたは"サービスをエクスポートする"という設定項目をみるだろう。ここまできたら、あなたはNAT機器のポート上の接続を一つの内部アドレスにフォワードするようにNATシステムに 指示することができる。
少しの間君がDSL上でWindows NATを走らせていて君がIPSからもらったIPアドレスが1.2.3.4だと仮定しよう。 Windows は192.168.0.1をネットワーク内部に割り当て、基本的なDHCPサーバをセットアップするだろう。君のマシンは192.168.0.6で君はGnutellaをポート6350で走らせている。君はNATの設定にポート6350を192.168.0.6にエクスポートするように指示するだろう。Gnutella側では、君は設定(configure)項目へ行き Force Local IP をNATシステムのアドレス(1.2.3.4)へと設定するだろう。こうして、君はGnutellaNetに君が1.2.3.4:6350でサーバントを走らせていることを知らせることができ、そこにみんなが接続できるようになる。なぜなら、ポート6350上のサービスは192.168.0.6にエクスポートされ君のワークステーション上で走っているGnutellaサーバントにそのことが伝えられるからだ。
NAT と Linux
Linuxは今のところカーネルレベルでNATをサポートしていない 。(2.4カーネルリリースで開発中である。現在の安定板カーネルではipchainsでIPマスカレード機能を使う必要がある。)
NAT と ルーター
多くの家庭用、小規模ビジネス用のルータも組み込みNAT機能を持っている。それらにも"エクスポートするサービス"という設定項目がある。その設定の仕方はルータ毎に大きく異なっているのでルータに付属してきた説明書を参考にしてほしい。ここではいくつかの有名なルータについてベンダーが書いた文書へちょっとだけリンクを張っておこう:
- Netopia R7100 (SDSL) [ 仕様
| 説明書
]
- D-Link DI-701 (DSL) [ 仕様
| 説明書 ]