サブネットを切りたくなった時の計算方法に関するメモ書き
VPCなんかでサブネットを切りたくなった時に計算を求めるのをいつも忘れてしまうのでメモ
itmediaの記事がわかりやすい
練習問題
192.168.30.25/22のネットワークアドレスを選択しなさい。
CIDR形式のipアドレスからネットワークアドレスを求めるには一旦2進数に解く必要がある オクテット単位で変換していく。 10進から2進への変換は割り算で行う
IPアドレス 192.168.30.25 11000000.10101000.00011110.00011001 サブネットマスク(スラッシュ22のところ) 255.255.252.0 11111111.11111111.11111100.00000000 ネットワークアドレス 192.168.28.0 11000000.10101000.00011100.00000000
内容はコピペしたが一応手計算もした(練習のため) ipアドレスの二進数変換は計算するしかない。
スラッシュの後ろの数字はは第一オクテットからみて何ビットまでがマスクなのかを表してるので。 単純に1を桁数分だけ左側から並べていけば良い。10進数で表す場合も1,2,4,8,16,32,64,128で並べて1が立ってる場所の和を求めれば良いだけ。 ネットワークアドレスは2進数化されたipアドレスとサブネットマスクの論理積を求めて。10進数にすると求められる。 192.168.28.0 となる。
tips
理解してなくてもipcalと言うコマンドを使うと全部計算してくれるが。 理解しておくことは大事
ipcalc 192.168.30.25/22 Address: 192.168.30.25 11000000.10101000.000111 10.00011001 Netmask: 255.255.252.0 = 22 11111111.11111111.111111 00.00000000 Wildcard: 0.0.3.255 00000000.00000000.000000 11.11111111 => Network: 192.168.28.0/22 11000000.10101000.000111 00.00000000 HostMin: 192.168.28.1 11000000.10101000.000111 00.00000001 HostMax: 192.168.31.254 11000000.10101000.000111 11.11111110 Broadcast: 192.168.31.255 11000000.10101000.000111 11.11111111 Hosts/Net: 1022 Class C, Private Internet
オクテット単位外でサブネットを切りたい時のメモ
/24, /16 のようにオクテット単位でサブネットを切るときは迷うことはほぼないのだが、 /20のような範囲で切る場合はネットワークアドレスはホストアドレスが全てゼロになるように設定する必要がある(ネットワークアドレスの仕様) そのためちょっとだけ計算してあげる。
NG
ipcalc 10.10.10.0/20 Address: 10.10.10.0 00001010.00001010.0000 1010.00000000 Netmask: 255.255.240.0 = 20 11111111.11111111.1111 0000.00000000 Wildcard: 0.0.15.255 00000000.00000000.0000 1111.11111111 => Network: 10.10.0.0/20 00001010.00001010.0000 0000.00000000 HostMin: 10.10.0.1 00001010.00001010.0000 0000.00000001 HostMax: 10.10.15.254 00001010.00001010.0000 1111.11111110 Broadcast: 10.10.15.255 00001010.00001010.0000 1111.11111111 Hosts/Net: 4094 Class A, Private Internet
OK
ipcalc 10.10.16.0/20 Address: 10.10.16.0 00001010.00001010.0001 0000.00000000 Netmask: 255.255.240.0 = 20 11111111.11111111.1111 0000.00000000 Wildcard: 0.0.15.255 00000000.00000000.0000 1111.11111111 => Network: 10.10.16.0/20 00001010.00001010.0001 0000.00000000 HostMin: 10.10.16.1 00001010.00001010.0001 0000.00000001 HostMax: 10.10.31.254 00001010.00001010.0001 1111.11111110 Broadcast: 10.10.31.255 00001010.00001010.0001 1111.11111111 Hosts/Net: 4094 Class A, Private Internet