パブリックとプライベートのアドレス空間
パブリックIP
192.0.2.10
グローバルに一意、どこからでもルーティング可能
プライベート範囲
公開インターネットではルーティング不可
パブリックIPとプライベートIPの違いとは
ネットワーク設定を確認すると、192.168.1.5 と表示されているかもしれません。一方、IPアドレスを表示するサイトを開くと、まったく別のアドレスが表示されます。どちらも間違いではありません。実際に、異なるスコープで動作する2つのアドレスを持っているのです。
パブリックとプライベートのアドレス空間
パブリックIP
192.0.2.10
グローバルに一意、どこからでもルーティング可能
プライベート範囲
公開インターネットではルーティング不可
2つのスコープ
| プライベートIP | パブリックIP | |
|---|---|---|
| スコープ | ローカルネットワーク内のみ | インターネット全体 |
| 一意か | ネットワーク内でのみ | 世界で一意 |
| 割り当て元 | ルーター(DHCP) | ISPまたはホスティングプロバイダー |
| オンラインでルーティング可能か | 不可。ルーターが破棄する | 可能 |
| 例 | 192.168.1.5 | 93.184.216.34 |
| 誰に見えるか | ネットワーク上のデバイス | 訪問するすべてのサイト |
重要なポイント
プライベートアドレスは、何百万もの別々のネットワークで同時に再利用されており、インターネット上にはルーティングされません。パブリックアドレスは世界で一意で、インターネットが実際にあなたに到達するために使うものです。
予約されているプライベートの範囲
RFC 1918は、プライベート用として3つのIPv4ブロックを確保しています。誰でも内部で使用でき、公開インターネット上のルーターはそれらを転送しません。
| 範囲 | アドレス数 | 主な利用先 |
|---|---|---|
10.0.0.0/8 | 1,670万 | 大規模な企業ネットワーク、クラウドのVPC |
172.16.0.0/12 | 100万 | 中規模のネットワーク、Dockerのデフォルト |
192.168.0.0/16 | 65,536 | 家庭や小規模オフィスのルーター |
ほかにも、関連する用途のために予約されている範囲がいくつかあり、これらも正当なパブリックの答えとして現れることはありません。
127.0.0.0/8— ループバック。127.0.0.1は常に自分自身のマシンです。169.254.0.0/16— リンクローカル。DHCPが失敗したときに自己割り当てされます。これが見えたら、たいていはデバイスがルーターに到達できなかったことを意味します。100.64.0.0/10— キャリアグレードNAT。すべての顧客にパブリックアドレスを提供できないISPが使います。
NAT:プライベートアドレスがそれでもインターネットに届く仕組み
プライベートアドレスがルーティングできないなら、192.168.1.5 にあるノートPCは、どうやってウェブサイトを読み込むのでしょうか。答えは、ルーターが行うネットワークアドレス変換(NAT)です。
デバイスがパケットを送る
送信元は
192.168.1.5、宛先はウェブサイトのパブリックアドレスです。ルーターが送信元を書き換える
プライベートの送信元を、自身のパブリックアドレスに置き換え、その入れ替えを、ポート番号を付けた変換テーブルに記録します。
ウェブサイトがルーターに返信する
サーバーから見れば、通信相手はルーターのパブリックアドレスです。ノートPCのことは何も知りません。
ルーターが逆に変換する
テーブルを参照して、そのポートがどの内部デバイスのものかを調べ、宛先を書き換えて、
192.168.1.5に転送します。
家庭内のすべてのデバイスが、ウェブサイトからは同じアドレスに見えるのはこのためです。また、IPアドレスが識別するのは人ではなく接続である理由でもあります。
2つのアドレスを調べる
プライベートアドレス
ipconfigip addr show
# or, on macOS:
ifconfig | grep "inet "パブリックアドレス
これは自分のネットワークの内側からは分かりません。外側にある何かに尋ねる必要があり、「自分のIPは何か」を調べるサービスがそれを行っています。ターミナルからは、次のようにします。
curl ifconfig.meドメインがプライベートアドレスに解決されてはいけない理由
公開ドメインが 10.0.0.5 や 127.0.0.1 に解決されるのは、設定ミスか意図的なもののどちらかです。いずれにしても、ユーザーが指定したドメインを名前解決するサービスにとっては問題です。
攻撃は単純です。自分が管理するドメインを 169.254.169.254 に向け、サーバー側でURLを取得するサービスに送信すると、そのサービスが、あなたの代わりに自身のクラウドメタデータを読み取ります。DNSリバインディングという変種では、検証のチェックと実際の取得の間に、レコードを変化させます。
防御策は、送信されたホスト名ではなく、名前解決されたアドレスを検証することです。ここで行われているのがまさにそれであり、内部に解決されるドメインが、その詳細を漏らさずに単に解決不能と報告される理由です。仕組みのページでは、検証のチェーン全体を扱っています。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
このテーマの無料ツール
よくある質問
関連記事
並行して使われる2つのアドレス体系
IPv4
192.0.2.10
32ビット、約43億のアドレス、枯渇
IPv6
2606:4700::6810:84e5
128ビット、340澗のアドレス
IPアドレスとは?IPv4とIPv6をやさしく解説
インターネット上のあらゆるウェブサイト、サーバー、スマートフォンの背後にある数値のラベルです。その意味と読み方、互換性のない2つのバージョンがある理由を解説します。
解決したアドレスの背後にある実体
共有IP
1アドレスに多数のサイト、Hostヘッダーで判別
専用IP
自分専用。逆引きDNSを管理できる
CDNエッジ
オリジンではない。エッジが接続を終端
共有IPと専用IPアドレス:どちらが必要?
正直な答えは、ほとんどのウェブサイトに専用IPは不要です。本当に重要になるのはどんなときか、そしてうたわれているメリットのうち、どれが誤解なのかを解説します。
再帰的なDNS検索を1ホップずつ見る
ブラウザー
example.comを要求
リゾルバー
ISP / 1.1.1.1
ルート + TLD
.comの管理元は?
権威サーバー
正式な回答
この連鎖の各ホップはそれ自体がDNS検索で、結果はその後キャッシュされます
ウェブサイトのIPアドレスを調べる5つの方法
オンラインツール、ping、nslookup、dig、開発者ツール。ドメインを解決する5つの方法を、Windows、macOS、Linux向けの正確なコマンドとともに紹介します。