CGNAT(キャリアグレードNAT)
つながらないP2Pや通信障害時のIP特定が難しい理由が分かります。ISP規模で数千端末が1つのグローバルIPを共有する仕組みと限界を原理から整理します。
- 1.CGNATはISP側にもう1段NATを重ね、多数の契約者回線を少数のグローバルIPプールに集約してIPv4枯渇を回避する。
- 2.ポートは有限資源であり、端末あたりの割当方式(動的プール型・EIM/PBA)次第でP2P到達性やログの特定精度が変わる。
- 3.二重NATは外部からの着信を原理的に塞ぐため、真の解決はIPv6化であり、CGNATは延命策に過ぎない。
CGNATが解決する問題
IPv4アドレスは中央在庫が事実上枯渇し、ISPが新規契約者ごとにグローバルIPを1つ払い出すことができなくなりました。従来の家庭用NAT(NATの基礎)は1家庭内の複数端末を1グローバルIPに集約しますが、それでも「1回線に1グローバルIP」が前提です。**CGNAT(Carrier-Grade NAT、キャリアグレードNAT。Large Scale NATとも呼ぶ)**は、この前提自体を崩します。ISPの設備内にもう1段NATを重ね、数千〜数万契約者の回線を、ごく少数の共有グローバルIPプールへ変換するのです。
結果として経路は二重化します。
端末(192.168.x.x) → 宅内ルータNAT → 100.64.x.x(CGN共有アドレス空間)
→ ISPのCGNAT → 203.0.113.10(グローバルIP、複数契約者で共有)
→ インターネット
宅内ルータとISPのCGNATの間で使う中間アドレス帯には、私設網(192.168.0.0/16等)との衝突を避けるため、CGNAT専用に予約された 100.64.0.0/10(RFC 6598)が使われます。
ポート割当方式:有限資源をどう配るか
グローバルIPが共有される以上、各契約者を識別するのは実質「ポート番号」だけになります。1つのIPアドレスが持つポートは65536個(正確には送信元ポートとして使える範囲はさらに狭い)であり、これを多数の契約者で分け合う設計が必要です。主な方式は次の通りです。
| 方式 | 仕組み | 利点 | 欠点 |
|---|---|---|---|
| 動的プール型(Dynamic) | 接続ごとに空きポートを都度払い出す | ポート利用効率が高い | 契約者ごとの担当ポート範囲が流動的でログ突合が難しい |
| EIM(Endpoint-Independent Mapping) | 同一内部端末+ポートには宛先が変わっても同じ外部ポートを再利用 | P2P/ホールパンチングと相性が良い | 外部から見た端末の識別が一定化し追跡しやすい半面セキュリティ上の議論もある |
| ポートレンジ固定割当(PBA: Port Block Allocation) | 契約者ごとに固定のポートブロックを事前割当 | ログはIP+ポートレンジで契約者を一意特定でき法執行対応が容易 | 同時接続数がブロック幅で頭打ちになりやすい |
NATの挙動はIETFの用語で「Endpoint-Independent Mapping(EIM)」「Endpoint-Dependent Mapping」、フィルタリングも同様に独立/依存で分類されます。対称NAT(宛先ごとに毎回別マッピング)はP2P直結を最も破壊するタイプで、CGNATが対称的挙動を取るとNATトラバーサルとホールパンチングの手法が軒並み効きにくくなります。
複数階層NATが生む課題
P2Pとリアルタイム通信
二重・三重のNATを越えて2端末が直接接続するには、双方が同じ5タプルマッピングを予測・共有できる必要があります。CGNATが対称的なポート割当(宛先ごとに異なる外部ポート)を採用すると、STUNで自分のグローバルアドレスを知っても、それは通信相手ごとに変わってしまい予測できません。この場合WebRTCのICE/STUN/TURNはホールパンチングを諦め、TURNによる中継に頼らざるを得なくなり、遅延とサーバーコストが増えます。
ロギングとポート枯渇
契約者ごとの同時接続数はポート割当方式に依存して有限です。動的プール型で上限に達すると新規接続がREFUSEDまたはタイムアウトになり、利用者からは「サイトによってつながらない」という原因不明の障害に見えます。加えて、動的割当はログの粒度を膨張させます。攻撃検知や法執行機関からの照会に応じるには、本来「送信元IP」だけで足りたログが「送信元IP+送信元ポート+タイムスタンプ」の組でしか契約者を一意特定できなくなり、ISPは全接続のポートマッピングログを長期保存する義務を負うことになります(RFC 6302などがログ保持の推奨事項を示す)。この負荷を避けるためにPBAで契約者ごとのポート範囲を固定する運用が広がっています。
着信の到達不能
CGNAT配下では外部からの着信を受け付けるポートフォワーディングが原理的に成立しません。ISP側のマッピングは契約者が個別に制御できる対象ではなく、複数契約者が同じグローバルIPを共有するため「そのIPのそのポートを常に自分に向ける」設定自体が意味を持たないからです。自宅サーバー公開やUPnP経由のポート開放は、CGNAT配下では機能しなくなります。
宅内ルータのWAN側IPが 100.64.0.0/10 や、外部から見た自分のグローバルIPと一致しない場合、その回線はCGNAT配下です。この診断はポートフォワーディングやP2P不調のトラブルシューティングで最初に確認すべき項目です。
IPv6移行との関係
CGNATはIPv4アドレス枯渇に対する延命策であり、根本解決ではありません。IPv6が全面的に普及すれば、各端末がグローバルに一意なアドレスを持てるためNAT自体が不要になります。しかし現実にはIPv4専用サーバーとIPv6専用クライアントが何年も共存するため、ISPは「クライアントにはIPv6を優先的に払い出しつつ、IPv4互換性のためCGNATも併設する」というデュアルスタック的な移行戦略を取ります。この過渡期の設計思想はIPv6移行技術のNAT64/464XLATとも関係が深く、CGNATと変換技術は「IPv4資源を極小化しながら旧サービスとの互換性を保つ」という同じ動機から生まれています。
サービス品質への影響
CGNATは単なるアドレス変換に留まらず、性能面でも無視できない影響を与えます。ISP設備を経由する分だけ処理段が増え、大量契約者のフローを1台の変換装置に集約するため、その装置自体がスループットの天井やレイテンシ増の要因になり得ます。また、リアルタイム性の高いゲームやVoIPでは、対称的マッピングによるホールパンチング失敗がTURN中継を強制し、遅延とジッタが増加します。さらにIPレピュテーションの問題として、同一グローバルIPを共有する契約者の一部が悪用(スパム、攻撃)に関与すると、そのIPごとブロックされ、無関係な同居契約者まで巻き添えでサービス拒否を受けることがあります。
「CGNATが必要な理由は」→ グローバルIP払い出し不能を、ISP側でのIP共有によって回避するため。「PBAが法執行対応で有利な理由は」→ 契約者ごとに固定ポート範囲を持つためIP単独でなくポート情報無しでも範囲特定がしやすい。「CGNAT配下でP2Pが弱い理由は」→ 対称的マッピングだとマッピングが宛先ごとに変わり予測できずホールパンチングが成立しない。「根本解決は」→ IPv6化によるNAT自体の不要化。
まとめ
CGNATは、IPv4アドレス枯渇という制約下でISPが選んだ「もう1段のNAT」による延命策です。ポート割当方式(動的プール・EIM・PBA)の選択が、P2P到達性・ログの特定精度・同時接続数上限という異なる軸のトレードオフを決めます。二重NATは着信の到達不能という原理的な壁を持ち、リアルタイム通信の品質や法執行対応の負荷にも波及します。CGNATを設備として理解することは、根本的な解決策がIPv6への移行以外にないことを裏付けています。
ネットワーク Article
CGNAT(キャリアグレードNAT)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
CGNAT
比較で見る軸
難易度: advanced / カテゴリ: ネットワーク / タグ数: 6
導入後に効く点
ポートは有限資源であり、端末あたりの割当方式(動的プール型・EIM/PBA)次第でP2P到達性やログの特定精度が変わる。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ネットワーク
- タグ数
- 6
判断チェックリスト
- 自社の用途が「CGNAT / NAT」に近いか確認する。
- 強みである「CGNATはISP側にもう1段NATを重ね、多数の契約者回線を少数のグローバルIPプールに集約してIPv4枯渇を回避する。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。