サブネットを切りたくなった時の計算方法に関するメモ書き

VPCなんかでサブネットを切りたくなった時に計算を求めるのをいつも忘れてしまうのでメモ

itmediaの記事がわかりやすい

www.atmarkit.co.jp

練習問題

www.atmarkit.co.jp

192.168.30.25/22のネットワークアドレスを選択しなさい。

CIDR形式のipアドレスからネットワークアドレスを求めるには一旦2進数に解く必要がある オクテット単位で変換していく。 10進から2進への変換は割り算で行う

www.infraexpert.com

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