ネットワークアドレス変換(NAT)
NAT(ネットワークアドレス変換)とは?
NAT(Network Address Translation:ネットワークアドレス変換)とは、IPパケットのヘッダーに含まれるIPアドレスを別のIPアドレスに変換する技術です。一般に、組織内で使用されるプライベートIPアドレスを、外部との通信に使用するグローバルIPアドレスへ変換するために利用されます。
プライベートIPアドレスは、IPv4アドレスの枯渇問題に対処するために導入されました。IPv4では、アドレスは32ビットで表現され、約40億個の一意のアドレスを使用できます。しかし、インターネットの急速な拡大に伴い、IPアドレスを必要とするデバイスの数が飛躍的に増加し、利用可能なアドレスがいずれ枯渇することが懸念されるようになりました。そこで、グローバルIPアドレスを節約するため、組織ごとにグローバルIPアドレスを割り当て、組織内ではプライベートIPアドレスを使用する方式が採用されました。これにより、RFC 1918で定義されたプライベートIPアドレスが導入されました。RFC 1918では、組織の規模に応じて次のアドレス範囲が規定されています。
- クラスA(大規模組織向け):10.0.0.0~10.255.255.255
- クラスB(中規模組織):172.16.0.0~172.31.255.255
- クラスC(小規模組織):192.168.0.0~192.168.255.255
通常、組織の内部ネットワーク内のデバイスには、これらの範囲のプライベートIPアドレスが割り当てられます。
しかし、プライベートIPアドレスを持つデバイスがインターネット経由で外部サーバーにアクセスする場合、プライベートIPアドレスは複数の組織で共有されているため、サーバーはアクセス元のデバイスを特定できません。そのため、インターネット通信を行うには、プライベートIPアドレスを組織固有のグローバルIPアドレスに変換する必要があります。ここでNATが役立ちます。
NATには、内部ネットワークを外部ネットワークから隠蔽するという副次的な効果もあり、内部ネットワークを分離することで一定のセキュリティを確保できます。ただし、NATはネットワークのセグメンテーションに役立つものの、NATだけではセキュリティ脅威に包括的に対処できません。多くの場合、エンドツーエンドのトンネリング技術やプロトコルも必要です。
NATの制約の1つは、アドレスを1対1で変換するため、複数のデバイスからの同時通信には適していないことです。この問題に対処するため、NATはポート番号も変換できるように拡張され、NAPT(Network Address Port Translation)が生まれました。NAPTはIPマスカレードとも呼ばれます。現在では、「NAT」という用語がNATとNAPTの両方を指す場合も少なくありません。
