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ブロックを含む構造となり、上位ビットが一致するアドレス同士は地理的に近く、途中まで同じ経路で到達できるという関係になった。ルーティングに用いる経路情報をまとめる「プリフィックス集約」が可能となり、少ない経路情報で効率的に経路選択できるようになった。
関連用語
関連リンク (外部サイト)
アドレスクラス
クラス | アドレス範囲 | 2進表記の先頭 | 用途・ネットワーク部の範囲 | 1ネットワークの 最大アドレス数* |
---|---|---|---|---|
クラスA | 0.0.0.0~127.255.255.255 | 0で始まる | 先頭8ビットがネットワーク部 | 16,777,216 |
クラスB | 128.0.0.0~191.255.255.255 | 10で始まる | 先頭16ビットがネットワーク部 | 65,536 |
クラスC | 192.0.0.0~223.255.255.255 | 110で始まる | 先頭24ビットがネットワーク部 | 256 |
クラスD | 224.0.0.0~239.255.255.255 | 1110で始まる | IPマルチキャスト用 | - |
クラスE | 240.0.0.0~255.255.255.255 | 1111で始まる | 予約済み・未使用 | - |
CIDR表記と可変長サブネットマスク(VLSM)
CIDR表記 | アドレス範囲 | サブネットマスク | アドレス数* |
---|---|---|---|
w.x.y.z/32 | w.x.y.zのみ | 255.255.255.255 (すべてのビットが1) | 1 |
w.x.y.z/31 | w.x.y.z~w.x.y.z+1 | 255.255.255.254 (上位31ビットが1) | 2 |
w.x.y.z/30 | w.x.y.z~w.x.y.z+3 | 255.255.255.252 (上位30ビットが1) | 4 |
w.x.y.z/29 | w.x.y.z~w.x.y.z+7 | 255.255.255.248 (上位29ビットが1) | 8 |
w.x.y.z/28 | w.x.y.z~w.x.y.z+15 | 255.255.255.240 (上位28ビットが1) | 16 |
w.x.y.z/27 | w.x.y.z~w.x.y.z+31 | 255.255.255.224 (上位27ビットが1) | 32 |
w.x.y.z/26 | w.x.y.z~w.x.y.z+63 | 255.255.255.192 (上位26ビットが1) | 64 |
w.x.y.z/25 | w.x.y.z~w.x.y.z+127 | 255.255.255.128 (上位25ビットが1) | 128 |
w.x.y.0/24 | w.x.y.0~w.x.y.255 | 255.255.255.0 (上位24ビットが1) | 256 |
w.x.y.0/23 | w.x.y.0~w.x.y+1.255 | 255.255.254.0 (上位23ビットが1) | 512 |
w.x.y.0/22 | w.x.y.0~w.x.y+3.255 | 255.255.252.0 (上位22ビットが1) | 1,024 |
w.x.y.0/21 | w.x.y.0~w.x.y+7.255 | 255.255.248.0 (上位21ビットが1) | 2,048 |
w.x.y.0/20 | w.x.y.0~w.x.y+15.255 | 255.255.240.0 (上位20ビットが1) | 4,096 |
w.x.y.0/19 | w.x.y.0~w.x.y+31.255 | 255.255.224.0 (上位19ビットが1) | 8,192 |
w.x.y.0/18 | w.x.y.0~w.x.y+63.255 | 255.255.192.0 (上位18ビットが1) | 16,384 |
w.x.y.0/17 | w.x.y.0~w.x.y+127.255 | 255.255.128.0 (上位17ビットが1) | 32,768 |
w.x.0.0/16 | w.x.0.0~w.x.255.255 | 255.255.0.0 (上位16ビットが1) | 65,536 |
w.x.0.0/15 | w.x.0.0~w.x+1.255.255 | 255.254.0.0 (上位15ビットが1) | 131,072 |
w.x.0.0/14 | w.x.0.0~w.x+3.255.255 | 255.252.0.0 (上位14ビットが1) | 262,144 |
w.x.0.0/13 | w.x.0.0~w.x+7.255.255 | 255.248.0.0 (上位13ビットが1) | 524,288 |
w.x.0.0/12 | w.x.0.0~w.x+15.255.255 | 255.240.0.0 (上位12ビットが1) | 1,048,576 |
w.x.0.0/11 | w.x.0.0~w.x+31.255.255 | 255.224.0.0 (上位11ビットが1) | 2,097,152 |
w.x.0.0/10 | w.x.0.0~w.x+63.255.255 | 255.192.0.0 (上位10ビットが1) | 4,194,304 |
w.x.0.0/9 | w.x.0.0~w.x+127.255.255 | 255.128.0.0 (上位9ビットが1) | 8,388,608 |
w.0.0.0/8 | w.0.0.0~w.255.255.255 | 255.0.0.0 (上位8ビットが1) | 16,777,216 |
w.0.0.0/7 | w.0.0.0~w+1.255.255.255 | 254.0.0.0 (上位7ビットが1) | 33,554,432 |
w.0.0.0/6 | w.0.0.0~w+3.255.255.255 | 252.0.0.0 (上位6ビットが1) | 67,108,864 |
w.0.0.0/5 | w.0.0.0~w+7.255.255.255 | 248.0.0.0 (上位5ビットが1) | 134,217,728 |
w.0.0.0/4 | w.0.0.0~w+15.255.255.255 | 240.0.0.0 (上位4ビットが1) | 268,435,456 |
w.0.0.0/3 | w.0.0.0~w+31.255.255.255 | 224.0.0.0 (上位3ビットが1) | 536,870,912 |
w.0.0.0/2 | w.0.0.0~w+63.255.255.255 | 192.0.0.0 (上位2ビットが1) | 1,073,741,824 |
w.0.0.0/1 | w.0.0.0~w+127.255.255.255 | 128.0.0.0 (上位1ビットが1) | 2,147,483,648 |
0.0.0.0/0 | 0.0.0.0~255.255.255.255 | 0.0.0.0 (すべてのビットが0) | 4,294,967,296 |