グローバルIPとプライベートIP・NATの仕組み(完全解説)
IPアドレスには2種類あります。インターネット全体で一意でルーティングされる グローバルアドレスと、どの組織内でも自由に再利用できる プライベートアドレスです。この違いを理解すると、PCに設定されたIPとWebサイトから見えるIPがほぼ一致しない理由が分かります。
プライベートアドレスが存在する理由
IPv4アドレスは約43億個しかなく、何年も前に枯渇しました。すべてのスマホ・ノートPC・テレビ・電球が固有のグローバルアドレスを必要としていたら、インターネットは行き詰まっていたでしょう。代わりに RFC 1918 が、公衆インターネットに直接出さない限り誰でも内部利用できる3つの範囲を予約しました。
RFC 1918 のプライベート範囲
| 範囲 | CIDR | アドレス数 | 用途の目安 |
|---|---|---|---|
10.0.0.0 – 10.255.255.255 |
10.0.0.0/8 |
約1,670万 | 大企業・クラウド |
172.16.0.0 – 172.31.255.255 |
172.16.0.0/12 |
約100万 | 中規模 |
192.168.0.0 – 192.168.255.255 |
192.168.0.0/16 |
65,536 | 家庭・小規模オフィス |
これらはどこでも再利用されるため公衆インターネット上をルーティングできず、ルーターが NAT で変換します。
よく出会うその他の特殊範囲
| 範囲 | 名称 | 意味 |
|---|---|---|
127.0.0.0/8 |
ループバック | 自分自身(localhost) |
169.254.0.0/16 |
リンクローカル(APIPA) | DHCP失敗時に自動割当 |
100.64.0.0/10 |
CGNAT共有空間 | ルーターとISPの間(CGNAT) |
これらは 特殊アドレス で詳しく扱います。
NAT(ネットワークアドレス変換)
家庭のルーターは、LAN内の多数の端末(プライベートIP)を、プロバイダから割り当てられた1つの グローバルIP に変換します。
[PC 192.168.0.10]─┐
[スマホ 192.168.0.11]─┼─[ルーター / NAT]──→ [グローバルIP 203.0.113.5] ──→ インターネット
[TV 192.168.0.12]─┘
これを多数の端末で同時に成立させる仕組みが ポート変換(NAPT/PAT)です。ルーターは外向き接続ごとに送信元IPと送信元ポートを書き換え、その対応をテーブルに記憶するため、応答を正しい端末へ返せます。
| 内部 | → インターネット上では |
|---|---|
192.168.0.10:51000 |
203.0.113.5:40001 |
192.168.0.11:51000 |
203.0.113.5:40002 |
だからWebサイトに見えるのはルーターのグローバルIP — 当サイトの トップページ に表示されるのと同じアドレス — であって、PCのプライベートIPではありません。
NATが壊すもの(と回避策)
接続は内側から始める必要があるため、NATは静かに**受信(インバウンド)**接続を遮断します。これは次に影響します。
- NAT背後でのサーバ/ゲームのホスティング — 外部ポートを内部端末へ対応づけるポート転送が必要。
- 二重NAT(ISPルーターの背後に自分のルーター) — 両方でポート転送が必要。
- CGNAT — ISP自身が1つのグローバルIPを多数の顧客で共有する場合、ポート転送は不可能。CGNAT解説 を参照。
- VPNやプロキシは世界から見えるグローバルIPを変えます。NAT・プロキシ・VPN を参照。
IPv6はNATをほぼ不要にする
IPv6のアドレス空間は極めて大きく、各端末が固有のグローバルアドレスを持てるため、NATの必要性が無くなります(アクセス制御はファイアウォールが担当)。長い移行期間、多くのネットワークはIPv4とIPv6を併用します。IPv6とIPv4の違い を参照。
NAT背後かどうかを確認する
2つのアドレスを比べます。ローカルIPがRFC 1918の範囲なのに、トップページ が別のグローバルIPを表示するなら、あなたはNAT背後です(ほぼ全員がそうです)。
# Linux: ローカル(プライベート)IP
ip -4 addr show
# Windows: ローカル(プライベート)IP
Get-NetIPAddress -AddressFamily IPv4
メモ: ルーターのWAN側IPが
100.64.0.0/10なら、ISPはCGNATを使っています。グローバルIPを他の加入者と共有しており、リレーや有償の固定IPなしでは受信サービスをホストできません。