#はじめに
私は三○矢サイダーを飲むと異様に肩が痛くなります。なんでなんでしょうか。
私がAWSで初めてVPCを作成した際に、真っ先に躓いた部分がCIDRでした。
IPアドレスは分かる、サブネットマスクも分かる。
この訳の分からない「/」の付いたCIDRって、なに……?
#調べてみた。
ネットワークの入門系の書籍を何冊か読んでみましたが、CIDRに関しては言及を避けているか、言葉を尽くしたせいで却って曖昧になっているような内容が多いように感じました。
例「クラスレスアドレッシング? はぁ、そうですか」
私の理解が足りていないだけかもしれませんが。
なので、自分なりに理解しやすいよう解釈してみました。
#※あくまで個人の解釈です。
CIDRはサブネットマスクの「表記法」の一つ、と捉えてみます。
サブネットマスクって、なに……?
という方は安定の佐々木真氏のサイトが分かり易いかと思います。
「/n」の部分でやっていること自体はサブネットマスクと同じです。
「/n」という表記は、
IPアドレスの左からn番目までの数字がネットワーク部で、
以降はホスト部ということを表しています。
n=ネットワーク部の桁数
という表現もできますね。
サブネットマスクの1とか0とか255とかの、目の痛くなるあれを読みやすくしたのがCIDR表記とも言えます。
CIDR表記「/16」を変換すると、
サブネットマスク(10進数):/255.255.0.0
サブネットマスク(2進数):/11111111111111110000000000000000
CIDR表記「/24」を変換すると、
サブネットマスク(10進数):/255.255.255.0
サブネットマスク(2進数):/11111111111111111111111100000000
IPv4は2進数だと32桁です。
「/16」を例に取ると、
左から16桁まで(2進数表記で1の部分)がネットワーク部、
17桁から32桁まで(2進数表記で0の部分)がホスト部となります。
言い換えると、「/n」のnの値が小さいほど(ホスト部の桁が大きいほど)、割り振り可能なIPアドレスの数が多くなります。
10.0.0.0/16の場合、65536個のIPアドレスが使用可能。
10.0.0.0/24の場合、256個のIPアドレスが使用可能。
/22を基準にしてIPアドレス数を覚えると便利かもしれません。
/21が2048個
/22が1024個
/23が512個
といったように、後は倍々となります。
#AWSを例にとってみる。
AWSでは、VPC(仮想ネットワーク)の作成時にネットワークの範囲を指定します。
そのときに使われる用語が「CIDRブロック」なのですが、要は「サブネット」のことです。
VPCで大きくサブネット(ネットワーク)を取った上で、VPCに配置したサーバーごとにネットワークを小さく切り分けていきます(サブネット化)。
○:VPCの方がサブネットが大きい
VPCのCIDRブロックが10.0.0.0/16
EC2のCIDRブロックが10.0.0.0/24
×:VPC内の機器の方がサブネットが大きい
VPCのCIDRブロックが10.0.0.0/24
EC2のCIDRブロックが10.0.0.0/16
CIDR表記を使うと、サブネットを切り分けるときに分かり易い!
#おわりに
うーん、まだまだ理解が足りていないです。
やっぱりIP周りの知識は基礎なだけにもっと深めなきゃなぁ、と思いました。
この記事が少しでも役立てば幸いです。