CIDR / IP サブネット計算機
変換BigInt で IPv4/IPv6 CIDR ブロックのネットワークアドレス、ブロードキャスト、マスク、ホスト範囲、クラスを計算します。
- ネットワークアドレス
- ネットマスク
- ワイルドカード
- ブロードキャスト
- 最初のホスト
- 最後のホスト
- 総アドレス数
- 利用可能ホスト数
- IP クラス
- IP バージョン
- スコープ
このページの内容
CIDR とは?#
CIDR(Classless Inter-Domain Routing、クラスレスドメイン間ルーティング)は、IP アドレスのブロックを記述する a.b.c.d/n 表記です。スラッシュのあとの数値がプレフィックス長で、先頭何ビットが固定され、残りのビットがブロック内の個々のホストを識別するかを示します。192.168.1.0/24 は先頭 24 ビット(192.168.1 の部分)を固定し、最後のオクテットを自由に残すため、ちょうど 256 アドレスを与えます。おなじみのホームネットワークの範囲です。
CIDR が存在するのは、古い「クラス A/B/C」体系が 3 つの硬直したサイズでしかアドレスブロックを配れず、膨大な空間を無駄にしていたためです。CIDR はアドレス空間を任意の 2 の累乗サイズのブロック(/23、/27、/29…)に切り分けられるため、無駄がありません。同じ表記は、ファイアウォールの許可リスト、ルーティングテーブルのエントリ、クラウドのセキュリティグループ、DNS ACL の記述にも使われます。
本ページは CIDR(あるいは単独アドレス)を解析し、サブネットの完全な内訳を示します。ネットワークアドレス、ブロードキャスト、ネットマスク、ワイルドカード、最初と最後の利用可能ホスト、総アドレス数と利用可能ホスト数、レガシー IP クラス、IP バージョン、そしてアドレスがプライベート(RFC 1918/ULA)範囲に入るかどうかです。IPv4 と IPv6 の両方に対応し、BigInt による完全 128 ビット精度を持ちます。素の JavaScript Number は 2^53 を超える IPv6 演算を暗黙に壊します。
使い方#
- 入力欄に CIDR またはアドレスを入力します。初期値はサンプルとして
192.168.1.130/24です。独自の値に置き換えてください。単独アドレスは IPv4 なら/32、IPv6 なら/128として扱われます。 - 結果パネルが入力に従って埋まります。各フィールドは次の通りです。ネットワークアドレス(サブネットのベースアドレス、ホストビットはゼロ)、ネットマスク(プレフィックスから暗黙に定まるマスク)、ワイルドカード(IPv4 のみ — ネットマスクのビット単位 NOT、Cisco 式 ACL で使用)、ブロードキャスト(IPv4 のみ。IPv6 にはない)、最初のホストと最後のホスト(割り当て可能な範囲)、総アドレス数、利用可能ホスト数、IP クラス(レガシー A/B/C/D/E)、IP バージョン、スコープ(プライベートまたはパブリック)。
- サンプルでデフォルト例を再読み込み、クリアで入力欄を空にできます。
主な機能#
- 完全な IPv6 精度。 すべての計算が BigInt で走るため、
/48や/64の IPv6 ブロック — アドレス数が京の桁に達する — も浮動小数点近似ではなく正確です。 - エッジプレフィックスを含む正しいホスト数。
/31は RFC 3021 のポイントツーポイント対として扱います(利用可能 2、予約ブロードキャストなし)。/32は単一ホスト。/30は正しく利用可能 2。本ページはすべてのプレフィックスに盲目的に2^(32-p) - 2を適用したりしません。 - RFC 1918 と ULA の検出。 プライベート範囲(IPv4 の
10/8、172.16/12、192.168/16。IPv6 のfc00::/7、fe80::/10、::1)はスコープ欄でフラグされ、ブロックがパブリックインターネットでルーティング可能か一目で分かります。 - ワイルドカードマスク。
permit ip any 192.168.1.0 0.0.0.255式のルールを書く際、マスクがネットマスクに対して反転しているため便利です。 - RFC 5952 準拠の IPv6 圧縮。 出力アドレスは最長ゼロ連続を
::に縮め、小文字で、先行ゼロなしで出力されます。ファイアウォールやルーターが期待する正規形式です。 - IPv4 マップ IPv6。
::ffff:192.168.1.1のような入力は正しく解析され、正規化されます。
実例#
デフォルトの 192.168.1.130/24 では次のようになります。
Network: 192.168.1.0
Netmask: 255.255.255.0
Wildcard: 0.0.0.255
Broadcast: 192.168.1.255
First host: 192.168.1.1
Last host: 192.168.1.254
Total: 256
Usable: 254
Class: C
Version: IPv4
Scope: Private
入力したアドレス 192.168.1.130 はブロックのネットワークアドレスではなく、ブロック内のホストであることに注意してください。ネットワークアドレスはホストビットをマスクオフした結果です。254 という利用可能数は 総 256 − ネットワーク 1 − ブロードキャスト 1 です。だから /24 はしばしば「利用可能ホスト 254」と大まかに呼ばれます。
ポイントツーポイントリンクなら /31 に切り替えます。
Input: 10.0.0.0/31
Usable: 2 (RFC 3021: both addresses usable, no reserved broadcast)
First host: 10.0.0.0
Last host: 10.0.0.1
IPv6 なら 2001:db8::/64 — 標準的な LAN サブネットサイズ — を試してください。
Network: 2001:db8::
Total: 18446744073709551616 (2^64 — every address in the block is usable; IPv6 has no broadcast)
Scope: Public
よくある質問#
なぜ /24 は 256 ではなく利用可能ホスト 254 なのですか?#
IPv4 サブネット(/31 と /32 を除く)では 2 つのアドレスが予約されています。ネットワークアドレス(ホストビットがすべてゼロ)はサブネット自体を識別し、ブロードキャストアドレス(ホストビットがすべて 1)はサブネット内の全ホストに一度に到達します。そのため /24 は 2^8 = 256 アドレスを持ちますが、インターフェイスに割り当てられるのは 256 − 2 = 254 だけです。
/31 は何に使いますか? 利用可能ホストがないように見えますが。#
古いルールでは /31 は 2 − 2 = 0 の利用可能ホストになり、使い物になりませんでした。RFC 3021 は /31 をポイントツーポイントリンク(2 台のルーターを直接接続する種類)のために再定義しました。両アドレスが利用可能で、予約ブロードキャストはありません。本ページは RFC 3021 に従うため /31 は利用可能 2 を示します。2000 年以前の機材は依然として古い挙動を期待することがあります。
IPv6 に対応していますか?#
はい、完全に。IPv6 プレフィックスは /128(単一アドレス)まで行き、アドレス演算は BigInt 上で走るため、/48 や /32 のプロバイダブロックでも正確です。IPv6 にはブロードキャストアドレスがなく、レガシークラスもありません。ブロック内のすべてのアドレスが利用可能なため、利用可能数は総数に等しくなります。スコープ欄は ULA(fc00::/7)とリンクローカル(fe80::/10)をプライベートとしてフラグし続けます。
入力した IP と異なるネットワークアドレスが出るのはなぜですか?#
入力した IP はブロックのベースアドレスではなく、ブロック内のホストだからです。ネットワークアドレスは 入力 IP AND ネットマスク であり、ホストビットをゼロにします。192.168.1.130/24 は「192.168.1.0/24 内のホスト .130」を表し、/24 ブロック自体は .0 から始まります。.128 から始まるブロックが欲しいなら、192.168.1.128/25 と書いてください。
なぜ私のアドレスが「プライベート」とマークされるのですか?#
内部利用のために予約され、パブリックインターネットでルーティングされない範囲に入っているためです。IPv4 の 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、または IPv6 の fc00::/7(ユニークローカル)と fe80::/10(リンクローカル)。これらの範囲からのトラフィックは NAT やトンネルなしにはインターネットに届きません。クラウドのセキュリティグループや公開サービスを設定する場合、ほぼ常にパブリックアドレスが必要です。