CIDRについての質問
動画教材の手順に従い、VPCとIGW、サブネットを作成しました。
その後、復習で別のサブネット作成をしてみようとしたところ、パプリックサブネットのIPアドレス作成時に何度が認証されませんでした。
はじめの設定でVPCのIPV4のCIDRブロックを10.0.10.0/16に設定後、最初のパブリックサブネットを10.0.10.0/24としたのですが、新たなサブネットのIPアドレスは10.0.20.1/24や 10.0.0.5/24などが適用されず、10.0.30.0/24は大丈夫でした。これはどういった理由なのでしょうか?
VPCとサブネットにおけるCIDRは次のように考えよう
VPC で 10.0.10.0/16 を設定したんですね。
この場合、IPアドレスとサブネットマスクで表記すると、
IPアドレス: 10.0.10.0
サブネットマスク: 255.255.0.0
上記になりますよね。
その理由は、サブネットが255.255.0.0 になる理由は、2進数に直した際、
11111111.11111111.00000000.0000000
上記のように32桁のうち8桁の塊が2つあるので、CIDR表記すると/16になるためです。
AWSにおけるサブネットマスクの考え方
AWSのパブリックサブネットマスクは、VPCのアドレスの範囲内で作成する必要があります。
10.0.0.5や10.0.20.1 が適用されなかった理由は、これも2進数に計算し直すとわかりやすいかと。
10.0.0.5 を2進数に変換
00001010.00000000.00000000.00000101
10.0.20.1 を2進数に変換
00001010.00000000.00010100.00000001
それぞれを2進数に変換すると上記のようになりますよね。
一方、最初に作成したパブリックサブネットのIPアドレス10.0.10.0/24を2進数に変換すると、
00001010.00000000.00001010.00000000
上記のようになります。
VPCのCIDRは10.0.10.0/16 なので一番最後の8桁が00000000 である必要があるのですよね。
10.0.20.1/24や 10.0.0.5/24 は一番最後の8桁が00000101 や00000001 になっているので00000000 とは違います。
AWSのCIDRは3桁部分のみ自由に設定できる
ここまではネットワークの知識なのですが、AWSはさらに特殊でサブネットで自由に決められる部分はIPアドレスの3桁目の部分だけなんです。
つまり、今回で言うと
10.0.10.0
設定できるのは上記のように10
の箇所だけなんですよね。
それぞれを分割して考えると、
10.0 ...1桁目と2桁目の10
と0
の部分は、最初にVPCで作成した際に設定するので変えてはいけません。
0...4桁目の0
部分は、EC2作成時などで自動設定される箇所になるので。ここもサブネットのCIDRを決める際には変えないようにしましょう。