コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB
IPアドレス (IPv4 / IPv6)
43 億では、世界中の機器に配りきれなかった
IP アドレスは、ネットワーク上の機器を 1 つに特定するための番号です。手紙の宛先と同じで、これがないとデータの届け先を書けません。
いま主流の IPv4 は 32 ビットの番号で、192.0.2.15 のように 8 ビットずつ 4 つに区切って書きます。取りうる値は 2 の 32 乗、およそ 43 億通りです。設計された 1980 年代には十分すぎる数でしたが、1 人が何台も持ち歩き、家電まで通信する時代には足りません。
そこで用意されたのが IPv6 です。128 ビットあるので、総数は 10 の 38 乗という桁になります。2001:db8::1 のように 16 進数を並べて書き、連続する 0 は省略できます。
| IPv4 | IPv6 | |
|---|---|---|
| 長さ | 32 ビット | 128 ビット |
| 総数 | 約 43 億 | 事実上尽きない |
| 書き方 | 10 進を 4 つ | 16 進を 8 つ |
足りないまま、なぜ今日も IPv4 で暮らせているのか
IPv6 は 1998 年に規格が固まりましたが、置き換えは今も途中です。IPv4 のまま何とかする方法が先に見つかってしまったからです。
世界中で一意である必要があるのは、外に出ていく分だけです。家や会社の中だけで通じればよい番号は、他所と重複していてもかまいません。そこで内部専用として次の範囲が予約されました。
- 10.0.0.0 から 10.255.255.255
- 172.16.0.0 から 172.31.255.255
- 192.168.0.0 から 192.168.255.255
家の機器が 192.168 で始まる番号を持っているのは、この取り決めのためです。この番号のままでは外へ出られないので、家の出口で外でも通じる番号に書き換えられてから送り出されます。世界で一意な番号をグローバル IP、内部専用の番号をプライベート IP と呼びます。
では、いつ IPv6 に切り替わるのでしょうか。実際には「切り替わる」というより、両方を同時に持つ機器が増えていく形で進んでいます。いまのスマホは多くの場合、IPv4 と IPv6 の両方の番号を持っていて、相手が対応していれば IPv6 で、していなければ IPv4 で話します。だから利用者は移行に気づきません。作る側として注意が要るのは、設定ファイルに IP アドレスを直接書くときです。片方しか想定していない書き方をすると、片側の経路だけが静かに落ちます。
開発で毎日打つ 2 つの番号
手元の開発で一番よく打つのは 127.0.0.1 です。これは「自分自身」を指す特別な番号で、localhost という名前でも同じ場所を指します。手元で起動したサーバーに手元のブラウザからつなぐとき、通信は外へ出ずに自分の中で折り返します。
もう 1 つ、サーバーの起動設定で 0.0.0.0 を見かけます。こちらは「自分が持っているすべての口で待ち受ける」という意味です。127.0.0.1 で待ち受けると自分からしかつながらず、0.0.0.0 にすると同じネットワークの他の機器からも届くようになります。「手元では動くのにスマホから見えない」という詰まり方の定番の原因なので、違いを押さえておいてください。
なお、家のスマホや PC の番号は固定ではありません。Wi-Fi につなぎ直すたびに自動で割り当て直されるのが普通です。サーバーのように常に同じ番号でいてほしい機器だけ、明示的に固定します。
復習ミニクイズ
次のうち、プライベート IP アドレスはどれですか