リビング+:特集 2003/05/20 23:55:00 更新

短期集中連載:ブロードバンドルータの最新機能を試す
第4回:NATを越えるための機能

最近のルータには「特殊アプリ」や「トリガーフォワード」、「ポート転送」「仮想DMZ」などといった設定項目をもつものが増えてきている。これらはNATを越えるための機能。今回は、各機能の違いとメリット/デメリットを解説していこう

 最新機能というわけではないが、最近のルータには「特殊アプリ」や「トリガーフォワード」などといった設定項目をもつものが増えてきている。「特殊アプリ」とは、そのままではNAT(アドレス変換)を越えることができない特殊なアプリケーションのための設定である。今回は、この「特殊アプリ」の他、「ポート転送」や「仮想DMZ」のようなNATを越えるための基本的な機能もあわせて説明する。なお、これらの機能の名称は、メーカーによってさまざまであるが、機能名のバリエーションについては最後にまとめてみた。

IPアドレスとポート番号

 各機能についての解説に入る前に、IPアドレスとポート番号について簡単におさらいをしておこう。ブロードバンドルータのNAT機能においては「ポート番号」が重要なキーワードとなるからである。

 ご存知のように、TCP/IPでは、識別するための番号である「IPアドレス」を各通信ホスト(PCやルータなど、ネットワークに接続している機器)に割り当てる。このIPアドレスは、TCP/IPによる通信の宛先や送信元の指定に利用される。

 しかし、1つの通信ホストの中で複数のプログラムが稼動し、それぞれ別の通信を行うこともある。このような場合、IPアドレスだけでは、どのプログラムが関わっている通信なのか識別することができない。また、1つのプログラムしか稼動していなくても、同時に複数の通信を行う際、それぞれを区別することができると便利だ。

 「ポート番号」は、同一通信ホスト上の複数の通信を識別するための番号。いわば、電話の内線番号のようなものである。

 ポート番号は次のような方法で決められる。Webブラウザなど、外部のサーバへアクセスするクライアントプログラムの場合は、通信開始時にOSから空いているポート番号が通知される。クライアントプログラムは、このように動的に変わるポート番号を用いて、サーバにパケットを送信。サーバからの返信は、通常は送信時と同じポート番号に戻ってくる。

 一方、外部からアクセスを受ける側のサーバプログラムでは、使用するポート番号はあらかじめ決められている(さもないと、クライアントプログラムは、どのポート番号にパケットを送ればよいかわからなくなってしまう)。このように、サーバの種類に応じて、あらかじめ決められているポート番号は、「Well-Known」ポートと呼ばれる。例えば、http(Webサーバ)は80、smtp(送信用メールサーバ)は25などとなっている。

NATの基本原理

 ブロードバンドルータにおけるNAT機能では、複数のプライベートIPアドレスを、1つのグローバルIPアドレスに変換する。しかし、送信パケットのIPアドレスのみを単純に置き換えると、すべて共通のものに変換されてしまう。これでは見分けがつかなくなり、返信パケットに対して、元のプライベートIPアドレスに逆変換できなくなってしまう。

 そこで、ブロードバンドルータでは、IPアドレスとポート番号をセットにして変換を行っている。ポート番号は変換後に重ならないようにする。そして、変換後のポート番号と元のプライベートIPアドレス、ポート番号との対応を、変換テーブルとして記録しておく。こうしておくことにより、変換後のポート番号へ戻ってきた返信パケットを、元のプライベートIPアドレス、ポート番号に逆変換することができる。

「特殊アプリ」の使用例

 ところが、同時に複数のセッションを用いるようなアプリケーションでは、送信時とは異なるポート番号にも返信パケットを戻す。しかし、NATでは、変換後のポート番号を識別番号として、元のプライベートIPアドレス、ポート番号を記録しているため、送信時とは異なるポート番号に戻ったパケットは、元のIPアドレスに逆変換することができない。結果として、これらの返信パケットはルータで遮断されてしまう。

 この手のアプリケーションは、通常、NATを越えて通信することができないが、「特殊アプリ」を設定することによって、利用できるようになることがある。「特殊アプリ」では、トリガーとなるアクセスが行われると、送信時のポート番号だけでなく、あらかじめ設定した他のポート番号に届いたパケットも、トリガーの送信元に転送してくれる。転送先はトリガーとなるアクセスによって決められるため、同じアプリケーションを複数のPCで利用することができる。

triggerfoward.jpg
LINKSYS「BEFSR41」では「特殊アプリ」は「トリガーフォワード」という機能名になっている。まず、「トリガーポート」に、そのアプリケーションが使用するサーバのポート番号を指定する。次に、「フォワードポート」(製品によっては「インカミングポート」と表記される)には、サーバからの返信パケットが届くポート番号を入力する。

「ポート転送」の使用例

 「特殊アプリ」の機能がない場合、あるいは、アプリケーションの動作原理がわからず、トリガーを設定できない場合は、「ポート転送」で代用することができる。

 「ポート転送」では、ポート番号と転送先のIPアドレスを設定する。指定されたポート番号に届くパケットを、設定したIPアドレスに転送してくれる機能だ。転送先は固定されてしまうため、そのアプリケーションは、設定した1台のPCでのみ利用できる。

 この機能は、サーバプログラムを利用する場合にも用いられる。

portforward.jpg
「ポート転送」(フォワーディング)では、ポート番号と転送先を設定する

「仮想DMZ」の使用例

 アプリが使用するポート番号さえわからない場合は、「仮想DMZ」を利用すればよい。「仮想DMZ」とは、ルータに届いたパケットのうち、NATの変換テーブルに記録がないものは、すべて指定した通信ホストに転送する機能である。「仮想DMZ」に設定できる通信ホストは1つだけのため、この機能を利用できるPCも1つに限定される。

 ただし、従来はNATにより遮断されていた不正アクセスまで転送されてしまう。この機能を用いる場合は、「仮想DMZ」に設定するPCには、パーソナルファイアウォールソフトなどを導入し、セキュリティに注意しなければならない。

dmz.jpg
「仮想DMZ」では転送先を指定するだけでよく、設定は簡単だ。ただし、セキュリティ面での危険性がある

3機能の違いとデメリット

 ここまで説明した3機能の違いを、表にまとめてみた。

機能利用するための条件デメリット
特殊アプリアプリの詳細な動作がわかっている
ポート転送アプリの使用するポートがわかっている利用できるPCは、各アプリごとに1つに限定される
仮想DMZアプリの動作について何もわからない利用できるPCは1つで、さらにセキュリティ面で危険である

 もっとも、これらの3機能も、IPアドレスをパケットのデータ部分に埋め込むようなアプリケーション(たとえば、Windows Messenger)には対応できない。このようなアプリには、NATに例外的な処理を組み込むといった個別対応か、あるいは、Universal Plug and Play(UPnP)のような高度なしくみが必要になる。

機能名の相違

 ブロードバンドルータの機能名は、メーカーによって異なるものが多い。今回の3機能は、とくにさまざまな名称があって、わかりづらい。最後に、機能名のバリエーションについて、まとめておく。

○特殊アプリ

「トリガーフォワード」、「トリガー転送」などともいう。なお、設定項目の「フォワードポート」を「インカミングポート」とする製品もある。

○ポート転送

「ポートマップ/マッピング」、「ポートフォワード/フォワーディング」などともいう。さらに、サーバ公開のために使用することが多いため、「バーチャルサーバ」、「仮想サーバー」と呼ぶ製品もある。

○仮想DMZ

「DMZホスト」などともいう。製品によっては、ポート転送の設定画面に、ポート番号を設定しない「デフォルト転送先」を指定できるようになっており、仮想DMZと同じ効果を得ることができるものもある。

前 ブロードバンドルータの最新機能 4/5 次

[吉川敦,ITmedia]



モバイルショップ

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!