番地の話——IP アドレスをどう読むか
レッスン2:番地の話——IP アドレスをどう読むか
このレッスンで学ぶこと
- IPv4 アドレスの表記方法と、32 ビットという成り立ちを説明できる
- IPv6 が登場した背景と、表記の読み方を理解する
- サブネットマスクと CIDR 表記の意味を読み解ける
- プライベートアドレスとグローバルアドレスの違いを区別できる
- NAT がなぜ必要かを説明できる
前回のレッスンでは、ネットワークが階層でできていることと、データがパケットという単位に分割されて運ばれることを学びました。今回からは、その旅路を具体的にたどっていきます。まず出発点になるのが「番地」の話です。手紙を送るときに宛先の住所が要るように、パケットにも宛先を示す番地が必要です。この番地こそが、IP アドレスです。
IP アドレスとは何か——通信の番地
IP アドレス(IP address)は、ネットワークにつながる機器 1 台 1 台に割り当てられる、通信上の番地です。IP は Internet Protocol の略で、レッスン 1 で学んだ TCP/IP のインターネット層が扱うプロトコルの名前でもあります。
パケットには、送り主の IP アドレスと、届け先の IP アドレスの両方が記されています。これは、手紙の封筒に差出人と宛先の両方の住所を書くのと同じ発想です。宛先が正しく書かれていなければ、パケットは目的地にたどり着けません。
IP アドレスには、現在広く使われている IPv4 と、その後継である IPv6 の 2 つの規格があります。まずは IPv4 から見ていきましょう。
IPv4——8 ビット × 4 の表記
IPv4(Internet Protocol version 4)は、32 ビットの数値で機器を識別する方式です。ビットとは、0 か 1 のどちらかを表す情報の最小単位です。32 個の 0 と 1 の並びだけでは人間には読みにくいため、8 ビットずつ 4 つの塊に区切り、それぞれを 10 進数に変換して、ピリオドでつなげて表記します。この表記を「ドット付き 10 進表記」と呼びます。
普段よく見かける「192.168.1.10」という表記は、実際には次のような 2 進数を、読みやすく変換したものです。
flowchart LR
A["11000000"] --> A2["192"]
B["10101000"] --> B2["168"]
C["00000001"] --> C2["1"]
D["00001010"] --> D2["10"]
8 ビットで表せる数の範囲は、0 から 255 までです。そのため、IPv4 アドレスの各部分は、必ず 0 から 255 のあいだの数値になります。「300.1.1.1」のような表記は、IPv4 アドレスとして成立しません。
🔰 初学者の方へ ビット・2 進数の計算を覚える必要はありません。ここで押さえておきたいのは、「IP アドレスは、実は 2 進数の数値を、人間が読みやすいように変換した表記である」という一点です。
IPv4 アドレスの総数
32 ビットで表現できる数値の組み合わせは、2 の 32 乗、約 43 億通りです。インターネットが登場した当初は、これで十分だと考えられていました。しかし、パソコン・スマートフォン・家電など、インターネットにつながる機器が爆発的に増えたことで、この約 43 億という数が足りなくなっていきました。
特別な用途のアドレス
IPv4 アドレスの中には、機器の識別以外の特別な用途に予約されている番地もあります。代表的なものが、ループバックアドレスと呼ばれる「127.0.0.1」です。これは「自分自身」を指す特別な番地で、パソコンやスマートフォンの中で、自分自身に向けて通信の動作を確認したいときに使われます。127.0.0.1 宛てに送られたパケットは、ネットワークの外へは一切出ていかず、その場で送信元の機器自身へと折り返されます。
もう 1 つの代表例が、ブロードキャストアドレスです。先ほどの CIDR 表記の説明で触れた「ネットワークの末尾のアドレス」がこれにあたり、そのネットワークに属するすべての機器へ、一斉に呼びかけるための特別な番地として予約されています。個々の機器に割り当てることはできません。
📝 補足 レッスン 7 で、つながらないときの切り分けの第一歩として、ループバックアドレスへの疎通確認が登場します。「自分自身に呼びかけて応答があるか」を確認することで、そもそも自分の機器の通信機能そのものが動いているかを見極められます。
IPv6——IPv4 の後継
アドレスが足りなくなる問題を解決するために策定されたのが、IPv6(Internet Protocol version 6)です。IPv6 は 128 ビットの数値で機器を識別します。
128 ビットが表現できる組み合わせの数は、2 の 128 乗という、天文学的な数になります。IPv4 の約 43 億通りとは比較にならないほど大きく、地球上のあらゆる機器に番地を割り当てても、枯渇する心配はほぼないとされています。
IPv6 の表記方法
IPv6 アドレスは、16 進数を使って表記されます。16 進数は、0 から 9 の数字に加えて、a から f までのアルファベットを使って数を表す方法です。IPv6 アドレスは、16 ビットずつ 8 個の塊に区切り、それぞれを 16 進数に変換して、コロンでつなげます。
2001:0db8:85a3:0000:0000:8a2e:0370:7334
このように、IPv6 アドレスは IPv4 に比べてかなり長くなります。読みやすくするための省略ルールもあり、「0000」のように 0 が連続する部分は、1 か所に限って「::」という記号で省略できます。先ほどの例は、次のように短くできます。
2001:0db8:85a3::8a2e:0370:7334
📝 補足 IPv4 と IPv6 は、現在は併存しています。多くの家庭用ルーターや通信事業者の設備は、両方の方式に対応しています。本コースでは、両方の存在と読み方を押さえておけば十分です。
サブネットマスクと CIDR 表記
IP アドレスを読むうえで、もう 1 つ欠かせないのが「サブネットマスク」と「CIDR 表記」です。
IP アドレスは、実は 1 つの数値の中に、2 つの異なる意味を持つ部分が同居しています。1 つは「どのネットワークに属しているか」を示すネットワーク部、もう 1 つは「そのネットワークの中のどの機器か」を示すホスト部です。この 2 つの境界線がどこにあるかを示すのが、サブネットマスクです。
サブネットマスクの読み方
サブネットマスクは、IP アドレスと同じ 32 ビットの数値で、ネットワーク部を 1 、ホスト部を 0 で表します。例えば「255.255.255.0」というサブネットマスクは、2 進数にすると次のようになります。
11111111.11111111.11111111.00000000
1 が並んでいる部分がネットワーク部、0 が並んでいる部分がホスト部です。この例では、先頭から 24 ビットがネットワーク部、残りの 8 ビットがホスト部ということになります。
CIDR 表記——スラッシュの後ろの数字
ネットワーク部のビット数を、もっと簡潔に表す方法が CIDR 表記(Classless Inter-Domain Routing)です。IP アドレスのあとにスラッシュを付けて、ネットワーク部のビット数を書きます。先ほどの「255.255.255.0」は、ネットワーク部が 24 ビットなので、CIDR 表記では「/24」と書きます。「192.168.1.10/24」という表記を見たら、「IP アドレスは 192.168.1.10 で、先頭 24 ビットがネットワーク部」と読み解けます。
| CIDR 表記 | サブネットマスク | ネットワーク部のビット数 | 1 つのネットワークに入る機器の目安 |
|---|---|---|---|
| /8 | 255.0.0.0 | 8 ビット | 約 1,600 万台 |
| /16 | 255.255.0.0 | 16 ビット | 約 6 万 5,000 台 |
| /24 | 255.255.255.0 | 24 ビット | 254 台 |
/24 の場合、ホスト部が 8 ビットあるので、2 の 8 乗、256 通りの組み合わせがあります。ただし、そのうち先頭(ネットワークアドレス)と末尾(ブロードキャストアドレス)は機器に割り当てられない特別な番地のため、実際に機器へ割り当てられるのは 254 台分になります。
同じ考え方で、「10.0.5.20/16」という表記を読んでみましょう。「/16」なので、先頭 16 ビットがネットワーク部です。10.0.5.20 を 8 ビットずつの塊に分けると、先頭の 2 つの塊「10.0」がネットワーク部、残りの 2 つの塊「5.20」がホスト部にあたります。ホスト部が 16 ビットあるので、1 つのネットワークの中に、理論上は約 6 万 5,000 台分の番地が収まる計算になります。オフィス全体をまとめて 1 つのネットワークとして扱いたいときなどに、こうした広いネットワーク部の割り当てが使われます。
💡 ポイント 「/24」という表記を見たら、「1 つの区画に 254 台くらいの機器が入る、家庭やオフィスの一室くらいの規模」とイメージすると覚えやすくなります。細かいネットワークの設計方法そのものは、情シス関連の入門コースの範囲です。本コースでは「読み方」だけを押さえます。
プライベートアドレスとグローバルアドレス
IP アドレスには、もう 1 つ重要な区別があります。プライベートアドレスとグローバルアドレスです。
グローバルアドレス(global address)は、インターネット上で世界に 1 つしかない、重複が許されない番地です。インターネットに直接公開されるサーバーなどには、このグローバルアドレスが割り当てられます。
プライベートアドレス(private address)は、家庭やオフィスなど、限られた範囲の中だけで使われる番地です。「192.168.」や「10.」で始まる番地を見たことがある方は多いはずです。これらはプライベートアドレスとして予約された範囲で、世界中の無数の家庭やオフィスで、まったく同じ番地が重複して使われています。
なぜこのような重複が許されるのでしょうか。理由は、プライベートアドレスがインターネットの外からは直接見えない、閉じた空間の中だけの番地だからです。自宅の中だけで使う内線番号のようなもので、隣の家の内線番号と数字が同じでも、混乱は起きません。
| 観点 | グローバルアドレス | プライベートアドレス |
|---|---|---|
| 一意性 | 世界で重複しない | 閉じた範囲の中だけで一意 |
| 使われる場所 | インターネットに直接公開される機器 | 家庭・オフィスなど閉じたネットワークの内部 |
| 割り当て | 通信事業者やクラウド事業者などから取得する | ルーターが自動的に割り振ることが多い |
⚠️ 注意 「192.168.1.10」という同じ番地が、あなたの自宅にも、隣の家にも、遠く離れた誰かの家にも存在します。これは異常なことではなく、プライベートアドレスの仕組みとして正常な状態です。
NAT——プライベートとグローバルをつなぐ仕組み
ここで、素朴な疑問が浮かびます。プライベートアドレスを使っている自宅の機器は、どうやってインターネットの向こう側にあるグローバルアドレスのサーバーと通信できるのでしょうか。
この橋渡しを担うのが、NAT(Network Address Translation:ネットワークアドレス変換)です。NAT は、プライベートアドレスとグローバルアドレスを相互に変換する仕組みで、多くの場合、家庭用ルーターやオフィスの境界にある機器が担当します。
flowchart LR
A["自宅の PC<br/>プライベートアドレス<br/>192.168.1.10"] --> B["ルーター<br/>NAT で変換"]
B --> C["インターネット<br/>グローバルアドレス<br/>203.0.113.5"]
自宅の PC がインターネット上のサーバーに通信するとき、パケットはまずルーターを通ります。ルーターは、PC のプライベートアドレスを、自分に割り当てられているグローバルアドレスに書き換えたうえで、インターネットへ送り出します。サーバーからの返信は、ルーターがグローバルアドレス宛てに受け取り、変換の記録をもとに、正しい PC のプライベートアドレスへ再び書き換えて渡します。
この仕組みのおかげで、1 つのグローバルアドレスを、家庭内の複数の機器で共有できます。プライベートアドレスの重複が許される理由も、この NAT の存在があってこそです。もし NAT がなければ、家庭内のすべての機器に、世界で 1 つしかないグローバルアドレスを個別に割り当てる必要が生まれ、限られたアドレス資源はあっという間に枯渇してしまいます。
📖 もっと詳しく 拠点や在宅から社内のネットワークにつなぐ仕組みもありますが、その設計や仕組みの詳細は、情シス関連の入門コースや情報セキュリティ関連の入門コースの範囲です。本コースでは、NAT が「プライベートとグローバルをつなぐ翻訳係」であることだけを押さえておけば十分です。
自分の IP アドレスを確認する方法
最後に、自分の IP アドレスを確認する方法を整理しておきましょう。ここで注意したいのは、「自分の IP アドレス」には、実は 2 つの見え方があるという点です。
1 つ目は、パソコンやスマートフォンの通信設定の画面に表示される番地です。これは、自宅やオフィスのルーターが割り振ったプライベートアドレスであることがほとんどです。設定アプリのネットワーク情報や、Wi-Fi の詳細画面から確認できます。
2 つ目は、インターネット上のサービスから見たときの番地です。先ほど説明した NAT によって、家庭内のすべての機器は、ルーターに割り当てられた 1 つのグローバルアドレスとして、外部からは見えます。「自分の IP アドレス」を調べるための Web サービスで表示される番地は、多くの場合このグローバルアドレスです。
この 2 つが異なる数値になっているのを見て、「どちらが本当の自分の IP アドレスなのか」と混乱する方がいます。答えは、どちらも正しい、です。プライベートアドレスは家庭内での番地、グローバルアドレスはインターネットから見た番地であり、NAT によって橋渡しされている、別の階層の情報だからです。
家庭内で複数の機器を使っている方は、試しにそれぞれの機器で通信設定の画面を開いてみてください。スマートフォンとパソコンで、プライベートアドレスの末尾の数字が違うはずです。一方、先ほどのグローバルアドレスを確認する Web サービスは、同じ家庭内のどの機器から調べても、同じ番地が表示されます。これは、家庭内では機器ごとに異なるプライベートアドレスが割り振られている一方で、インターネットから見ると、ルーターに割り当てられた 1 つのグローバルアドレスとして、家庭全体がひとまとまりに見えているためです。
⚠️ 注意 「グローバルアドレスがわかれば、そこから相手の自宅の場所を正確に特定できる」という誤解が広がっていますが、正確ではありません。グローバルアドレスからおおまかな地域や通信事業者を推定できることはあっても、個人の住所や氏名までは、通常の手段では特定できません。
まとめ
このレッスンでは、以下のことを学びました。
- IP アドレスは、ネットワークにつながる機器に割り当てられる通信上の番地
- IPv4 は 32 ビットの数値をドット付き 10 進表記で表す方式。約 43 億通りのアドレスがある
- IPv6 は 128 ビットの数値を 16 進数で表す方式。IPv4 の枯渇に対応するために策定された
- サブネットマスクは、IP アドレスのうちネットワーク部とホスト部の境界を示す
- CIDR 表記は、ネットワーク部のビット数をスラッシュのあとの数字で示す簡潔な書き方
- プライベートアドレスは閉じた範囲だけで一意、グローバルアドレスは世界で一意
- NAT は、プライベートアドレスとグローバルアドレスを相互に変換する橋渡し役
次のレッスンでは、番地とは別のもう 1 つの手がかりである「名前」——URL とドメイン、そして DNS による名前解決の仕組みに進みます。
確認クイズ
このレッスンの理解度をチェックしましょう。