サブネットマスク(IPv4)とは|計算方法・CIDR・実務で役立つサブネット設計ガイド

サブネットマスクとは(概要)

サブネットマスク(subnet mask)は、IPv4ネットワークにおいてIPアドレスを「ネットワーク部」と「ホスト部」に分割するためのビットマスクです。サブネットマスクを用いることで、同一のIPアドレス空間がどのネットワークに属するかを判定でき、ルーティングやネットワーク分割(サブネット化)を可能にします。

基本概念:ネットワーク部とホスト部

IPv4アドレスは32ビットで構成され、サブネットマスクも32ビットのビット列です。マスクのビットが1になっている部分が「ネットワーク部」を示し、0になっている部分が「ホスト部」を示します。例えば、マスクが255.255.255.0(/24)の場合、最初の24ビットがネットワーク部、残りの8ビットがホスト部です。

表記方法:ドット区切りとプレフィックス(CIDR)

  • ドット区切り(dotted decimal):例)255.255.255.0

  • プレフィックス長(CIDR表記):例)/24(ネットワーク部が24ビット)

CIDR(Classless Inter-Domain Routing)により、サブネットマスクはプレフィックス長で簡潔に表現されることが一般的です(例:192.0.2.0/24)。CIDRは可変長プレフィックスを用いることでアドレス空間の柔軟な割当てと集約(ルート集約)を可能にします。

具体例:/24 と /16、/30

  • /24(255.255.255.0): ホスト部は8ビット、アドレス数256、通常の利用可能ホスト数は254(ネットワークアドレスとブロードキャストを除く)。例:192.168.1.0/24 → ネットワーク 192.168.1.0、ブロードキャスト 192.168.1.255。

  • /16(255.255.0.0): ホスト部は16ビット、アドレス数65536、通常の利用可能ホスト数は65534。

  • /30(255.255.255.252): ホスト部は2ビット、アドレス数4、通常の利用可能ホスト数は2。LANの小規模接続やポイントツーポイントに用いられることが多い。

ネットワークアドレスとブロードキャストアドレスの計算(AND演算)

指定されたIPアドレスとサブネットマスクをビットごとにAND演算するとネットワークアドレスが得られます。ブロードキャストアドレスはネットワークアドレスのホスト部をすべて1にしたアドレスです。

例:IP 192.168.1.10、マスク 255.255.255.0(/24)

  • IP(2進): 11000000.10101000.00000001.00001010

  • マスク(2進): 11111111.11111111.11111111.00000000

  • AND結果(ネットワーク): 11000000.10101000.00000001.00000000 → 192.168.1.0

  • ブロードキャスト: ホスト部を全て1に → 192.168.1.255

利用可能ホスト数の計算と特殊ケース

ホスト部のビット数をhとすると、総アドレス数は2^h、通常の利用可能ホスト数は 2^h − 2(ネットワークアドレスとブロードキャストアドレスを除外するため)です。ただし例外があります:

  • /31(ホスト部1ビット): 通常はアドレス数2で利用可能ホスト数0となるが、RFC 3021によりポイントツーポイントリンクにおいて/31を2つのホストアドレスとして使用することが認められる。これによりアドレスの節約が可能。

  • /32(ホスト部0ビット): 単一ホストを示す。ルーティングや特殊なホスト指定(loopbackや個別ルート)で使われる。

クラスフルとクラスレス:歴史的背景と現在の運用

初期のIPv4ではA/B/Cといった「クラスフル」アドレス方式が使われ、クラスごとに固定のデフォルトマスクが存在しました(例:クラスCは/24)。しかしアドレスの効率的利用の必要からCIDR(クラスレス)が導入され、可変長サブネットマスク(VLSM)を使ってより細かい分割や集約が行われます。現在はCIDRが標準的です。

サブネット化(サブネットデザイン)の基本手順

  1. 必要なサブネット数と各サブネットごとの必要ホスト数を洗い出す。

  2. それぞれのサブネットに対し、必要ホスト数に見合う最小のホストビット数を決め、対応するプレフィックス長を算出する(2^h − 2 ≥ 必要ホスト数)。

  3. 親ネットワークのアドレス空間から重複しないように各サブネットのネットワークアドレスを割り当てる(VLSMを用いて効率的に割当て)。

  4. ルーティング(静的または動的)でサブネット間通信を確立する。

サブネットゼロとオールワンの扱い

歴史的にはサブネット0(全てのサブネットビットが0)やオールワン(全て1)は予約されていたため使用が制限されることがありましたが、現代の機器や標準ではこれらは通常使用可能です。ただし古い機器や特殊な実装では制限がある場合があるので確認が必要です。RFCやベンダー文書での挙動を確認してください。

ワイルドカードマスク(Cisco系)

Ciscoなど一部の機器やACL設定では「ワイルドカードマスク」(サブネットマスクのビット反転)を使用します。ワイルドカードマスクは「0が一致、1が無視」の意味を持ち、アクセスリストやルーティング記述でよく使われます。例:サブネットマスク255.255.255.0 → ワイルドカード 0.0.0.255。

実務でのよくある用途と最適化

  • 小規模LAN:/24(254ホスト)をよく利用。管理の簡便さから標準的。

  • ポイントツーポイント回線:/30(従来)や/31(RFC 3021を採用する場合)を利用してアドレスを節約。

  • ルート集約(スーパーネット):複数の連続するサブネットを1つの集約経路でまとめることでルーティングテーブルを削減。

  • VLANごとの分割:セキュリティやトラフィック制御のためにサブネットごとにVLANを分ける設計が一般的。

計算ツールとコマンド

手作業での計算は学習に有効ですが、実運用ではツールを使うことが多いです。代表的なコマンドやツール:

  • Linux/Unix: ip addr show, ipcalc(ipcalcコマンドやオンラインのIP計算ツール)

  • Windows: ipconfig /all、PowerShellのIPアドレス計算スクリプト

  • オンラインIPサブネット電卓やネットワーク設計ツール(Webベースやアプリ)

注意点・トラブルシューティング

  • マスクの誤設定は通信不通の原因になる(異なるサブネットのはずが同一と誤認される、逆に同一サブネットなのに別と認識される)。

  • 異なるデバイス間でマスク表記(ドット表記とCIDR)やワイルドカードの解釈を間違えると設定ミスを招く。

  • 古い機器の互換性やルータのデフォルト設定(例えばサブネットゼロの扱い)を確認する。

  • NATやファイアウォールの設計時には内部サブネットの設計がセキュリティやスケールに影響する。

まとめ

サブネットマスクはIPv4ネットワーク設計の基本であり、ネットワーク部とホスト部の分割、ネットワーク・ブロードキャストアドレスの算出、サブネットの効率的割当てなどに不可欠です。CIDRやVLSMの導入により、アドレスの柔軟で効率的な配分が可能になっています。実務ではプレフィックス長の理解、ビット演算(AND)の習得、特殊ケース(/31, /32やサブネットゼロの扱い)の把握が重要です。

参考文献