GapNATとNATSで解決する
どんなアプリでも動かす
汎用性が高い最新技術

 従来の個別対応とは違った形で,アドレス変換問題を解決しようとする新しい動きもある。すでに一部のブロードバンド・ルーターが備え始めているGapNAT(ギャップナット),現在IETFで仕様策定が進められているNATS(ナッツ)だ。最後は,こうした最新技術を見ておこう。

図9 「GapNAT」の考え方
GapNATは最初にルーターに接続したパソコンにグローバルIPアドレスを割り当てる。これで,LAN側パソコンがインターネットに直接つながったのと同じになる。

特別扱いのパソコンをつくる

 まずはGapNATから見ていこう。GapNATは,イー・アクセスなどと契約したADSLサービス利用者に貸し出されるADSLモデム一体型ルーターTE4111CとTE4121C(どちらも住友電気工業製)や,NTT-ME製ブロードバンド・ルーターのMN-7310などが,対応している。

 しくみは,さほど難しくない。LAN上で最初に起動したパソコンにブロードバンド・ルーターが自分自身に割り振られたグローバルIPアドレスGを割り当てるだけである(図9[拡大表示])。このとき,デフォルト・ゲートウエイのアドレス(D)も,ルーターに通知されたものをそのままパソコンに知らせる。こうすれば,LAN側パソコンからは,あたかも直接インターネットにつながっているように見える。つまり,アドレス変換を介さずにインターネットへ接続したのと同じ状態になるので,アドレス変換問題は起こらない,というわけだ。

 一方,2台目以降に起動したパソコンは,従来通りプライベートIPアドレスが割り当てられ,NATやIPマスカレードを介してインターネットへアクセスすることになる。

 つまり,1台のパソコンだけを特別扱いして,あたかもインターネットに直結したように見せかけるのがGapNATなのである。

 GapNATでは,ルーターに割り振られたグローバルIPアドレスの数だけ,このような特別扱いのパソコンを設けることができる。

もう一つの専用アドレスを使う

 もう一つの新技術NATSは,送受信パケットに新たに領域を設けて,そこにアドレス変換専用の情報を書き込もうというものだ。すでにIETFのインターネット・ドラフトとして仕様が公開されており,2002年末にはβ版が公開される見通しである。

 このNATSでは,IPアドレスやポート番号などに加えて,32ビットの「サブアドレス」を使ってパソコンのLAN内の場所(通常はプライベートIPアドレス)を特定する。通常のアドレス変換では,インターネット側からLAN内のアドレスはわからないが,NATSのサブアドレスでLAN内の情報も送受信しようというものである。

図10 アドレス変換専用の情報を埋め込む「NATS」
IPパケットのデータ部分に,プライベートIPアドレスなどを入れてやりとりする。
図11 両端のルーターがNATSに対応すればよい
インターネット中のルーターやパソコンが対応していなくてもNATSが利用できる。
 このサブアドレスは本来のIPヘッダーとは違う部分にあり,データ部分とまとめてカプセル化されている(図10[拡大表示])。インターネット上ではサブアドレス部分は無視され,通常のIPパケットと同じように扱われる。

 NATSに対応しなければならないのは,両端のブロードバンド・ルーターやパソコンである。パソコンがサブアドレス情報を埋め込んだIPパケットを送信し,受信側ルーターがこのサブアドレス情報を基にLAN内に転送する。

 基本的にサブアドレス入りのパケットを作るのはパソコンの役割だが,パソコンがNATSに対応していない場合は,ルーターがこれを補うことができる。この場合,図11[拡大表示]のような使い方になる。こみ入った話になるので,簡単に概要だけを見ておこう。< /P>

 NATS対応ルーターは通信相手のルーターがNATSに対応しているかとか,相手側のサブアドレスは何かとかを調べる際にDNSのしくみを使う。そして,未対応のパソコンから送信されたパケットは,NATSルーターがサブアドレスを付加して,相手のルーターに届け,受信側ルーターがサブアドレスを解釈して目的のLAN側パソコンに転送する。

 このようにすれば,NATS対応ルーター同士では,それぞれのLAN側パソコンのプライベートIPアドレスを指定できるようになる。サーバーを介さないPtoP型のアプリケーションを使うパソコンがLAN内に複数あっても,うまく動くようになるはずだ。

 また,同種のサーバーをLAN内に複数設置しても,インターネット側から個別のサーバーを指定できるようにもなる。

   ◆    ◆    ◆

 以上,NATとIPマスカレードの基本から,アドレス変換にかかわるさまざまな問題とその解決策を見てきた。ここまで理解していれば,どんなアプリケーションで問題が起こり,どうすれば解決できるかも推測できるだろう。あとは,自分が使いたいアプリケーションに最適な機能を選ぶだけだ。