はじめに
CIDR に関する知識で曖昧だった部分を整理した備忘録です。
どなたかの理解の助けになれば幸いです。
CIDR表記とは
CIDR表記(例:192.168.0.0/24)は、「そのIPアドレスが属するネットワーク」を表すための書き方です。
/24 や /25 といった数字は、「このIPアドレスの上位何ビットがネットワーク部か」を示しているだけで、「この IP から何個分のアドレスを使う」という意味ではありません。
きれいにCIDR表記した場合
まずは、CIDRの境界とIPアドレスがきれいに一致している例から見ていきます。
「192.168.0.0/24」の場合
ネットワーク部は 24bit なので、ホスト部は 8bit(256通り)です。
つまり、「192.168.0.0 ~ 192.168.0.255」の範囲を表しています。
「192.168.0.0/25」の場合
ネットワーク部は 25bit なので、ホスト部は 7bit(128通り)です。
つまり、「192.168.0.0 ~ 192.168.0.127」となります。
また、192.168.0.128/25とすれば、「192.168.0.128 ~ 192.168.0.255」の範囲も表すことができます。
「192.168.0.0/23」の場合
ネットワーク部が 23bit なので、ホスト部は 9bit(518通り)です。
このとき、/24 が2つ分だと考えられるので、範囲は「192.168.0.0 ~ 192.168.1.255」となります。
これまでの例が分かりやすいのは、IPアドレスがたまたまネットワーク境界に一致していたからです。
中途半端な値の場合
こちらが混乱しやすいです。
例えば 192.168.0.100/25 と書くと、「192.168.0.100 ~ 192.168.0.227」までの合計 128 個分と考えてしまいがちですが、実際には違っています。
/25 のネットワークは
「192.168.0.0 ~ 192.168.0.127」と、
「192.168.0.128 ~ 192.168.0.255」
の2つに分かれています。
ここで、「192.168.0.100」は前者のネットワークに属するため、「192.168.0.100/25」は実質「192.168.0.0/25」と同じ意味になります。
つまり、範囲は「192.168.0.0 ~ 192.168.0.127」となります。
同様に、「192.168.111.0/23」の場合は、「192.168.110.0 〜 192.168.111.255」の範囲を表している、と考えられます。
まとめ
CIDR表記は、IPアドレスの「範囲指定」ではなく、その IP が属するネットワークを示すための表記です。
/24 や /23 は「使えるアドレス数」ではなく、「ネットワークをどこで区切るか」を示しています。