サブネットマスクの計算方法
IPv4 アドレスは 32 ビットの数で、8 ビットずつ 0〜255 の4つの数字で書き表します。サブネットマスクは、この 32 ビットをネットワーク部(1 のビット)とホスト部(0 のビット)に分ける役割をもちます。ネットワーク部が同じアドレスどうしは、ルーターを通さずに通信できる同じサブネットに属します。
例として 192.168.1.10/24 を計算します。/24 なのでサブネットマスクは 255.255.255.0。IP アドレスとマスクを AND 演算してホスト部の 8 ビットを 0 にすると、ネットワークアドレスは 192.168.1.0 です。ホスト部をすべて 1 にすると、ブロードキャストアドレスは 192.168.1.255 になります。
使用可能なホストは、その間の 192.168.1.1 〜 192.168.1.254 で、ホスト数は 2⁸ − 2 = 254 台です。
よく使うプレフィックス長とホスト数
/8(255.0.0.0)は 16,777,214 台、/16(255.255.0.0)は 65,534 台、/20(255.255.240.0)は 4,094 台、/22(255.255.252.0)は 1,022 台、/23(255.255.254.0)は 510 台のホストを収容できます。
/24(255.255.255.0)は 254 台、/25(255.255.255.128)は 126 台、/26(255.255.255.192)は 62 台、/27(255.255.255.224)は 30 台、/28(255.255.255.240)は 14 台、/29(255.255.255.248)は 6 台、/30(255.255.255.252)は 2 台です。
プレフィックス長の選択欄には、/32 から /0 までのすべてのサブネットマスクを並べているので、早見表としても使えます。
プライベートアドレスと特別な用途のアドレス
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 は、社内や家庭のネットワークで使うプライベートアドレスです。127.0.0.0/8 はループバック、169.254.0.0/16 はリンクローカル、100.64.0.0/10 はキャリアグレード NAT 用、224.0.0.0/4 はマルチキャストに割り当てられています。
計算機は、入力したアドレスがこれらの範囲に入るかどうかを IANA の特別用途アドレスの一覧にもとづいて表示します。
クラスと CIDR
かつては先頭の数字でクラス A(0〜127)、B(128〜191)、C(192〜223)と区切り、ネットワークの大きさを決めていました。現在は CIDR によって、/20 や /26 のように任意の長さでネットワークを区切ります。
クラスは試験や古い資料で目にするため参考として表示していますが、実際のネットワークの大きさはプレフィックス長で決まります。
2つの入力方法と優先順位
必要なのは IPv4 アドレスと、プレフィックス長を決めるもう1つの情報です。決め方は3通りあり、この計算機は次の順番で優先します。まず、192.168.1.10/24 のようにアドレス欄に /24 を直接入力した場合。次に、255.255.255.0 のようなマスクをマスク欄に入力した場合。どちらもなければ、プルダウンで選んだプレフィックス長(初期値は /24)が使われます。
入力するマスクは、1 のビットがすべて 0 のビットより前に並ぶ「連続した」マスクでなければなりません。255.255.0.255 のように 0 のあとに 1 が来るものは正しいサブネットマスクではなく、計算機は受け付けません。また、01 や 010 のように先頭に 0 がついた数字は、システムによって8進数と読まれたり10進数と読まれたりするため、そのままでは受け付けません。
計算方法:AND 演算と OR 演算
ネットワークアドレスは、IP アドレスとサブネットマスクをビットごとに AND 演算して求めます(ホスト部をすべて 0 にする)。ブロードキャストアドレスは、ネットワークアドレスとワイルドカードマスク(マスクの全ビットを反転したもの)を OR 演算して求めます(ホスト部をすべて 1 にする)。
アドレスの総数は 2 の (32 − プレフィックス長) 乗です。ふつうは、そのうちネットワークアドレスとブロードキャストアドレスの2つをホストに割り当てられないため、使用可能なホスト数は「総数 − 2」になります。
例2:172.16.4.2/30(ポイントツーポイント回線)
/30 はホスト部が 2 ビットしかないため、総数は 2² = 4 個です。マスクは 255.255.255.252。172.16.4.2 をこのマスクで AND 演算するとネットワークアドレスは 172.16.4.0、ブロードキャストアドレスは 172.16.4.3 になり、残る 172.16.4.1 と 172.16.4.2 の2つが使用可能なホストです(4 − 2 = 2 台)。ルーター同士を1対1でつなぐ回線でよく使われる大きさです。
/31 と /32 の例外
「総数 − 2」の原則には2つの例外があり、どちらも計算機が正しく処理します。/31 は RFC 3021 により、ポイントツーポイント回線でネットワークアドレスとブロードキャストアドレスを省略できると定められているため、2つのアドレスのどちらもホストに使えます。結果の表では、ブロードキャストは「なし」、使用可能なホスト数は 0 ではなく 2 と表示されます。/32 はアドレスが1つだけのサブネットで、そのアドレス自身がネットワークアドレスでもブロードキャストアドレスでも唯一のホストでもあります。
これら2つを除いて、入力したアドレスがそのサブネットのネットワークアドレスまたはブロードキャストアドレスと一致する場合、計算機はその旨を注記します。そのアドレスはサブネットそのものを表すため、機器には割り当てられません。
結果の見方
結果の見出しには、192.168.1.0/24 のようにネットワークアドレスとプレフィックスがまとめて表示され、その下に入力したアドレスとマスクが並びます。「サブネットの情報」の表には、ネットワークアドレス、ブロードキャストアドレス、使用可能な最初と最後のホスト、使用可能なホスト数、アドレスの総数、サブネットマスク、ワイルドカードマスク、CIDR 表記、アドレスの種類、参考としてのクラスが並びます。「2進数での計算」の表では、アドレスとマスク、それを AND 演算した結果を2進数で確認できるので、10進数の数字をそのまま信じるのではなく、ネットワーク部とホスト部の境目を目で確認できます。
よくある間違い
どの /24 でもホスト数が総数から必ず2引かれると思い込むこと。これが成り立つのは /0 から /30 までで、/31 は2つとも使え、/32 は1つのアドレスしかありません。0 のビットと1のビットが順不同に混ざったマスク(255.255.0.255 など)を入力すること。これは正しいサブネットマスクではなく、計算機はエラーとして説明つきで拒否します。ブロードキャストアドレスを通常のホストとして扱うこと。これはサブネット上のすべてのホストを同時に指すアドレスなので、1台の機器に割り当てたり宛先にしたりするのは設定ミスです。サブネットマスクとワイルドカードマスクを混同すること。両者はビットが正反対で、Cisco のアクセスリストや OSPF の設定はワイルドカードマスクを求めます。
この計算機でできないこと
この計算機は、1つのアドレスと1つのプレフィックスから1つのサブネットを求めるだけです。大きなブロックを複数の小さなサブネットに分割することはできず、IPv6 にも対応していません。また、そのアドレスが実際に使われているかどうかをどこかに問い合わせることもありません。アドレスの種類(プライベート、ループバック、説明用など)は IANA の IPv4 特別用途アドレスレジストリの範囲と照合して表示しているだけです。