CGNAT(キャリアグレードNAT)は、IPv4アドレスの枯渇対策として多くのプロバイダーが導入している技術です。通常利用では問題ありませんが、ポート開放や自宅サーバー運用、P2P通信などで大きな制限が発生します。この記事ではCGNATの仕組みや問題点、外部アクセスの具体的な対策方法まで詳しく解説します。
CGNAT(キャリアグレードNAT)は、インターネットプロバイダーが複数のユーザーに同じパブリックIPv4アドレスを割り当てるための技術です。ウェブ閲覧や動画視聴、アプリ利用などではほとんど違いを感じませんが、ポート開放や自宅サーバー運用、オンラインゲーム、NASへの外部アクセスが必要な場面で問題が発生します。
CGNAT(キャリアグレードNAT)は、家庭用ルーターで使われるNATと仕組みは似ていますが、個々の家庭ではなく、インターネットプロバイダーのネットワーク全体で多数の契約者をまとめて一つのパブリックIPv4アドレスに変換します。
通常、家庭内ネットワークではPCやスマートフォン、ゲーム機が192.168.1.xのようなローカルIPを持ち、ルーターがそれらの通信をまとめて1つの外部IPv4アドレスでインターネットに接続します。外部から見ると、家庭内の全デバイスが1つのIPで活動しているように見えます。
標準的なNATの場合、外部のIPv4アドレスはユーザーのルーターに直接割り当てられます。CGNATを利用している場合、ルーターはプロバイダーの内部ネットワークアドレス(例:100.64.0.0~100.127.255.255)を受け取り、さらにプロバイダーのネットワーク機器でパブリックIPv4に変換されます。つまり、2段階のNATが行われるのが特徴です。
このため、ユーザーは自宅ルーターのNAT設定はコントロールできますが、プロバイダー側のNAT(CGNAT)の設定にはアクセスできません。
その主な理由はIPv4アドレスの枯渇です。IPv4では約43億個のアドレスしか存在せず、すでに多くが割り当て済みです。新たな契約者ごとにパブリックIPv4を提供するのが難しくなり、CGNATでアドレスを共有することで対応しています。
プロバイダーは、IPアドレスだけでなく、TCP/UDPのポート番号も使って各ユーザーの通信を区別します。こうして1つのパブリックアドレスで多数のユーザーをさばきます。
根本的な解決策はIPv6対応ですが、IPv4は依然として広く利用されているため、多くのプロバイダーがCGNATを導入しています。
家庭のPCからインターネット上のサイトへアクセスする流れを例に説明します。
CGNATでは、ルーターが受け取るWAN IPがパブリックではなく、100.64.0.0/10などの内部アドレスになります。インターネット側から見えるIPは、プロバイダー側CGNATゲートウェイのものです。
このため、発信側の通信は問題ありませんが、インターネット側から家庭内への着信通信は、どのユーザーに届けるかをプロバイダーの機器が把握できないため、成立しません。
パブリック(ホワイト)IPアドレスは、インターネットから直接アクセスできるアドレスです。これが自宅ルーターに割り当てられていれば、ポート開放やサーバー公開が可能です。
一方、グレーIP(内部アドレス)は、主にプロバイダーのネットワークや家庭内でのみ利用され、インターネットから直接アクセスできません。CGNATでは100.64.0.0/10のアドレス帯がこれにあたります。
WANインターフェースが例えば100.72.18.5などのアドレスになっている場合、それは直接インターネットからはアクセスできません。さらに、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16などのプライベートアドレスが割り当てられている場合も、CGNATや別のNATが使われている可能性があります。
詳しい仕組みについては、NATの仕組みとオンラインゲーム・P2Pでの問題について解説した記事もご覧ください。
CGNATが最大の問題となるのは、外部から家庭内への着信通信が必要な場合です。例えば、ポート開放、P2P通信、自宅サーバー公開、マルチプレイゲームでのホスト機能などです。
パブリックIPv4が直接ルーターに割り当てられていれば、ルーターでポートフォワーディングを設定するだけで、外部からの着信通信を特定の端末へ転送できます(例:Minecraftサーバーの25565ポート、Webサーバーの443ポートなど)。
しかしCGNATでは、ルーターの外にさらにプロバイダーのNATがあるため、ルーターまで外部からのパケットが届きません。ユーザーが操作できるのはルーターまでで、その先(プロバイダーのNAT)はコントロールできません。
そのため、ポート開放の設定が正しくても、外部からは常に「ポートが閉じている」と判定されてしまいます。
最近のオンラインゲームは中央サーバー方式を採用しているため、CGNAT環境でも基本的なプレイは可能です。しかし、P2P方式や古いゲーム、ボイスチャットなど端末同士の直接通信が必要な場合、Strict NATやNAT Type 3などの警告が表示され、接続が不安定になったり、一部機能が制限されたりします。
多くのサービスはNATトラバーサルやリレーサーバーを利用して接続補助をしていますが、両方の端末がCGNAT環境にある場合、P2P通信そのものができないこともあります。
NASや自宅のMinecraftサーバー、Webサーバー、監視カメラ、リモートデスクトップなどを外部から利用したい場合、CGNATは大きな障害となります。内部ネットワークでの通信は問題ありませんが、外部からのアクセス要求はプロバイダーのCGNATで遮断されます。
特にNASの自宅設置時にこの問題が顕著です。詳細は「自宅NASサーバーとクラウドの比較・導入ガイド」も参考にしてください。
なお、CGNAT環境でも工夫次第で外部アクセスは可能です(後述)。
特別なツールは不要です。自宅ルーターの管理画面で「WAN IP」や「インターネットIP」を確認し、IP確認サイトで表示される外部IPと比較します。
例えば、WAN IPが100.72.18.5、外部IPが198.51.100.42であれば、プロバイダー機器でIPが変換されています。
さらに、100.64.0.0/10の範囲や、10.0.0.0/8などのプライベートアドレスがWANに割り当てられていれば、CGNATの可能性が高まります。
最も確実なのは、プロバイダーのサポートに「パブリックIPv4が利用できるか、CGNATか」を問い合わせることです。
CGNATはユーザー側で解除できません。外部から自宅ネットワークへアクセスしたい場合は、以下のいずれかの方法を検討しましょう。
最もシンプルな解決策は、プロバイダーに「パブリックIPv4」または「グローバルIP」「ホワイトIP」「外部IP」などの名称で追加契約することです。これによりCGNATが解除され、ルーターのWAN IPがそのままインターネットからアクセス可能になります。
常時同じIPでアクセスしたい場合は「固定IP(スタティックIP)」が便利です。動的IPの場合でも、DDNS(ダイナミックDNS)で対応できます。
契約時は、実際にパブリックIPv4が割り当てられるか必ず確認しましょう。
IPv6では膨大なアドレスが確保できるため、CGNATのような仕組みが不要です。プロバイダーがIPv6を提供していれば、グローバルに到達可能なアドレスが自宅機器に割り当てられます。
ただし、IPv6でもファイアウォール設定で明示的に許可しない限り、外部からの通信はブロックされています。また、接続元もIPv6対応が必要です。
IPv4とIPv6の違いについては、「IPv4とIPv6の違いと導入ポイント」で詳しく解説しています。
パブリックIPが取得できない場合は、VPSなど外部サーバーを経由したトンネル接続を活用できます。家庭内サーバーから外部VPSへ常時接続することで、VPSのパブリックIPを経由して自宅ネットワークへアクセスできるようになります。
リバーストンネルや、外部アクセス用のクラウドサービスも同様の仕組みで利用可能です。NASやゲームサーバー、IoTデバイス、リモートデスクトップなどで有効です。
プロバイダーからパブリックIPv4がリーズナブルに取得できる場合はそれが最も簡単ですが、IPv6対応や外部サーバー経由など、環境に合った方法を選びましょう。
CGNATは、インターネットプロバイダーがIPv4アドレス不足を解決するために導入した技術です。普段のインターネット利用には影響が少ないものの、ポート開放や自宅サーバー運用、P2P通信や一部オンラインゲームでは大きな制約となります。
自宅でNASやサーバー公開を検討している場合は、まずルーターのWAN IPと外部IPを比較し、CGNAT環境かどうかを確認してみましょう。CGNATが原因の場合、パブリックIPv4の取得、IPv6の活用、VPS経由のトンネル接続などが現実的な解決策となります。
CGNATはネットワークの不具合ではなく、限られたIPv4資源を効率的に使うための妥協策です。外部からの接続が必要な場合は、自分の環境に合った方法で対応しましょう。