IPアドレス・サブネット計算ツール
IPアドレスとプレフィックス長(またはサブネットマスク)を入れると、ネットワークアドレス、ブロードキャストアドレス、ホストに割り当てられる範囲と数、ワイルドカードマスクをまとめて計算します。アドレスとマスクを2進数で並べ、ネットワーク部とホスト部を色分けして表示するので、ANDで求めるしくみも確かめられます。ネットワークをより小さいサブネットに分けたときの一覧、必要なホスト数から最小のサブネットを求める計算、プライベートアドレスなどの種類の判定にも対応し、基本情報技術者試験などのサブネットの計算問題を解いたあとの確認に使えます。
結果
- CIDR表記
- –
- ネットワークアドレス
- –
- ブロードキャストアドレス
- –
- 最初のホスト
- –
- 最後のホスト
- –
- 割り当てられるホスト数
- –
- アドレスの総数
- –
- サブネットマスク
- –
- ワイルドカードマスク
- –
- アドレスの種類
- –
- クラス(参考)
- –
/31 はネットワークアドレスとブロードキャストアドレスを区別せず、2つのアドレスをどちらもホストに割り当てられます(RFC 3021。ルータどうしを結ぶポイントツーポイント回線用)。/32 は1つのアドレスだけを表し、ループバックインターフェースやホストルートに使います。
2進数で見る
ネットワーク部 ホスト部
サブネットの分割
必要なホスト数から求める
–
IPv4だけに対応し、割り当てられるホスト数は、ネットワークアドレスとブロードキャストアドレスを除いた数です(/31 と /32 は例外)。
グラフで見る
ほかの入力は今の値のまま、選んだ入力だけを今の値の1/4〜4倍の範囲で変えたときの結果です。赤い点が今の値です。
ネットワークアドレスとブロードキャストアドレスの求め方
IPv4アドレスの32ビットは、先頭のプレフィックス長nビットのネットワーク部と、残りのホスト部に分かれます。サブネットマスクはネットワーク部を1、ホスト部を0にした値で、IPアドレスとビットごとのANDをとると、ホスト部が0になったネットワークアドレスが求まります。初期値の 192.168.10.77/27 では、第4オクテットの77(0100 1101)と224(1110 0000)のANDが64(0100 0000)なので、ネットワークアドレスは 192.168.10.64 です。ホスト部の5ビットをすべて1にすると 64 + 31 = 95 で、ブロードキャストアドレスは 192.168.10.95 になります。その間の 192.168.10.65〜192.168.10.94 の30個がホストに割り当てられるアドレスで、2進数の表示ではネットワーク部とホスト部を色分けしています。
割り当てられるホスト数と、/31・/32
プレフィックス長nのサブネットには 2^(32 − n) 個のアドレスがあります。そのうち、ホスト部がすべて0のネットワークアドレスと、すべて1のブロードキャストアドレスは機器に割り当てられないので、ホストに使えるのは 2^(32 − n) − 2 個で、/27 なら 2^5 − 2 = 30、/24 なら 2^8 − 2 = 254 です。ところが /31 はアドレスが2つしかなく、この規則では使えるアドレスが0になってしまいます。RFC 3021では、ルータどうしを1対1で結ぶポイントツーポイント回線に限り /31 の2つのアドレスをどちらもホストに使えると定めており、このツールでも /31 のホスト数を2としています。/32 は1つのアドレスだけを表し、ルータのループバックインターフェースや、特定の1台への経路(ホストルート)に使います。
サブネットの分割と、必要なホスト数からの選び方
プレフィックス長をkビット長くすると、1つのネットワークは 2^k 個のサブネットに分かれ、各サブネットのアドレスの数は元の 1/2^k になります。例えば 192.168.10.0/24 を /26 に分けると、.0、.64、.128、.192 から始まる 2^2 = 4個のサブネットになり、それぞれ 2^6 − 2 = 62 台のホストを収容できます。IPアドレスを 192.168.10.0、プレフィックス長を /24、分割後のプレフィックス長を /26 にすると、4つのサブネットのホストの範囲とブロードキャストアドレスを一覧で確かめられます。逆に必要なホスト数から選ぶときは、2^(32 − n) − 2 が必要な数以上になる、最も長いプレフィックスを探します。500台なら、/24(254台)では足りず、/23(2^9 − 2 = 510台、マスク 255.255.254.0)が最小です。/23 は第3オクテットが偶数の位置から始まり、例えば 10.0.2.0/23 は 10.0.2.0〜10.0.3.255 の範囲です。
プライベートアドレスと特別な用途のアドレス
RFC 1918のプライベートアドレス 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 は、家庭や組織の中で自由に使え、インターネットと通信するときはルータのNAT(NAPT)でグローバルアドレスに変換します。100.64.0.0/10 は、通信事業者がキャリアグレードNAT(CGN)の内側で使う共有アドレス(RFC 6598)です。ほかにも、自分自身を表すループバック(127.0.0.0/8)、DHCPでアドレスを得られなかったときにOSが自分で設定することがあるリンクローカル(169.254.0.0/16)、マルチキャスト(224.0.0.0/4)、本や資料の例に使うドキュメント用(192.0.2.0/24、198.51.100.0/24、203.0.113.0/24)などの範囲が決められています。表示されるクラスA〜Eは、先頭のビットでネットワーク部の長さを決めていた昔の方式(クラスフル)の区分で、今はCIDRでプレフィックス長を自由に決めるため、参考にとどめてください。例えば 192.168.10.77 はクラスCですが、ここでは /24 ではなく /27 として使っています。
ワイルドカードマスク
ワイルドカードマスクは、サブネットマスクの0と1を反転させた値で、各オクテットを255から引くと求まります。/27 のマスク 255.255.255.224 なら、ワイルドカードマスクは 0.0.0.31 です。Cisco製などのルータでは、ACL(アクセス制御リスト)やOSPFの設定で、1のビットを「どちらでもよい」、0のビットを「一致しなければならない」という意味で使います。例えば 192.168.10.64 0.0.0.31 と書くと、192.168.10.64〜192.168.10.95 の32個のアドレスに一致します。ACLのワイルドカードマスクは、サブネットマスクと違って1が連続していなくてもよく、偶数のアドレスだけに一致させるといった使い方もできます。
ネットワークの問題を解く
- A64個
- B30個
- C62個
答えと解説を見る
正解:C. 62個
/26 はネットワーク部が26ビットなので、ホスト部は 32 − 26 = 6 ビットで、アドレスは 2^6 = 64 個あります。このうち、ホスト部がすべて0のネットワークアドレス(192.168.5.0)と、すべて1のブロードキャストアドレス(192.168.5.63)はホストに割り当てられないため、64 − 2 = 62 個になります。一般に、プレフィックス長が n のとき、割り当てられる数は 2^(32 − n) − 2 です。/26 のサブネットマスクは 255.255.255.192 です。
- A192.168.10.95
- B192.168.10.127
- C192.168.10.255
答えと解説を見る
正解:A. 192.168.10.95
/27 はホスト部が 32 − 27 = 5 ビットなので、1つのサブネットのアドレスは 2^5 = 32 個で、第4オクテットは 0、32、64、96… の区切りで始まります。77 は 64〜95 の範囲にあるので、ネットワークアドレスは 192.168.10.64、ホスト部をすべて1にしたブロードキャストアドレスは 64 + 32 − 1 = 95 で、192.168.10.95 です。ホストに割り当てられるのは .65〜.94 の30個です。/27 のサブネットマスクは 255.255.255.224 です。
- A/24
- B/22
- C/23
答えと解説を見る
正解:C. /23
プレフィックス長 n のサブネットに収容できるホストの数は 2^(32 − n) − 2 です。/24 はホスト部8ビットで 2^8 − 2 = 254 台なので足りません。/23 はホスト部9ビットで 2^9 − 2 = 510 台となり、500台を収容できます。/22 は 2^10 − 2 = 1022 台で収容はできますが、必要の約2倍のアドレスを使ってしまいます。/23 のサブネットマスクは 255.255.254.0 で、例えば 10.0.2.0/23 は 10.0.2.0〜10.0.3.255 の範囲になります。
よくある質問
ネットワークアドレスを手で計算するには、どうすればよいですか?
マスクが255のオクテットはそのまま、0のオクテットは0にして、その間のオクテットだけを考えます。そのオクテットのブロックの大きさは 256 − (マスクの値) で、IPアドレスの値を超えない最大のブロックの倍数がネットワークアドレスになります。192.168.10.77/27 なら、マスク224からブロックは32、77を超えない最大の32の倍数は64なので 192.168.10.64、ブロードキャストアドレスは 64 + 32 − 1 = 95 で 192.168.10.95 です。
ホスト数を求めるときに、なぜ2を引くのですか?
ホスト部がすべて0のアドレスはネットワークそのものを表すネットワークアドレス、すべて1のアドレスはサブネット内のすべての機器に送るブロードキャストアドレスとして使うため、機器には割り当てられないからです。/24 なら 256 − 2 = 254 台です。なお、デフォルトゲートウェイになるルータのアドレスも、この254個のうちの1つを使います。
サブネットマスクとCIDR表記の違いは何ですか?
どちらもネットワーク部の長さを表し、内容は同じです。サブネットマスクは 255.255.255.224 のように32ビットを10進数4つで書き、CIDR表記は1の数だけを /27 のように書きます。マスクの1は上位から連続しているので互いに変換でき、このツールの入力にはどちらの形も使えます。
/31 は何に使うのですか?
2台のルータを1対1で結ぶポイントツーポイント回線に使います。相手は1台だけなのでブロードキャストアドレスが要らず、RFC 3021では2つのアドレスをどちらもインターフェースに割り当てられます。/30(アドレス4個でホスト2台)を使う場合に比べて、使うアドレスが半分で済みます。
IPv6のアドレスも計算できますか?
このツールはIPv4だけに対応しています。IPv6は128ビットのアドレスで、サブネットマスクの書き方は使わず、2001:db8::/64 のようにプレフィックス長で表します。LANのサブネットは一般に /64 とし、下位64ビットをインターフェースIDに使います。アドレスの自動設定(SLAAC)もこの /64 を前提にしています。また、IPv6にはブロードキャストアドレスがなく、マルチキャストがその役割を担います。