NAT(Network Address Translation)とは、IPアドレスを変換する仕組み。具体的には、あるネットワークの中でしか使えないプライベートアドレスと、インターネットで使えるグローバルアドレスとを相互に変換する仕組みだ。ルーターでこの変換をすることで、プライベートアドレスを割り振られたパソコンも、グローバルアドレスでインターネットに接続できるようになる。

 しかし、グローバルアドレスが一つしかないうえにプライベートアドレスを使っている端末がネットワーク内に複数ある場合、それらの端末は同時にはインターネットにアクセスできない。NATは、あくまでもプライベートアドレスとグローバルアドレスを1対1で変換するものだ。同時にアクセスしたい場合は、端末の数だけグローバルアドレスが必要になる。

 この不都合を解消したアドレス変換の仕組みがNAPT(Network Address Port Translation)だ。1個のグローバルアドレスを複数のプライベートアドレス端末で併用し、同時にインターネットに接続できるようにしている。

 NAPTがアドレス変換のために使うのが、プライベートアドレス端末で利用しているTCP/UDPのポート番号だ。具体的には、プライベートアドレス端末がインターネットへ向けてフレームを送出すると、ゲートウエイとして介在するNAPTルーターがそのフレームに書かれた送信元のTCP/UDPポート番号をユニークな番号(下中の6001や6002など)に書き換える。さらに送信元のプライベートアドレスをグローバルアドレスに変換して、このポート番号と一緒にインターネットへ送り出す。こうすることで、同じ一つのグローバルアドレスを使いながら、同時に複数のプライベートアドレス端末からの通信ができるのである。

[画像のクリックで拡大表示]

 ただし、外部のネットワークへ送信するフレームのデータ部分にIPアドレスやTCP/UDPポート番号を組み込むIP電話などのサービスを利用する場合、NAPTでは通信できないことがある。

 なおNAPTは、「IPマスカレード」、「ENAT」(拡張NAT)、「PAT」(Port Address Translation)などとも呼ばれるが、RFC2663によってNAPTに名称を統一している。また、ブロードバンドルーターなどで「NAT対応」と書かれている製品があるが、それはNAPTの機能を示しているのがほとんどである。