ICDロゴ

NAT (Network Address Translation)

【ナット】

別名
ネットワーク・アドレス変換 (Network Address Translation) 【ネットワーク・アドレス・ヘンカン】

最終更新日: 2002/05/03

 TCP/IPを使ったインターネットなどのネットワークにおいて、IPアドレスを変換して、限られたIPアドレス資源を有効に使ったり、ファイアウォールを構築したりするための技術。インターネットへ接続するためのルータ(ISDNルータなど)に実装されていることが多い。

 インターネットを利用するためには、インターネットに接続するノードに対して、世界中でユニークになるように公式に割り当てられた、グローバルIPアドレスを付けておく必要がある。しかし、インターネットの急速な普及により、グローバルなIPアドレスはそう遠くない将来に枯渇する恐れがあり、その対策としていろいろな方法が考え出された。その1つとして、組織内では広範囲にプライベートIPアドレスを使い、実際にインターネットに接続する必要のあるノードにだけグローバルIPアドレスをその都度割り当てる、という方法がある。いくつかのグローバルなIPアドレスをIPアドレス・プールと呼ばれるところに保留しておいて、インターネット上のサービスを利用したいローカル・ノードからの要求に応じて、グローバルIPアドレスを一時的に貸し出し、利用が終われば、速やかにそれをIPアドレス・プールに返却してもらうのである。例えば、あるノードでFTPやTELNETなどのアプリケーションを実行開始すると、グローバルIPアドレスを1つそのノードに対して割り当て、アプリケーションを終了すると、割り当てを解除する。

 ただし、実際にいちいち各ノードに新しいIPアドレスを割り当てたり、解放してもらったりするのではなく、インターネットと組織のネットワークの間をパケットが通過するときに、そのパケットの内容を書き換えて、あたかもグローバルIPアドレスを持つノードが直接インターネットに接続されているかのように振る舞わせるのである。このアドレスの書き換え処理をNAT(ネットワークアドレス変換)といい、通常はNAT対応のルータか、専用のアドレス変換ハードウェア(「NAT box」などと呼ばれる)で変換処理を行う。

 組織内部のノードがインターネットへアクセスしようとすると、ローカルIPアドレスからグローバルIPアドレスに向けてパケットが発信されるが、NATではこのパケットを捕捉して、アドレスの変換処理を開始する。まずIPアドレス・プールから空いているグローバルIPアドレスを1つ取り出し、これを発信元のローカルIPアドレスと対応付ける。そして、以後は、このIPアドレスから発信されたパケットのソース・アドレス・フィールドを書き換えて、あたかもグローバルIPアドレスから発信されたように見せかける。また、インターネット側から戻ってきたパケットに対しては、先の対応表を参照して、宛先のローカルIPアドレスを見つけ出し、パケットの宛先フィールドを書き換えてから、組織内部へとルーティングする。さらに、NATではパケットの内容も見ていて、FTPなどのように、データ中にIPアドレスが含まれているようなプロトコルの場合は、その内容も適切に修正する。そしてアプリケーションがすべてのコネクションをクローズしたことを検出すると、グローバルIPアドレスとローカルIPアドレスの対応を解除し、IPアドレス・プールへグローバルIPアドレスを返す。

 以上のような処理により、少ないグローバルIPアドレスでも、複数のノードに対してインターネットへのアクセス・サービスを提供することができる。もっとも、用意されたIPアドレス・プールの総数を超えるようなノードが同時にインターネットへアクセスすることはできないし、未知のプロトコルの場合にはうまく動作しないこともあるが、メールやWWWなどは組織内に用意されたメール・サーバやプロキシ・サーバへアクセスするため、本当にグローバルIPアドレスが必要なサービスはそう多くないであろうから、これでも十分実用的といえる。

 NATを使うと、組織内の各ノードに対してすべてグローバルIPアドレスを付ける必要がないので、IPアドレスを節約できるだけでなく、組織内の各ノードをインターネットから隔離することができるので、セキュリティ的にも望ましい。

 なお、NATではIPアドレスしか変換しないが、さらにTCPやUDPのポート番号も変換して、1つのグローバルIPアドレスで複数のプライベートなノードをサポートした、IPマスカレード(もしくはアドレス/ポート変換、NAPT)と呼ばれるものもある。最近では、これをサポートしたルータも多い。

NATを利用したインターネット接続の例
NATを利用したインターネット接続の例
これは、Windows 2000のインターネット接続共有機能を使い、Windows 2000マシンをNATルータとして機能させた例。192.168.0.〜のプライベートIPアドレスが割り当てられたLAN側のコンピュータからのインターネット・アクセスは、NATルータを経由してインターネットに送られる。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ