サブネットマスクの計算方法(CIDR とホスト数)

IP アドレスとプレフィックス長(/24 など)から、サブネットマスク・ネットワークアドレス・ブロードキャストアドレス・使えるホスト数を求めます。ホスト数は先頭と末尾の 2 つを除いた数です。

IPv4 のアドレスとプレフィックス長から、サブネットマスク、ネットワークアドレス、ブロードキャストアドレス、使えるホスト数を求めます。

N=232pN = 2^{32 - p}
H=N2H = N - 2

pp はプレフィックス長、NN がそのブロックに入るアドレスの総数、HH が使えるホスト数です。

プレフィックス長

IPv4 のアドレスは 32 bit です。プレフィックス長は、そのうち上位の何 bit がネットワークを表すかを示します。/24 なら上位 24 bit がネットワーク、残りの 8 bit がホストです。

サブネットマスクは、この上位ぶんを 1 で埋めた 32 bit の値を、アドレスと同じ書き方にしたものです。/24 なら 255.255.255.0 になります。

先頭と末尾の 2 つを引く理由

ブロックの先頭のアドレスはネットワークそのものを指し、末尾のアドレスはブロードキャストに使われます。どちらも機器には割り当てられないので、使えるホスト数は総数から 2 を引いた数になります。

192.168.10.130 を /26 で区切ると、サブネットマスクは 255.255.255.192、ネットワークアドレスは 192.168.10.128、ブロードキャストアドレスは 192.168.10.191、使えるホストは 62 台です。

/26 なのでホスト部は 6 bit、ブロックの大きさは 64 個です。最後のオクテットの 130 を 64 で割ると 2 余り 2 なので、128 から始まるブロックに入ります。末尾は 128 + 64 − 1 = 191 です。

注意点

/31 と /32 は数え方が違います。/31 は 2 台を向かい合わせる線に使うもので 2 個、/32 は 1 台だけを指すもので 1 個と数え、どちらも 2 を引きません。