CIDR(サイダー)
アドレスクラスの概念を気にしないよ
IPアドレスと一緒にサブネットマスクも伝えるよ
「Classless Inter-Domain Routing」の略だよ
簡単に書くよ
CIDR(サイダー)とは
「クラス?何それ?美味しいの?」なIPアドレス
(インターネットをするときにコンピュータに割り当てられる住所)をあれこれする仕組みのこと。
もう少し小難しく書くと
アドレスクラス
(すべてのIPアドレスはクラスA~Eのどれかに分類されちゃうよ~な考え方)の概念を気にしないことで、IPアドレスの割り当てや経路選択などの自由度を上げる仕組み
です。
詳しく書くよ
サクっと一言で説明すると
IPアドレスの話からアドレスクラスの概念を取っ払った仕組み
が「CIDR」です。
「アドレスクラスの概念を取っ払った仕組み」とか言われても、よく分からないでしょうけどね。
今の時点では気にしないで読み進めてください。
先に、理解が前提となる用語の説明をしておきます。
まず、IPアドレスは「ネットワーク上の住所」です。
インターネットっぽい通信において、送信先を特定するときとかに使う情報です。
「198.51.100.2」のような形式になっています。
IPアドレスは
どのネットワークの、どのコンピュータですよ~
を表現しています。
「どのネットワークですよ~」が書いてある部分は「ネットワーク部」と言います。
「どのコンピュータですよ~」が書いてある部分は「ホスト部」です。
IPアドレスの どこから どこまでが「どのネットワークですよ~」な情報で、どこから どこまでが「どのコンピュータですよ~」な情報かは「サブネットマスク」と呼ばれるものを見ると分かるようになっています。
サブネットマスクの書式はIPアドレスと同じです。
例えば
255.255.255.0
のような見た目になっています。
サブネットマスク「255.255.255.0」は10進数で書かれています。
実は このままだと分かりにくいので、2進数に直してみましょう。
サブネットマスク「255.255.255.0」を2進数に直すと
11111111.11111111.11111111.00000000
に なります。
パッと見で
1.「1」が並んでいる部分
2.「0」が並んでいる部分
がありますよね。
この2つのうち
1.「1」が並んでいる部分
が「どのネットワークですよ~」を表しています。
ネットワーク部を示す情報です。
2.「0」が並んでいる部分
は「どのコンピュータですよ~」を表しています。
ホスト部を示す情報です。
それだけの話です。
簡単ですね。
例えば「192.168.0.2」というIPアドレスがあったとします。
このIPアドレスを2進数に直すと
11000000.10101000.00000000.00000010
に なります。
このIPアドレスと先程のサブネットマスクを並べてみましょう。
11000000.10101000.00000000.00000010
11111111.11111111.11111111.00000000
IPアドレスとサブネットマスクを、じ~っと見比べてください。
サブネットマスクの「1」になっている部分と対応するところが、IPアドレスの「どのネットワークですよ~」を示している部分です。
IPアドレス「192.168.0.2」の場合は
11000000.10101000.00000000.00000010
の中の
11000000.10101000.00000000
の部分になります。
残りの部分、サブネットマスクの「0」の部分に対応するところが、IPアドレスの「どのコンピュータですよ~」を示している部分です。
IPアドレス「192.168.0.2」の場合は
11000000.10101000.00000000.00000010
の中の
00000010
の部分になります。
サブネットマスクが「255.255.255.0」の場合、IPアドレス「192.168.0.2」は「11000000.10101000.00000000ネットワークの00000010コンピュータですよ~」という意味になるわけです。
アドレスクラスは「すべてのIPアドレスはクラスA~Eのどれかに分類されちゃうよ~」な考え方です。
アドレスクラスの考え方に従った場合、IPアドレスが分かると、そのIPアドレスがどのクラスに属するかが分かります。
どのクラスに属するかが分かると使うべきサブネットマスクの値が分かります。
IPアドレスを見れば、どこから どこまでが「どのネットワークですよ~」な情報で、どこから どこまでが「どのコンピュータですよ~」な情報かが分かるようになっているのです。
便利ですね。
以上を踏まえて、本題に入ります。
とっても便利なアドレスクラスの考え方ですが、実はちょっとだけ弱点が ありました。
それは「もったいない病」です。
イメージとしては……そうですね。
美味しそうなチョコレートがあったとします。
どれくらいの量かというと、ざっと4,294,967,296個(約43億個)です。
全部食べたら鼻血ブーですね。
この約43億個のチョコレートは単品売りはされていません。
それぞれ袋に入って売られています。
大きい袋には16,777,216個(約1,677万個)のチョコレートが入っています。
中くらいの大きさの袋には65,536個(約6万5千個)入っています。
小さい袋には256個入っています。
さて、ピヨ太君は無性にチョコレートが食べたくなりました。
どれくらいの量食べたいかというと、5万個くらいです。
ピヨ太君は、どの袋を買えば良いですかね?
大は小を兼ねると言います。
5万個食べたいのであれば中くらいの大きさの袋(約6万5千個入り)を買うべきでしょう。
ピヨ太君は5万個のチョコを食べるのに6万5千個入りの袋を買いました。
ということは約6万5千個から5万個を引いた約1万5千個は無駄になってしまいます。
もったいなっ!
約1万5千個、もったいなっ!
これがアドレスクラスの弱点です。
あらかじめ決まった数が袋詰めになっているので、欲しい数ピッタリは買えないのです。
このチョコレートの話を踏まえて、実際のIPアドレスを見てみましょう。
詳細の説明は省きますが、アドレスクラスの考え方に従うと、クラスAのネットワークには、1つのネットワークにつき16,777,216個のIPアドレスが割り当てられます。
つまり、クラスAのIPアドレスは、同じネットワーク内で16,777,216台(から特殊なIPアドレスを除外して16,777,214台)のコンピュータを接続できるのです。
同じように、クラスBは65,536台(から特殊なIPアドレスを除外して65,534台)、クラスCは256台(から特殊なIPアドレスを除外して254台)のコンピュータを接続できます。
これをまとめると以下の表のようになります。
| クラス | 接続可能コンピュータ数 |
|---|---|
| クラスA | 16,777,214台 |
| クラスB | 65,534台 |
| クラスC | 256台 |
さて、ここでピヨピヨカンパニーに登場してもらいましょう。

ピヨピヨカンパニーは新規事業の一環として、ISP事業に乗り出しました。
少し話が逸れますが「ISP」は「あなたの使っている回線とインターネットの世界をくっつけてくれる業者さん」ね。
今回は「インターネットをするときのIPアドレスを貸してくれる業者さん」だと思ってください。
インターネットをするときはIPアドレスが必要ですが、それは、みなさんが個人個人でどこかから買っているわけでは ありません。
ISPさんがIPアドレスを(まとめて)買って、それを、みなさんに貸してくれているのです。
話を戻します。
ピヨピヨカンパニーではISP事業を始めました。
お客さまの見込み数は、今のところ10,000人くらいです。
そうすると1つのネットワークに256個しかないクラスCでは足りませんよね。
65,536個あるクラスBの割り当てが欲しいです。
仮にピヨピヨカンパニーの頑張りでクラスBがもらえたとしましょう。
65,536個のIPアドレスがもらえたので65,536台(厳密には65,534台)接続できますが、実際に使うのは10,000台分くらいです。
残りの約5万5千個はあるだけで使いません。
この余った分をどうしましょう。
他の人にあげちゃいますか?
とはいえ同じネットワークに他の人がいるのはセキュリティ的に心配ですよね。
仕方がないので残りの5万5千個は見なかったことにしました。
もったいないですね。
ただでさえIPアドレスが枯渇するとか言われているのに、もったいないことこの上ないです。
この「もったいない」を解消するために登場したのが「CIDR(サイダー)」です。

「Classless Inter-Domain Routing(クラスレス・インタードメイン・ルーティング)」の略で「CIDR」ね。
気が向いたら、覚えてあげてください。

※「Classless Inter-Domain Routing」を何となく日本語にすると「アドレスクラスの概念がない、領域間の経路制御」となります。[詳細]
CIDRではアドレスクラスの考え方にこだわりません。
サブネットマスクの値を調整することによって、1つのネットワークと見なすIPアドレスの範囲を(ある程度)自由に決めちゃいます。
先程のチョコレートの話で言えば、あらかじめ用意された大・中・小の袋は使いません。

自分たちで好きな大きさの袋を用意して、そこに好きなだけ(といってもある程度の制約はありますが)チョコレートを詰め込むのです。

そうすれば、持っていくチョコレートの量を、ある程度は調整できますよね。
無駄になるチョコレートの数が減ります。
IPアドレスの世界でも同じことをします。
チョコレートの話で出てきた袋の大きさはサブネットマスクだと思ってください。
サブネットマスクの値を調整することで、同じネットワークと見なすIPアドレスの数が変わります。
例えば、サブネットマスクが2進数表記で
11111111.11111111.11111111.00000000
だったとしましょう。
IPアドレスは、これもやっぱり2進数表記で
xxxxxxxx.xxxxxxxx.xxxxxxxx.00000000
※「x」は0か1
から
xxxxxxxx.xxxxxxxx.xxxxxxxx.11111111
までのIPアドレスが同じネットワークになります。
サブネットマスクの1の部分が「どのネットワークですよ~」な情報になるので
xxxxxxxx.xxxxxxxx.xxxxxxxx.
の部分は共通です。
この場合、同じネットワークと見なされるIPアドレスの個数は2の8乗で256個になります。
それでは、サブネットマスクが
11111111.11111111.11110000.00000000
の場合はどうでしょう。
この場合は
xxxxxxxx.xxxxxxxx.xxxx0000.00000000
から
xxxxxxxx.xxxxxxxx.xxxx1111.11111111
までのIPアドレスが同じネットワークになります。
今度は
xxxxxxxx.xxxxxxxx.xxxx
の部分が「どのネットワークですよ~」の情報で、共通です。
同じネットワークと見なされるIPアドレスの個数は2の12乗で4096個になります。
サブネットマスクの値が変わったことによって、同じネットワークに所属するIPアドレスの範囲も変わりましたね。
このように任意のサブネットマスク値を使うことによってネットワークの大きさを変えられるようにしたのがCIDRです。
……あれ?
なんかサブネット化の説明でも同じような話が出てきましたね。
そうです。
同じです。
CIDRは、インターネット全体を1つのネットワークと捉えて、それをサブネット化していると考えて かまいません。

CIDRではサブネットマスクの値を好きに決められます。
そうすることによって、同じネットワークとして扱うIPアドレスの個数を調整できます。
その代わり……と言っては語弊がありますが、IPアドレスを見てもサブネットマスクの値は分かりません。
どこから どこまでが「どのネットワークですよ~」な情報で、どこから どこまでが「どのコンピュータですよ~」な情報か、IPアドレスから判断できないのです。
そこでCIDRではサブネットマスクの値も一緒に伝えてやります。
CIDRでは、IPアドレスを
198.51.100.1/24
のような形式で書くのです(「CIDR表記」と言います)。
このときの「/24」の部分がサブネットマスクを表しています。
この例では「左から24桁目までが『どのネットワークですよ~』な情報だよ」の意味になります。
これはサブネットマスクとして
2進数表記:11111111.11111111.11111111.00000000
10進数表記:255.255.255.0
を使うよ~ということです。
1が左から24個並んでいますよね。
このサブネットマスクを使うことによって
2進数表記:11000110.00110011.01100100.00000000
10進数表記:198.51.100.0
から
2進数表記:11000110.00110011.01100100.11111111
10進数表記:198.51.100.255
までのIPアドレスが同じネットワークとして扱われます。
2進数表記で
11000110.00110011.01100100.
の部分が「どのネットワークですよ~」を表しています。
これが
198.51.100.1/20
になると、どうなるでしょう。
この場合は「/20」の部分がサブネットマスクを表していて「左から20桁目までが『どのネットワークですよ~』な情報だよ」の意味になります。
これはサブネットマスクとして
2進数表記:11111111.11111111.11110000.00000000
10進数表記:255.255.240.0
を使うよ~ということです。
1が左から20個並んでいますよね。
そうすると
2進数表記:11000110.00110011.01100000.00000000
10進数表記:198.51.96.0
から
2進数表記:11000110.00110011.01101111.11111111
10進数表記:198.51.111.255
までのIPアドレスが同じネットワークとして扱われます。
2進数表記で
11000110.00110011.0110
の部分が「どのネットワークですよ~」を表している部分です。
うん、やっぱり考え方はサブネット化と同じですね。
長くなったので最後にもう一度まとめておきます。
IPアドレスは元々、アドレスクラスの考え方に従ってクラスに分けて管理されていました。
これを「クラスフルアドレッシング」と言います。
クラスフルアドレッシングでは、IPアドレスを見ればクラスが分かります。
クラスが分かれば使うべきサブネットマスクの値が分かります。
つまり、IPアドレスを見れば「どのネットワークの、どのコンピュータですよ~」というのがすぐに判断できるようになっていました。
これはとても便利だったのですが、弱点もありました。
それはIPアドレスに無駄が出てくることです。
その仕組み上、使わないのに割り当てざるを得ないIPアドレスが出てくるのです。
これを改善するために「もうさ、クラスの考え方はヤメにしてさ。もっと自由に羽ばたこうぜ!」という考え方が出てきました。
「わざわざクラス分けしないで、任意の大きさのネットワークを作れるようにしましょうよ」です。
これを「クラスレスアドレッシング」と言います。
このクラスレスアドレッシングを実現するための仕組みがCIDRです。
CIDRでは、サブネットマスクを調整することで任意の大きさのネットワークを作れます。
インターネット全体を1つのネットワークと捉えて、それをサブネット化するイメージです。
その代わり、IPアドレスを見てもサブネットマスクの値が分かりません。
そのため「198.51.100.1/24」のように、IPアドレスと一緒にサブネットマスクも伝えてあげる必要があります。
暗黙の了解をなくして、代わりに自由度を上げたってことでしょうかね。
サブネットマスクを調整できるようにすることで、ネットワークの区切りを柔軟にしています。
一言でまとめるよ
まぁ「CIDR」って単語が出てきたら「アドレスクラス
(すべてのIPアドレスはクラスA~Eのどれかに分類されちゃうよ~な考え方)の概念がないやり方なんだな~」と お考えください。
おまけ
■訳してみるよ
「CIDR(サイダー)」は「Classless Inter-Domain Routing(クラスレス・インタードメイン・ルーティング)」の略です。
「classless(クラスレス)」は「クラスがない」的な意味です。
「inter(インター)」という接頭辞が付くと「相互の」とか「~の間」の意味になります。
「domain(ドメイン)」の意味は「領域」とか「区域」とか「領土」とかです。
「routing(ルーティング)」は「route(ルート)」+「ing」です。
「route(ルート)」の意味は「道」とか「道筋」とか「経路」とかです。
「routing」で「道案内」的な意味になります。
何となく くっつけると
クラスがない領域間の道案内
となります。






