サブネット計算(IPv4・CIDR)
IPv4 のアドレスを CIDR 表記で入力すると、ネットワークアドレスやサブネットマスク、利用できるホストの数を計算します。
サブネット計算の考え方
CIDR(サイダー)表記の「/24」は、アドレスの先頭から何ビットをネットワーク部に使うか(プレフィックス長)を表します。IPv4 のアドレスは 32 ビットなので、残りの(32 - プレフィックス長)ビットがホスト部です(RFC 4632)。
- サブネットマスク:先頭のプレフィックス長のビットが 1、残りが 0(/24 は 255.255.255.0)
- ネットワークアドレス:アドレスとマスクの論理積(ホスト部を 0 にした値)
- ブロードキャストアドレス:ホスト部をすべて 1 にした値
- アドレスの総数:2 の(32 - プレフィックス長)乗
- 利用可能なホスト数:総数 - 2(ネットワークアドレスとブロードキャストアドレスを除く)
/31 と /32 は、例外です
- /31:アドレスは 2 つだけです。ホスト数を「総数 - 2」とすると 0 になってしまいますが、1 対 1 のリンク(ルーター間の接続など)では、2 つとも、ホストのアドレスとして使います。RFC 3021 に、「31 ビットのマスクを使う 1 対 1 のリンクでは、2 つのアドレスを、ホストのアドレスとして解釈しなければならない」とあります(RFC 3021)。このツールは、/31 の利用可能なホスト数を 2 と表示し、ネットワークアドレスとブロードキャストアドレスの区別は表示しません。1 対 1 のリンク以外では、この使い方ができないことがあります。
- /32:アドレスは 1 つだけで、単一のホストを指します(ホストを 1 台だけ指定する経路などで使います)。ネットワークアドレスとブロードキャストアドレスの区別はなく、利用可能なホスト数は 1 と表示します。
計算例
| 入力 | ネットワーク | マスク | 総数 | ホスト数 |
|---|---|---|---|---|
| 192.168.1.10/24 | 192.168.1.0 | 255.255.255.0 | 256 | 254(.1〜.254) |
| 10.0.0.0/30 | 10.0.0.0 | 255.255.255.252 | 4 | 2(.1・.2) |
| 10.0.0.0/31 | 2 つのアドレス(.0・.1) | 255.255.255.254 | 2 | 2(1 対 1 のリンク) |
| 10.0.0.5/32 | 10.0.0.5 | 255.255.255.255 | 1 | 1(単一のアドレス) |
| 172.16.0.0/16 | 172.16.0.0 | 255.255.0.0 | 65,536 | 65,534 |
プレフィックス長とサブネットマスクの対応
| プレフィックス長 | サブネットマスク | アドレスの総数 |
|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 |
| /16 | 255.255.0.0 | 65,536 |
| /24 | 255.255.255.0 | 256 |
| /25 | 255.255.255.128 | 128 |
| /26 | 255.255.255.192 | 64 |
| /27 | 255.255.255.224 | 32 |
| /28 | 255.255.255.240 | 16 |
| /29 | 255.255.255.248 | 8 |
| /30 | 255.255.255.252 | 4 |
注意点
- 入力は IPv4 だけです(IPv6 は対応していません)。各数の先頭に 0 を付けた入力(010 など)は、8 進数と読む場合があり、あいまいなのでエラーにします(0 だけは入力できます)。
- 入力したアドレスがネットワークアドレスと違うとき(192.168.1.10/24 など)は、ホスト部を 0 にして、ネットワークアドレスを求めます。
- 実際のネットワークでは、ゲートウェイ(ルーター)に 1 つ使う、予約したアドレスがあるなどで、使えるホストの数が、表示より少ないことがあります。
- /0 は、すべての IPv4 アドレスを含む範囲で、数は理論上の値です。
- アドレスや数を 2 進数・16 進数で確認するときは、進数変換を使ってください。
よくある質問
ホスト数が「総数 - 2」になるのは、なぜですか?
ホスト部がすべて 0 のアドレスはネットワーク自体を表すネットワークアドレス、すべて 1 のアドレスは、そのネットワークの全員に送るブロードキャストアドレスとして使われるため、ホストには割り当てません。
/31 は、普通のネットワークでも使えますか?
1 対 1 のリンク(2 台だけを結ぶ接続)では、使えます。3 台以上がつながるネットワークでは、ネットワークアドレスやブロードキャストアドレスの区別が必要なので、/30 以下を使います。
サブネットマスクだけを入力したいときは?
プレフィックス長に直して入力してください(255.255.255.0 は /24、255.255.255.252 は /30)。上の対応表を参考にしてください。