NAPT 【Network Address Port Translation】 IPマスカレード / IP masquerade / PAT / Port Address Translation
概要
NAPT(Network Address Port Translation)とは、2つのIPネットワークの境界にあるルータやゲートウェイが、双方のIPアドレスとポート番号を自動的に変換してデータを中継する技術。内部ネットワークからインターネットへ透過的にアクセスできるようになる。インターネットに接続するにはグローバルIPアドレスが必要だが、企業や家庭などの構内ネットワーク(LAN)では当該ネットワーク内だけで通用するプライベートIPアドレス(ローカルIPアドレス)で運用されている場合があり、プライベートアドレスしか持たない機器はインターネットへ直接アクセスすることはできない。
NAPTはネットワーク境界上にあるルータなどの中継装置が持つ機能で、プライベートアドレスとグローバルアドレスの相互変換を自動的に行い、ローカル側の機器があたかもインターネットに直接繋がっているかのようにアクセスできるようにする。その際、TCPやUDPで通信の種類を表すポート番号も動的に変換する。
NATとの違い
同種の技術である「NAT」(Network Address Translation)はIPアドレスのみを変換するため、一つのグローバルアドレスを同時に使えるのは一つのプライベートアドレスのみだが、NAPTではグローバルアドレス側のポート番号をそのとき空いているものから自動的に割り当てるため、一つのグローバルアドレスで複数の機器が同時にインターネット側と通信することができる。
ただし、インターネット側の機器からはローカル側の機器がどのポート番号で接続するのか事前に知ることができないため、サーバなどインターネット側から接続を開始する用途には利用できない。この制限を緩和するため、利用者があらかじめ指定したIPアドレスとポート番号の組み合わせをインターネット側の特定のポートに固定的に対応付けるといった独自の機能を提供しているブロードバンドルータなどもある。
NAPTとIPマスカレード
本来、この方式の一般的な名称が「NAPT」、LinuxにおけるNAPTの実装の名前が「IP masquerade」(IPマスカレード)だったが、後者の名称が有名となり、Linux以外でもこの方式を表す一般名のように用いられる場合がある。また、ネットワーク機器の仕様表などに「NAT機能」として紹介されているものは、実際には本来の意味でのNAT(ポート変換なし)ではなく、NAPTであることがほとんどである。