CGNとは
CGNは「Carrier Grade NAT」の略で、 通信事業者レベルで実施する、より大規模なNAT(後述)のことです。 LSN (Large Scale NAT)とも呼ばれます。 NATは、Network Address Translatorの略で、 一般にはグローバルIPアドレス(パブリックIPアドレス)と、 プライベートIPアドレスの相互変換を行います(実際には単純なNATではなく、 IPアドレスに加えてポート番号の変換も行うNAPT (Network Address and Port Translation)が多く用いられています)。
一般家庭向けのインターネット接続サービスでは、各回線ごとに一つのグローバルなIPv4アドレスを割り当て、 家庭内ではプライベートIPアドレスを使うのが一般的です。 これは、IPv4アドレスに約43億アドレスといった上限があるため、グローバルIPアドレスの利用数を節約するためです。 そして、グローバルIPアドレスは自由に相互通信できますが、 プライベートIPアドレスはLANなどで用いるためのものであり、 インターネット上で使うことが禁止されています。 そこで必要になるのがNATであり、家庭用のネットワークなどでは、 いわゆるブロードバンドルーターがその機能を担っています。
原理的には同じものですが、CGNではIPv4アドレス在庫の枯渇を背景に集約をさらに推し進め、 複数の回線で一つのグローバルなIPv4アドレスを共有します。 サービスプロバイダー内部のネットワークにて、 グローバルなIPアドレスに代わりRFC6888*1で要件が定義され、 RFC6890*2で定義されたShared Address Space「100.64.0.0/10」を使うことにより、 より一層グローバルIPアドレスを節約できます。
ただ、NATそのものは前述のように既に広く普及している技術なのですが、 CGNとしてアドレスの集約を進めると、
- 各ユーザー当たりで利用できるポート数、つまり利用できるTCPセッション数が減り、同時並行的な通信に制約を受ける
- サービスプロバイダーで1回、各家庭で1回と、複数回のNATを行うことにより、NATを超える必要がある通信に悪影響が出る可能性がある
- IPアドレスの共有化により、フィルタリングやジオロケーション、ユーザーの特定等が困難になる
などの問題点があります。
CGNは、IPv4アドレスの節約に役立つ技術ではありますが、 IPv4アドレスの在庫枯渇を根本的に解決する技術ではありません。 前述のような問題点への対策も含め、IPv6アドレスへの対応を並行して進めることが必要です。
*1 RFC6888 "Common Requirements for Carrier-Grade NATs (CGNs)"
https://tools.ietf.org/html/rfc6888
*2 RFC6890 "Special-Purpose IP Address Registries"
https://tools.ietf.org/html/rfc6890