CIDR 【Classless Inter-Domain Routing】 クラスレスアドレッシング / classless addressing

概要

CIDR(Classless Inter-Domain Routing)とは、インターネット上のIPアドレスの割り当てと経路選択(ルーティング)を柔軟に運用する仕組み。IPアドレスのクラス分けを廃止し、組織の規模に応じて割り当てるアドレスの数を柔軟に選択できるようにした上で、アドレスブロックをグループ化して経路情報を集約するようにしたもの。

インターネット普及の初期、IPアドレスは3段階の固定サイズの「クラス」に分類され、組織規模に応じて割り当てられていた。「クラスA」は上位8ビットがネットワーク部で残り24ビットがホスト部、「クラスB」はネットワーク部が16ビット、「クラスC」は24ビットである。

しかし、AとB、BとCでそれぞれ256倍もアドレス数が異なり、クラスAは一つのブロックが1677万アドレスもあるため、インターネットの急激な普及により未割り当てアドレス領域が逼迫する一方、割り当て済みの組織ではアドレスを活用できずに大量に余らせてしまうという事態が生じた。

サブネットマスクとCIDR表記

そこで、CIDRでは1ビット単位で可変長の「サブネットマスク」(subnet mask)という値をIPアドレスと併用し、ネットワーク部の大きさを指定するようにした。これにより割り当てるアドレスブロックのサイズを柔軟に変更できるようになった。

例えば、サブネットマスクが2進数で「11111111 11111111 11111111 11110000」ならば、先頭から28ビットがネットワークアドレスで、残り4ビットがホストアドレスとなる。ブロックの表記はネットワークアドレスの末尾に「/」とサブネットマスクのビット数を付加して「198.51.100.0/28」のように記述する。これを「CIDR表記」ということがある。

CIDRブロック

CIDRの導入以降、アドレスブロックの割り当てはCIDRブロックと呼ばれる単位を用いて行われるようになり、地理的に大きな範囲を管轄する組織(例えば大陸を管轄する地域インターネットレジストリ)に大きなブロックを割り当て、これを分割してより小さい組織(例えば各国を管轄する国別レジストリ)に割り当てるという階層的なアドレス管理が導入された。

大きなCIDRブロックは内部に下部組織に割り当てた小さなCIDRブロックを含む構造となり、上位ビットが一致するアドレス同士は地理的に近く、途中まで同じ経路で到達できるという関係になった。ルーティングに用いる経路情報をまとめる「プリフィックス集約」が可能となり、少ない経路情報で効率的に経路選択できるようになった。

(2024.1.23更新)

アドレスクラス

クラスアドレス範囲2進表記の先頭用途・ネットワーク部の範囲1ネットワークの
最大アドレス数*
クラスA0.0.0.0~127.255.255.2550で始まる先頭8ビットがネットワーク部16,777,216
クラスB128.0.0.0~191.255.255.25510で始まる先頭16ビットがネットワーク部65,536
クラスC192.0.0.0~223.255.255.255110で始まる先頭24ビットがネットワーク部256
クラスD224.0.0.0~239.255.255.2551110で始まるIPマルチキャスト用-
クラスE240.0.0.0~255.255.255.2551111で始まる予約済み・未使用-
* ネットワークアドレスブロードキャストアドレスがあるため、一般的に接続可能ホスト数はこの値から2を引いた値。

CIDR表記と可変長サブネットマスク(VLSM)

アドレスプレフィックス(ネットワーク部)を表す範囲を先頭からのビット数で表記する。「/16」なら先頭から16ビットがネットワーク部、下位16ビットがホスト部
CIDR表記アドレス範囲サブネットマスクアドレス数*
w.x.y.z/32w.x.y.zのみ255.255.255.255 (すべてのビットが1)1
w.x.y.z/31w.x.y.z~w.x.y.z+1255.255.255.254 (上位31ビットが1)2
w.x.y.z/30w.x.y.z~w.x.y.z+3255.255.255.252 (上位30ビットが1)4
w.x.y.z/29w.x.y.z~w.x.y.z+7255.255.255.248 (上位29ビットが1)8
w.x.y.z/28w.x.y.z~w.x.y.z+15255.255.255.240 (上位28ビットが1)16
w.x.y.z/27w.x.y.z~w.x.y.z+31255.255.255.224 (上位27ビットが1)32
w.x.y.z/26w.x.y.z~w.x.y.z+63255.255.255.192 (上位26ビットが1)64
w.x.y.z/25w.x.y.z~w.x.y.z+127255.255.255.128 (上位25ビットが1)128
w.x.y.0/24w.x.y.0~w.x.y.255255.255.255.0 (上位24ビットが1)256
w.x.y.0/23w.x.y.0~w.x.y+1.255255.255.254.0 (上位23ビットが1)512
w.x.y.0/22w.x.y.0~w.x.y+3.255255.255.252.0 (上位22ビットが1)1,024
w.x.y.0/21w.x.y.0~w.x.y+7.255255.255.248.0 (上位21ビットが1)2,048
w.x.y.0/20w.x.y.0~w.x.y+15.255255.255.240.0 (上位20ビットが1)4,096
w.x.y.0/19w.x.y.0~w.x.y+31.255255.255.224.0 (上位19ビットが1)8,192
w.x.y.0/18w.x.y.0~w.x.y+63.255255.255.192.0 (上位18ビットが1)16,384
w.x.y.0/17w.x.y.0~w.x.y+127.255255.255.128.0 (上位17ビットが1)32,768
w.x.0.0/16w.x.0.0~w.x.255.255255.255.0.0 (上位16ビットが1)65,536
w.x.0.0/15w.x.0.0~w.x+1.255.255255.254.0.0 (上位15ビットが1)131,072
w.x.0.0/14w.x.0.0~w.x+3.255.255255.252.0.0 (上位14ビットが1)262,144
w.x.0.0/13w.x.0.0~w.x+7.255.255255.248.0.0 (上位13ビットが1)524,288
w.x.0.0/12w.x.0.0~w.x+15.255.255255.240.0.0 (上位12ビットが1)1,048,576
w.x.0.0/11w.x.0.0~w.x+31.255.255255.224.0.0 (上位11ビットが1)2,097,152
w.x.0.0/10w.x.0.0~w.x+63.255.255255.192.0.0 (上位10ビットが1)4,194,304
w.x.0.0/9w.x.0.0~w.x+127.255.255255.128.0.0 (上位9ビットが1)8,388,608
w.0.0.0/8w.0.0.0~w.255.255.255255.0.0.0 (上位8ビットが1)16,777,216
w.0.0.0/7w.0.0.0~w+1.255.255.255254.0.0.0 (上位7ビットが1)33,554,432
w.0.0.0/6w.0.0.0~w+3.255.255.255252.0.0.0 (上位6ビットが1)67,108,864
w.0.0.0/5w.0.0.0~w+7.255.255.255248.0.0.0 (上位5ビットが1)134,217,728
w.0.0.0/4w.0.0.0~w+15.255.255.255240.0.0.0 (上位4ビットが1)268,435,456
w.0.0.0/3w.0.0.0~w+31.255.255.255224.0.0.0 (上位3ビットが1)536,870,912
w.0.0.0/2w.0.0.0~w+63.255.255.255192.0.0.0 (上位2ビットが1)1,073,741,824
w.0.0.0/1w.0.0.0~w+127.255.255.255128.0.0.0 (上位1ビットが1)2,147,483,648
0.0.0.0/00.0.0.0~255.255.255.2550.0.0.0 (すべてのビットが0)4,294,967,296
* /30以下では、ブロードキャストアドレスがあるため、一般的に接続可能ホスト数はこの値から2を引いた値。