CIDRとは?AWSの/16・/24・0.0.0.0/0を初心者向けに図解
AWSでVPCやSubnetを作ると、10.0.0.0/16や10.0.1.0/24のような表記が必ず出てきます。IPアドレスは見慣れていても、後ろの/16や/24が付いた瞬間に分かりにくく感じる人は多いはずです。
この表記がCIDRです。この記事では計算問題から入らず、「何を表しているのか」を先に理解します。
CIDRはClassless Inter-Domain Routingの略
CIDR = Classless Inter-Domain Routingです。読み方は一般に「サイダー」です。正式名称を直訳しても最初は分かりにくいため、まずはIPアドレスの範囲を表す書き方と覚えるのがおすすめです。
通常のIPv4アドレスは、たとえば192.168.1.10のように1つのアドレスを表します。一方、192.168.1.0/24のようにスラッシュ付きで書くと、1つではなくまとまったIPアドレス範囲を表せます。
192.168.1.10 → 1つのIPアドレス 192.168.1.0/24 → ある範囲のIPアドレスをまとめて表す
/24の24は「先頭24bitが共通」という意味
IPv4アドレスは、内部では32個の0と1、つまり32bitで表現されています。CIDRの/24は、その先頭24bitをネットワークの共通部分として扱う、という意味です。
ここで「固定」という言葉を使うと、サーバーに固定IPを割り当てる話と混同しやすいため、先頭から何bitを共通部分として見るかと考える方が分かりやすいです。
IPv4 = 32bit /24 共通部分 24bit | 変化できる部分 8bit /16 共通部分 16bit | 変化できる部分 16bit
そのため、スラッシュ後ろの数字が大きいほど変化できる部分が少なく、範囲は狭くなります。逆に数字が小さいほど変化できる部分が増え、範囲は広くなります。
/16と/24を住所の範囲として考える
たとえばAWSでよく見る10.0.0.0/16は、IPv4アドレスとして65,536個分の範囲を表します。10.0.1.0/24なら256個分です。
| CIDR | アドレス数 | 感覚 |
|---|---|---|
| 10.0.0.0/16 | 65,536 | 大きな範囲 |
| 10.0.1.0/24 | 256 | /16より小さい範囲 |
| 0.0.0.0/0 | IPv4全体 | すべてのIPv4宛先 |
ここでいう256個はCIDRが表す数学上のアドレス数です。AWSのIPv4 Subnetでは通常、先頭4個と最後1個の計5個をAWSが予約するため、/24の256個すべてをEC2などへ割り当てられるわけではありません。

出典: AWS公式。大きなVPC CIDRの中を、Availability ZoneごとのSubnet CIDRに分割している例です。
VPCを/16、Subnetを/24にするとはどういうことか
VPCとSubnetでは、CIDRを「大きな土地」と「その中の区画」のように使えます。
VPC 10.0.0.0/16 │ ├─ Subnet A │ 10.0.1.0/24 │ ├─ Subnet B │ 10.0.2.0/24 │ └─ Subnet C 10.0.3.0/24
VPC側で大きなIPアドレス範囲を確保し、その内側からSubnet用の小さな範囲を切り出します。SubnetのCIDRはVPCのCIDR範囲内に収まっている必要があり、複数SubnetのCIDR同士を重複させることはできません。

出典: AWS公式。実際のVPC設計では、CIDRで確保した範囲を複数のSubnetへ分けて利用します。
社内LANの192.168.x.xと考え方は似ている
会社や家庭のLANで192.168.1.xのようなIPアドレスを見たことがある人なら、考え方はかなり近いです。たとえば192.168.1.0/24なら、192.168.1付近を共通部分として、その範囲内の機器へアドレスを割り当てます。
なお「会社だから192.168から始まる」という意味ではありません。192.168.0.0/16はRFC 1918で定義されたプライベートIPv4範囲の一つで、社内LANや家庭LANでよく使われているため見慣れている、という関係です。
0.0.0.0/0が「全部」になる理由
/0は先頭から共通部分として指定するbitが0個です。つまり何も絞り込まないため、IPv4のすべてのアドレスを含みます。
そのためRoute Tableで次のように設定すると、「より具体的な経路に当てはまらないIPv4通信をInternet Gatewayへ送る」というデフォルトルートとして使えます。
0.0.0.0/0 → Internet Gateway
前の記事でPublic Subnetを理解するために登場した0.0.0.0/0は、ここでCIDRの考え方とつながります。
まとめ:CIDRは「IPのグループ」を読むための表記
最初は細かい2進数計算を完璧にする必要はありません。まずはCIDRはIPアドレス範囲の表記、スラッシュ後ろの数字が大きいほど範囲が狭いと理解できれば、VPCやSubnetの設定画面がかなり読みやすくなります。
次は、このSubnetを物理的に分かれた場所へ配置して障害に強くするための、Region・Availability Zone・Load Balancerを整理します。
