Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

PAT(パット)とは | 意味や読み方など丁寧でわかりやすい用語解説

PAT(パット)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

ポートアドレス変換 (ポートアドレスヘンカン)

英語表記

PAT (パット)

用語解説

PATは、複数のプライベートIPアドレスを持つコンピュータが、たった一つのグローバルIPアドレスを共有してインターネットに接続するための技術である。これはNetwork Address Translation (NAT) の一種であり、特に「多対一」のIPアドレス変換を可能にする。IPアドレスの枯渇問題への対応策として広く利用されており、IPマスカレードやNAPT (Network Address Port Translation) とも呼ばれる。多くの家庭用ルータや企業のネットワークで標準的に使用され、限られたグローバルIPアドレス資源を有効活用しつつ、内部ネットワークのセキュリティ向上にも寄与する重要な技術だ。

現代のインターネットは、IPアドレスという識別子を使って通信相手を特定する。特にIPv4アドレスは、約43億個しか存在せず、インターネットが普及するにつれてその枯渇が深刻な問題となった。組織内部のネットワークでは、RFC1918で定められたプライベートIPアドレス(例えば192.168.x.x, 10.x.x.xなど)が自由に利用できるが、これらのアドレスはインターネット上ではルーティングされず、直接通信することができない。そこで、プライベートIPアドレスを持つ内部のコンピュータがインターネットに接続する際には、グローバルIPアドレスへの変換が必要になる。

NATは、このIPアドレス変換を行う技術であり、基本的なNATは1つのプライベートIPアドレスを1つのグローバルIPアドレスに変換する「1対1」の変換だ。しかし、これでは内部に多数のコンピュータがあれば、それと同数のグローバルIPアドレスが必要となり、グローバルIPアドレスの節約にはほとんど貢献しない。

PATは、このNATの限界を克服するために開発された。PATは、複数のプライベートIPアドレスを持つコンピュータからの通信を、たった1つのグローバルIPアドレスと、それぞれ異なる「ポート番号」を組み合わせて変換する。ポート番号は、コンピュータ上で動作するアプリケーションやサービスを識別するための番号であり、1から65535までの範囲がある。PATルータは、内部ネットワークからインターネットへの通信が発生した際、送信元IPアドレス(プライベートIPアドレス)と送信元ポート番号を、ルータ自身のグローバルIPアドレスと、ルータが空いている中から割り当てたポート番号に変換する。

例えば、内部ネットワークにPC1 (プライベートIPアドレス 192.168.1.10、送信元ポート番号 10000) とPC2 (プライベートIPアドレス 192.168.1.20、送信元ポート番号 10001) があり、どちらも同じPATルータのグローバルIPアドレス (例えば203.0.113.1) を使ってインターネット上のWebサーバー (例えば198.51.100.1、ポート番号 80) にアクセスする場合を考える。

PC1がWebサーバーにアクセスする際、PATルータはPC1からのパケットの送信元IPアドレス (192.168.1.10) と送信元ポート番号 (10000) を、ルータのグローバルIPアドレス (203.0.113.1) と、例えば20000番のポート番号に変換する。この変換情報 (192.168.1.10:10000 → 203.0.113.1:20000) は、PATルータ内部の変換テーブルに記録される。

同様に、PC2がWebサーバーにアクセスする際、PATルータはPC2からのパケットの送信元IPアドレス (192.168.1.20) と送信元ポート番号 (10001) を、ルータのグローバルIPアドレス (203.0.113.1) と、例えば20001番のポート番号に変換し、この情報も変換テーブルに記録する。

インターネット上のWebサーバーから応答パケットが返ってきた場合、その宛先IPアドレスはルータのグローバルIPアドレス (203.0.113.1) と、変換後のポート番号 (例えば20000番) になる。PATルータはこの宛先IPアドレスとポート番号を見て、変換テーブルから対応する内部のIPアドレスとポート番号 (192.168.1.10:10000) を探し出し、パケットをPC1に転送する。PC2への応答も同様の仕組みで処理される。

このように、PATは単一のグローバルIPアドレスを、内部の複数のコンピュータで「多対一」で共有することを可能にする。理論上はポート番号の枯渇が問題になる可能性もあるが、通常1つのグローバルIPアドレスで数万から数百万の異なる同時セッションを処理できるため、一般的な利用環境ではポート番号が不足することはほとんどない。

PATの最大のメリットは、グローバルIPアドレスの有効活用にある。これにより、限られたIPv4アドレス資源で、インターネットに接続できるデバイスの数を大幅に増やすことができた。また、内部ネットワークのIPアドレスを外部から隠蔽するため、セキュリティの向上にも貢献する。外部からはPATルータのグローバルIPアドレスしか見えず、内部ネットワークの構造を把握されにくくなるためだ。

一方で、デメリットも存在する。外部から内部の特定のコンピュータに直接アクセスするようなサービス(例えば、Webサーバーやゲームサーバーを公開する場合など)を運用する際は、PATルータで「ポートフォワーディング」や「静的NAPT」といった特別な設定が必要になる。これは、特定のポート番号宛ての通信を、内部の特定のIPアドレスとポート番号に転送する設定であり、設定が複雑になる場合がある。また、PATルータでIPアドレスとポート番号の変換処理が行われるため、わずかながら通信速度に影響を与えるオーバーヘッドが生じる可能性がある。しかし、現代のルータの性能では、これが実用上問題になることは稀だ。さらに、セキュリティログなどを解析する際、複数の内部ホストからの通信がすべて同じグローバルIPアドレスとして記録されるため、特定の内部ホストからの通信を特定するのが難しくなる場合もある。しかし、IPv4アドレスの枯渇という根本的な問題を解決するために、PATは現在もインターネットインフラを支える不可欠な技術であり続けている。

関連コンテンツ