プライベートIP ⇄ グローバルIP の可視化

家庭や会社の中で使うプライベートIPは、そのままではインターネットに出られません。ルーターが1つのグローバルIPに変換(NAT)して外と通信し、戻ってきた応答を元の端末に振り分けます。「進む」を押して、IPアドレスが書き換わる「動き」を追ってください。

パケットの 送信元 宛先

いま何が起きているか

NAT変換テーブル(ルーターが記録)

内側(プライベート)外側(グローバル)宛先サーバー

プライベートIPとグローバルIP

グローバルIPは、インターネット上で世界に1つだけの住所です。一方プライベートIPは、家庭や社内など閉じたネットワークの中だけで使う住所で、別の組織と重複しても構いません(あなたの家の 192.168.1.10 と、隣の家の 192.168.1.10 は別物です)。プライベートIPはインターネットにそのまま出られないため、ルーターでグローバルIPに変換して通信します。

プライベートIPの範囲(決まっている)

プライベートIPとして使ってよい範囲は、RFC1918で次のように決められています。

範囲クラスアドレス数
10.0.0.0 〜 10.255.255.255(10.0.0.0/8)クラスA約1,677万
172.16.0.0 〜 172.31.255.255(172.16.0.0/12)クラスB約104万
192.168.0.0 〜 192.168.255.255(192.168.0.0/16)クラスC約6.5万

家庭用ルーターでは 192.168.x.x がよく使われます。この範囲外のアドレス(例:8.8.8.8)はグローバルIPで、世界の誰かに割り当てられています。

NATとNAPT(IPマスカレード)

NAT(Network Address Translation)は、プライベートIPとグローバルIPを1対1で変換する仕組みです。ただしこれだと、グローバルIPの数だけしか同時に外と通信できません。そこで実際に広く使われるのがNAPT(ポート番号も使う変換。IPマスカレードとも呼ぶ)です。送信元のポート番号を端末ごとに変えることで、1つのグローバルIPを多数の端末で共有できます。上の可視化で、PC-AとPC-Bが同じ 203.0.113.5 を使いながら、ポート(60001 / 60002)で区別されているのがこれです。家庭のルーターはほぼNAPTで動いています。

なぜNATが必要になったか

IPv4のグローバルIPは約43億個しかなく、世界中の機器に配るには足りません(IPv4枯渇問題)。NAPTで「1つのグローバルIPを多数で共有」することで、限られたアドレスをやりくりしてきました。根本的な解決策としては、アドレス数が桁違いに多いIPv6への移行が進められています。

基本情報技術者試験ではこう出る

「プライベートIPアドレスの範囲はどれか」「プライベートIPをグローバルIPに変換する技術は(→NAT)」「1つのグローバルIPを複数端末で共有するためにポート番号も変換するのは(→NAPT/IPマスカレード)」が定番です。プライベートIPはインターネット上でルーティングされない点もよく問われます。サブネットの考え方は当サイトのCIDR計算機サブネット分割の可視化も参考にしてください。

よくある質問

Q. 自分のプライベートIPとグローバルIPを知るには?
A. プライベートIPは、Windowsは ipconfig、Linux/macは ip a で確認できます。グローバルIP(ルーターが使っている外向きの住所)は「確認くん」などのサイトで分かります。両者が違うことを確かめてみてください。

Q. 外から家のPCに直接アクセスできないのはなぜ?
A. NAT変換テーブルは「内側から外へ出た通信」をきっかけに作られるため、外から突然来た通信は「どの端末宛か」が分からず届きません(結果的に簡易的なファイアウォールにもなります)。外から特定の端末に通したい場合は「ポートフォワーディング」の設定が必要です。