■ プライベート・アドレス
さてネット君。
インターネットでのIPアドレスはICANNとNICがネットワーク番号を割り振っているのだったな。
えぇ。
それで、インターネットでのユニークな番号を管理してるんですよね。
つまり、だ。
インターネットへの接続を考えないネットワークならば、ICANNのクラスフル・アドレッシングに従う必要はないわけだよな。
そうなりますね。
クラスDだろうが、Eだろうが使いたい放題。
ネットワーク番号のビット数も適当でおっけ〜。この世はまさにシャングリ・ラ、いやっほぅっ!
博士。いやっほぅっは勘弁してください。
いやっほぅっ!
いやマジで。
なんだ、ノリが悪いなネット君。
そんなことでは立派な関西芸人にはなれんぞ。
それはまた悲しいような嬉しいような微妙なところですね。
ともかく、インターネットに接続しないなら好き勝手にアドレスを割り振ってよい、という考え自体は、論理アドレスという概念からは間違ってない。
ですよね。
だが、IPアドレスというものから考えると間違いだ。
何故なら、ネットワーク機器はクラスフルアドレッシングを前提に作られていることが多いからだ。
へへぇ。さすがデファクトスタンダード。
なので、ネット君が「いやっほぅ。IPアドレス割り振っちゃうぜ。」と。
「こっちは224.0.0.1。こっちは224.0.0.2」と意気揚々と割り振ったとしても。
何でそんなハイテンションでIPアドレスを割り振らなきゃならないんです?
ネットワーキング・デバイス、特にルータは、マルチキャスト用アドレスと認識して、ホストだとは考えてくれない可能性が高い。
ははぁ。
なので結局クラスフルアドレッシングに従う必要がある、ということですね。
うむ。
この場合、問題なのはインターネットに接続しないLAN、もしくはWANや、直接接続しない内部ネットワークだ。
直接接続しない内部ネットワーク?
うむ、NATを使ってインターネットと接続するLANのことだ。
NATについては先で話す。
このような場合、プライベートIPアドレスを使う。
前回の最後で出てきた、予約済みアドレスの1つですね。
うむ。
以下のアドレスがプライベートIPアドレスだ。
第1オクテット | 第2オクテット | 第3オクテット | 第4オクテット |
10 | ホスト番号 | ||
172 | 16〜31 | ホスト番号 | |
192 | 168 | 0〜255 | ホスト番号 |
[Table23-01:プライベートアドレス]
クラスAの10.0.0.0、クラスBの172.16.0.0〜172.31.0.0、クラスCの192.168.0.0〜192.168.255.0の合計273個のネットワークですか?
うむ。これらのアドレスは、プライベート用に予約されているのでNICは割り振らない。
なので、内部LANではこれらのアドレスを使う。
ははぁ。
これらのプライベートIPアドレスは、インターネットに接続しない環境で使われるアドレスで、万が一インターネットと接続できる状況になっても、ルータがインターネット上に流さないように止める。
まさしく、プライベートなためだけに使用可能なんですね。
そうだ。
これの利点は、例えばインターネットに接続しないから、とプライベートIPアドレスではなく「1.0.0.0」ネットワークを内部LANで使ってたとする。
はい。
手違いで、インターネットと接続してしまった場合、どうなる?
どうなるって。
NICから「1.0.0.0」を割り当てられているネットワークがあった場合、かぶってしまいますよね。
そうだ。
そうなったら、もう大変だ。NICから「1.0.0.0」を割り当てられているネットワークは、インターネット上でそのアドレスを使う権利を持っている。それを侵害したわけだ。
そうなりますね。
ユニークでなくなって、「1.0.0.0」宛のパケットが届かなくなるかもしれませんね。
うむ、それだ。そうなると、天文学的な賠償金を払うように言われても仕方がない事態が起こりえるかもしれない。
だが、プライベートIPアドレスを使えばそのようなことは起こり得ない。
ルータが止めちゃうからですね。
なるほど。
■ 小さなネットワーク
さて、話はちょっと変わる。
ネット君。論理アドレスは、階層型だというのは覚えているな。
えぇ。そうでしたね。
それを前提として、だ。
IPアドレスのクラスAを考えてみよう。クラスAは、ホスト番号は24ビットある。つまり、16,777,214台のホストを所有できる。
224−2台で、約1700万台ですよね。
ネット君がクラスAアドレスを持つ超大規模ネットワークの管理者になったとする。
そうだな、800万台のホストを持つネットワークだ。これにホスト番号を割り振るのがネットワーク管理者たる君の仕事だ。
800万台に割り振るんですか。大変そうだ。
さて、ネット君。
どうやって割り振るかね?
どうやって、って。
そりゃ1から順番に割り振るのが簡単かな。
何を言ってるのかわかってるのか?
人口800万人の大都市の、それぞれの住所を1番から連番で割り振ります、といってるのと同じ意味だぞ。
はぅっ。
「ネットさんの住所は、A市569万3478番地です。」
無茶言うな。
うううぅぅ。
ヒントをやろう。
IPアドレス、つまり論理アドレスは階層型だ。
う?
…。大きなネットワークを小さな幾つかのネットワークに分割する!
そうだ。
「○番ネットワーク内、▲番ネットワークの◇番ホスト」ということが論理アドレスでは可能だ。階層型だからな。
そうだ、そうでしたね。
相変わらず揮発性抜群だな。
ともかく、ネットワークを幾つかの小さなネットワークに分割し、管理しやすくすることができる。
この小さなネットワークのことをサブネットワークという。
さぶねっとわーく。
■ サブネットワーク
IPアドレスは、ネットワーク番号とホスト番号から成り立っていたが。
これをサブネットワークに分割するため、以下のように変更する。
[Figure23-01:サブネットワーク]
ネットワーク番号はNICから割り振られた番号なので、勝手に変更はできない。
ホスト番号のビットを、サブネット番号とホスト番号にする。
ホスト番号の部分を削って、サブネット番号の部分を作りだすわけですね。
そうだ。
それにより、「○番ネットワーク内、▲番ネットワークの◇番ホスト」という形にするわけだ。
ははぁ。
例を出そう。クラスBネットワークの、172.16.0.0がある。
これのホスト番号16ビットを、サブネット番号6ビット、ホスト番号10ビットにする。この状態で、サブネットワーク1番の、1番ホストのIPアドレスは以下のようになる。
[Figure23-02:サブネットワーク・2]
172.16.4.1ですか?
なんか、4番サブネットの1番ホスト、に見えてしまいますね。
それは10進数の表記法に惑わされているだけだ。
あくまでもIPアドレスはビットなのだ。
ははぁ。
オクテットごとにわけて10進数で書くけれども、それとIPアドレスの中身は関係ないってことですか。
そうだ。オクテットごとにドットをつけて表記するのは、人間が見やすくするためだけだ。
考え方としては、また電話番号を使おう。市外局番はネットワーク番号だったな。
前の例ではそうでしたね。
町の規模によって、市外局番に使う桁数が変わりましたよね。
0123-45-6789で言えば。
「0123」がネットワーク番号。「456789」がホスト番号だったわけだ。これでは管理がしづらいので、市内局番というものを使う。
例でいえば、「45」ですね。
そうだ。「0123」局の、「45」局内、「6789」番という意味になる。ただ、電話番号の加入者番号「6789」は必ず4桁だが、IPアドレスは違う。
場合によっては、0123-4567-89、にしてもよいし、0123-4-56789でもいい。
「0123」局の「4567」局内「89」番、「0123」局の「4」局内「56789」番、ってことですね。
では、市内局番の部分、サブネット番号の部分に何ビット使うかってのはどうやって決めるんですか?
適当に。
…、はい?
言い方が悪かったか?
任意に。
そんないい加減でいいんですか?
前も話したとおり、ホスト番号はそのネットワークの管理者が決定する。サブネット番号の部分も元はホスト番号の部分から流用してるだけだ。
ICANNやNICに関係なく、そのネットワークの管理者が勝手に決めることができる。
それはそうですけど。
それにサブネットはそのネットワーク内部でのみ有効なのだ。
ネットワークの外部から見れば、例えばネットワークAのサブネット1もサブネット2も、ネットワークAなのだから、いちいち中まで知らなくてもよいわけだ。
ん〜っと。つまり、0123-45-6789でも、0123-98-7654でも、外の局から見れば同じ0123局に接続するわけだから、0123-45局と0123-98局も区別しないってことですか。
そうだ。宛先が45局か、98局かという事は、0123局に届いた後で考えればいいわけだからな。これは先の経路選択のところで話そう。
まぁ、適当なのも問題なので、サブネットに使用するビットの数は一応の基準が存在する。
よかった。
まず、下の表を見てもらおう。
192.168.100.0のクラスCネットワークを例としている。
第1 オクテット | 第2 オクテット | 第3 オクテット | 第4オクテット | サブネットの数 | 各サブネットの ホストの数 | |
サブネット | ホスト | |||||
11000000 | 10101000 | 01100100 | - | 00000000 | 0個 | 254個 |
0 | 0000000 | 2個 | 126個 | |||
00 | 000000 | 4個 | 62個 | |||
000 | 00000 | 8個 | 30個 | |||
0000 | 0000 | 16個 | 14個 | |||
00000 | 000 | 32個 | 6個 | |||
000000 | 00 | 64個 | 2個 | |||
0000000 | 0 | 128個 | 0個 | |||
00000000 | - | 256個 | 0個 |
[Table23-02:クラスCアドレスのサブネット化] ▼
見てわかるとおり、サブネットの数を多くすると、各サブネットのホスト数は減少する。
ホストがないサブネットは意味がないので、ホストには最低2ビット残す。
あれ?
なんで、サブネットに7ビットの時に、ホスト1ビット残っているのにホスト数0なんです?
前回いったことを思い出せ。
「各ネットワークで保有できるホスト数は、ホスト番号がnビットだとすると、2n−2個だ。」
えっと、全部のビットが0のネットワークアドレスと、全部が1のブロードキャストアドレスが、ホストの数から引かれるから2n−2個だったですよね。
そうだ、そのルールはサブネットワークだからといって、例外にはしない。
つまり、ホスト番号が全部0の場合はそのサブネットワーク自体を現すネットワークアドレスになる。
ははぁ。
つまりホスト部が1ビットだと「0」と「1」しかないわけですけど、「0」はネットワークアドレス、「1」はブロードキャストアドレスになってしまうわけですね。
そういうことだ。
つまりサブネットに必要なビット数は、ホストには最低2ビット残した上で、必要なサブネットの数、各サブネットに必要なホストの数を考慮して決定する。
なるほど。
■ サブネットマスク
どのネットワークに所属しているかという問題は、経路選択の際に非常に重要だ。
そうなんですか?
うむ。ルータはネットワークアドレスを元に経路を決定する。
つまり、IPアドレスのどこまでがネットワークを現すか、というのはインターネットワークで死活問題なのだよ。
でも、クラスフルアドレッシングなら、最初の1〜4ビットでクラスがわかりますよね。
クラスがわかれば、どこまでがネットワーク番号なのか簡単にわかりますよね。
サブネットワークはどうする? 確かに、クラスがわかればどこまでがネットワーク番号かわかる。
だが、どこまでがサブネットワーク番号か、はわからない。
そうか。
サブネットワークはネットワーク管理者が任意に決めれられるんでしたね。
うむ。なのでサブネットを使用する場合はサブネットマスクをIPアドレスと同時に表記する必要がある。
さぶねっとますく?
どこまでがサブネット番号かを示すものだ。
IPアドレスと同じ32ビットで、同じ表記法をする。まず下図をみてもらおう。
[Figure23-03:サブネットマスク]
下の「255.255.252.0」がサブネットマスクだ。
つまり、ネットワーク番号・サブネット番号のビットをすべて1、ホスト番号を0にしたものだ。
ははぁ。
これにより、どこまでがネットワークを現すかがわかる。
簡単に言えば、サブネットマスクのビットが1の部分がネットワークだ。
確かにそうなりますね。
でも、なんでこんな形なんです?
それは、ルーティングの時に話そう。
というわけで、今回はこれでお終いだ。
了解。
3分間ネットワーキングでした〜♪
- シャングリ・ラ
-
[Shangri-La]
J. Hiltonの「失われた地平線」[Lost Horizon]に書かれた理想郷。
- NAT
-
[Network Address Translation]
アドレス変換。
プライベートIPアドレスをグローバルIPアドレスに変換する。
詳しくは第46回で。
- プライベートIPアドレス
-
[private IP address]
逆にNICから割り当てられたインターネットで使えるアドレスは、グローバルIPアドレス[global IP address]という。
- サブネットワーク
-
[subnetwork]
もしくは単にサブネット[subnet]と言う。
- 表の意味
-
1ビットで0と1の2種類。2ビットで00、01、10、11の4種類表すことができる。
よって、nビットの時2nの種類を作れる。つまりその数だけ番号を作成できる。
- サブネットマスク
-
[subnet mask]
SMと略すことも多い。
もしくは単にマスクという。
- ネット君の今日のポイント
-
- インターネットに接続しないLAN・WANではプライベートIPアドレスを使う。
- プライベートIPアドレスはインターネット上に流れない。
- ネットワークを小さなネットワークに区切る。この小さなネットワークをサブネットワークという。
- サブネットワークに区切った場合、IPアドレスはネットワーク番号、サブネット番号、ホスト番号の3つの情報を持つ。
- サブネット番号は、ホスト番号のビットを借りて作成する。
- ホスト番号のビットは最低2ビット必要である。
- サブネットの数、ホストの数を考えた上でサブネット番号のビット数を決定する。
- サブネットにわけた場合、サブネットマスクも必要。
- サブネットマスクはIPアドレスと同じ形で、どこまでがネットワーク番号・サブネットワーク番号かをしめす。
- サブネットマスクのビットが1の部分がットワーク番号・サブネットワーク番号。0の部分がホスト番号。