こちらの記事では、CIDRとCIDR表記について解説します。
CIDR(Classless Inter Domain Routing)は、別名をクラスレスアドレッシングとも呼び、現在主流で使用されているIPアドレスの割り当て方式です。また、CIDR表記はIPアドレスにサブネットマスクの情報を簡略化して付随する表記方法です。それぞれの概要などについて詳しく説明します。
こちらの記事は「IPアドレス」と「サブネット・サブネットマスク」に関する知識が必要です。それぞれの記事は以下をご覧ください。
https://envader.plus/article/51
https://envader.plus/article/53
CIDRの概要
初期のTCP/IPのIPアドレス(IPv4)は、IPアドレスの枯渇問題を抱えていました。この問題の対策として、IPアドレスの割り当てをクラスフルアドレッシングという仕組みが導入されました。
しかし、クラスフルアドレッシングには「ユーザにとって丁度良いアドレスクラスが存在しない」という問題が存在しました。この問題を解消するために、割り当てられたネットワークをさらに小さい単位で分ける「サブネット」という概念が誕生しました。
従来のクラスフルアドレッシングのクラス(クラスA、クラスB、クラスC)をより小さいサブネットに分割することをサブネット化と表現することもありますが、現在では、クラスの定義に関わらず単にネットワークをより小さな複数のネットワークに分割することもサブネット化すると表現します。
つまり、サブネット化を行うために、IPアドレスにサブネットマスクの情報を付随して自由にネットワークの範囲を指定する仕組みのことを「CIDR(クラスレスアドレッシング)」と呼びます。
CIDRの利点
CIDRの利点を、クラスフルアドレッシングと比較して以下の図にまとめました。
このように、CIDRの利点は、クラスフルアドレッシングのようにネットワーク部とホスト部を8bit単位で区切ることにこだわらずに、任意のbitでネットワーク部とホスト部の境界決められる点です。CIDRを利用するとクラスフルアドレッシングで問題だった「IPアドレスの無駄な消費」を防ぐことができます。
CIDRの特徴
CIDRの特徴を、クラスフルアドレッシングと比較して説明します。以下の図をご覧ください。
上記の図のように、クラスフルアドレッシングではIPアドレスの上位bitからアドレスクラスを判別でき、IPアドレスの情報だけでネットワークアドレスのbit数を知ることができます。
CIDRを用いた場合、IPアドレスの情報だけではネットワークアドレスのbit数を知ることができません。そのため、必ずIPアドレスと合わせてサブネットマスクの情報が必要です。
CIDRの主要な概念
CIDRの特徴から分かるように、CIDRの主要な概念は「サブネットマスク」であり、それを簡略化して表記する「CIDR表記」です。
CIDR表記
CIDR表記は、IPアドレスのサブネットマスクの情報を簡略化して192.168.0.0/24
のように表記したものです。CIDR表記した192.168.0.0/24
は、192.168.0.0/255.255.255.0
のようにIPアドレスにサブネットマスクを付随した表記と全く同じ意味で、表記方法が違うだけです。
サブネットマスク255.255.255.0
は、「上位の24bitがネットワークアドレスである」という意味でもあります。つまり、CIDR表記で/数字
が意味するのは「上位何bitがネットワークアドレスである」という意味です。
CIDRを用いた場合、サブネットマスクで表記するよりCIDR表記した方が簡易的で分かりやすいため、一般的にはCIDR表記を用います。また、CIDR表記で用いる/
(スラッシュ)は、プレフィックスと呼び、CIDR表記のことを「プレフィックス表記」とも呼びます。
IPv6のCIDRについてはこちらの記事をご参照ください。
https://envader.plus/article/453
CIDRの用途
CIDRの用途を、以下の2点に焦点を当てて説明します。
- クラスを使わないIPアドレスの割り当て
- 経路情報の集約
クラスを使わないIPアドレスの割り当て
クラスを使わないIPアドレスの割り当てとは、クラスの定義にかかわらず単にネットワークをより小さな複数のネットワークに分割することを指します。クラスを使わないIPアドレスの割り当てを以下の図にまとめました。
※実際に使えるIPアドレス数は、IPアドレスの数-2
(ネットワークアドレス+ブロードキャストアドレス)です。
①が、ISP(インターネットサービスプロバイダー)からユーザに割り当てられたIPアドレスだとします。ISPは、CIDRを用いることで、ユーザが必要なネットワーク規模に応じてIPアドレスを割り当てることができます。
①の割り当てを受けたユーザは、②、③、④のように自身でサブネットを構築することが可能です。このサブネットの規模も、ユーザ自身が必要なネットワーク規模に応じて柔軟に構築することができます。
経路情報の集約
経路情報の集約とは、複数のネットワークアドレスのルート情報を1つにまとめることです。
経路(ルート)が多くなると、ルータ内のルーティングテーブルが大きくなり、宛先ネットワークを見つけるための時間が長くなったり、ルーティングテーブルに保存するためのメモリ量が大量に必要になります。実際インターネット上には膨大な数のネットワークが存在しており、インターネットの出入り口となる基幹ルータともなると、それら全てのエントリ(ネットワーク情報)を扱う必要があります。
この、ルーティングテーブルが増大することへの解決策の1つが、経路情報の集約です。経路情報の集約とは、ルータのルーティングテーブルを圧縮し、エントリ数を減らすことです。
実際に経路の集約を行うことで、経路情報の集約を説明します。まず、経路情報が集約されていない例を、以下の図①にまとめました。
図①のルータXのルーティングテーブルを見ると、8つのエントリが登録されています。このように、ルータXのルーティングテーブルにルータAから先のルーティングを登録するのはあまり意味がありません。なぜなら、ルータはルーティングする際にネクストホップへ転送すれば良いからです。
この8つのエントリをまとめられないかどうか確認します。それぞれのエントリを表にまとめましたので以下をご覧ください。
IPアドレス(CIDR表記) | IPアドレス(2進数表記) |
---|---|
172.168.32.0/24 | 10101100.00010000.00100000.00000000 |
172.168.33.0/24 | 10101100.00010000.00100001.00000000 |
172.168.34.0/24 | 10101100.00010000.00100010.00000000 |
172.168.35.0/24 | 10101100.00010000.00100110.00000000 |
172.168.36.0/24 | 10101100.00010000.00100100.00000000 |
172.168.37.0/24 | 10101100.00010000.00100101.00000000 |
172.168.38.0/24 | 10101100.00010000.00100110.00000000 |
172.168.39.0/24 | 10101100.00010000.00100111.00000000 |
それぞれのエントリを見ると、10101100.00010000.00100
(上位21bit)までが共通しています。そのため、この8つのエントリを/21
で1つに集約することができ、まとめて1つのネットワークと扱うことができます。
8つのエントリを集約した結果が、以下の図②です。
経路が集約されたことでルータXはルータAから先のルーティングは覚える必要がなくなります。なぜなら、ルータAから先のルーティングはルータAが行うからです。
このように、経路情報の集約とは、複数のネットワークアドレスの経路情報を1つにまとめることです。経路情報を集約することにより、ルータの使用メモリを減らすことができます。また、単純に次の宛先の登録数が少なくなることにより検索にかかる計算量も少なくなり、ルータの負荷を軽減することにつながります。
CIDRの早見表
CIDRを用いてIPアドレスの割り当てや経路情報の集約を行う時に便利な「CIDRの早見表」を作成しました。「Ctrl or Cmd + F」でお探しの値を見つけてください。
CIDR | サブネットマスク | IPアドレスの数 |
---|---|---|
/32(注1) | 255.255.255.255 | 1 |
/31(注2) | 255.255.255.254 | 2 |
/30 | 255.255.255.252 | 4 |
/29 | 255.255.255.248 | 8 |
/28 | 255.255.255.240 | 16 |
/27 | 255.255.255.224 | 32 |
/26 | 255.255.255.192 | 64 |
/25 | 255.255.255.128 | 128 |
/24 | 255.255.255.0 | 256 |
/23 | 255.255.254.0 | 512 |
/22 | 255.255.252.0 | 1,024 |
/21 | 255.255.248.0 | 2,048 |
/20 | 255.255.240.0 | 4,096 |
/19 | 255.255.224.0 | 8,192 |
/18 | 255.255.192.0 | 16,384 |
/17 | 255.255.128.0 | 32,768 |
/16 | 255.255.0.0 | 65,536 |
/15 | 255.254.0.0 | 131,072 |
/14 | 255.252.0.0 | 262,144 |
/13 | 255.248.0.0 | 524,288 |
/12 | 255.240.0.0 | 1,048,576 |
/11 | 255.224.0.0 | 2,097,152 |
/10 | 255.192.0.0 | 4,194,304 |
/9 | 255.128.0.0 | 8,388,608 |
/8 | 255.0.0.0 | 16,777,216 |
/7 | 254.0.0.0 | 33,554,432 |
/6 | 252..0.0.0 | 67,108,864 |
/5 | 248.0.0.0 | 134,217,728 |
/4 | 240.0.0.0 | 268,435,456 |
/3 | 224.0.0.0 | 536,870,912 |
/2 | 192.0.0.0 | 1,073,741,824 |
/1 | 128.0.0.0 | 2,147,483,648 |
/0 | 0.0.0.0 | 4,294,967,296 |
(注1)/32
は単一ホストを表現する際に使われます。
(注2)/31
はIPアドレス数が2個しかないため基本的には使えませんが、RFC3021でポイント・ツー・ポイントリンクとして使用して良いと定められています。
まとめ
こちらの記事ではCIDR・CIDR表記について解説しました。
CIDRはIPv4のIPアドレスの枯渇問題を解消するために誕生し、現在主流で利用されている仕組みです。CIDRを使用してネットワークを構築できるようになるためにも、IPアドレスの知識やCIDR以前に導入されていたクラスアドレッシングの仕組み、サブネット・サブネットマスクの知識も合わせて学習することが必要です。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2023.02.21
【図解】MACアドレスとIPアドレスの違いとは?どちらも通信に欠かせない理由
MACアドレスとIPアドレスの役割の違いについて理解することができれば、なぜインターネット通信において両者が必要となってくるのかが理解できます。
- ネットワーク
2023.03.20
【保存版】サブネット・サブネットマスク徹底解説
サブネットの利点と欠点、サブネットマスクの仕組みや使い方を説明します。
- ネットワーク
2022.12.28
【徹底解説】サーバーレスのメリットデメリット
サーバーレス(FaaS)ってつまり何?メリットとデメリットを丁寧に解説します。
- ネットワーク