2.

サブネットとサブネットマスクとは|ネットワーク部・ホスト部・AND演算・分割計算を図解

編集
この記事の要点
  • IP アドレスは「ネットワーク部」と「ホスト部」に分かれ、その境界を決めるのがサブネットマスク。
  • 255.255.255.0 (/24) は上位 24 ビットがネットワーク部、下位 8 ビットがホスト部を意味する。
  • IP アドレスとサブネットマスクの AND 演算でネットワークアドレスが求まる。
  • ホスト部が全 0 はネットワークアドレス、全 1 はブロードキャストアドレスで端末には割り当てない。
  • /24 なら 256 個のうち利用可能なホストは 254 台 (256 − 2)。
  • サブネット分割はブロードキャストドメインの縮小、セキュリティ境界、アドレス節約に役立つ。

概要

サブネットとは、ひとつの IP ネットワークを論理的に複数の小さなネットワークへ分割した単位のことです。IPv4 アドレスは 32 ビットの数値で、これを「どこまでがネットワークを表す部分(ネットワーク部)」「どこからが個々の端末を表す部分(ホスト部)」に分けるかという情報がなければ通信先を特定できません。この境界を示すのがサブネットマスクです。

たとえば 192.168.10.25 という IP アドレスに対して、サブネットマスク 255.255.255.0 を組み合わせると、「192.168.10 までがネットワーク部、最後の 25 がホスト部」と解釈されます。同じネットワーク部を持つ端末同士はルータを介さず直接通信でき、異なるネットワーク部の相手へはルータ(デフォルトゲートウェイ)を経由します。サブネットの考え方は、ルーティング・セキュリティ・アドレス管理の土台であり、ネットワーク設計の出発点になります。

仕組み

サブネットマスクは「ネットワーク部のビットを 1、ホスト部のビットを 0」で表現した 32 ビットの値です。255.255.255.0 を 2 進数にすると次のようになります。

サブネットマスク 255.255.255.0
11111111.11111111.11111111.00000000
└────── ネットワーク部 (24bit) ──────┘└ ホスト部 (8bit) ┘

連続する 1 の個数を「プレフィックス長」と呼び、/24 と表記します。ネットワークアドレスは、IP アドレスとサブネットマスクをビット AND 演算することで求まります。AND 演算は「両方が 1 のときだけ 1」になる演算です。

IP アドレス    192.168.10.25  = 11000000.10101000.00001010.00011001
サブネットマスク 255.255.255.0  = 11111111.11111111.11111111.00000000
                                 ───────────────────────────────────  AND
ネットワーク    192.168.10.0   = 11000000.10101000.00001010.00000000

ホスト部のビットがすべて 0 のアドレスがネットワークアドレス(そのネットワーク自体を指す)、すべて 1 のアドレスがブロードキャストアドレス(同一ネットワーク全端末宛て)です。この 2 つは端末に割り当てられないため、ホスト部 n ビットで利用可能なホスト数は 2^n − 2 台になります。

具体例・計算

192.168.10.0/24 のネットワークを 2 つのサブネットに分割する例を見てみましょう。プレフィックスを 1 ビット伸ばして /25 にすると、ホスト部が 8 → 7 ビットになり、ネットワークが 2 つできます。

元: 192.168.10.0/24  (マスク 255.255.255.0,  ホスト 254 台)

/25 に分割 (マスク 255.255.255.128)
┌ サブネット A: 192.168.10.0/25 ─────────────────────┐
│  ネットワークアドレス : 192.168.10.0               │
│  利用可能ホスト範囲   : 192.168.10.1 ~ .126        │
│  ブロードキャスト     : 192.168.10.127             │
│  ホスト数             : 2^7 − 2 = 126 台           │
└────────────────────────────────────────────────────┘
┌ サブネット B: 192.168.10.128/25 ───────────────────┐
│  ネットワークアドレス : 192.168.10.128             │
│  利用可能ホスト範囲   : 192.168.10.129 ~ .254      │
│  ブロードキャスト     : 192.168.10.255             │
│  ホスト数             : 126 台                     │
└────────────────────────────────────────────────────┘

あるアドレスが属するネットワークを求めたいときも AND 演算で判定できます。たとえば 192.168.10.200 が上記のどちらに属するか。第 4 オクテット 200 は 128 以上なのでサブネット B、ネットワークアドレスは 192.168.10.128 と分かります。プログラムで書くなら次のように 1 行で求められます。

// PHP: ネットワークアドレスを求める
$ip   = ip2long('192.168.10.200');
$mask = ip2long('255.255.255.128');
echo long2ip($ip & $mask);  // 192.168.10.128

主な用途

  • ブロードキャストドメインの縮小 — 同一サブネット内の端末が増えるとブロードキャスト通信(ARP など)が増え、帯域と CPU を浪費します。部署や用途ごとにサブネットを分けると影響範囲を限定できます。
  • セキュリティ境界 — サブネット単位でファイアウォールや ACL を適用し、サーバ用・社内 PC 用・ゲスト Wi-Fi 用などをネットワークレベルで分離します。
  • アドレスの効率利用 — 必要なホスト数に応じたサイズのサブネットを切ることで、IP アドレスの無駄を減らします(後述の VLSM)。
  • ルーティングの単純化 — サブネットごとにルートを集約することで、ルーティングテーブルを小さく保てます。

関連技術との比較

項目サブネットマスク表記CIDR (プレフィックス) 表記クラスフル
境界の指定方法255.255.255.0 のような 4 オクテット/24 のようなビット数先頭ビットで自動決定
柔軟性任意の境界を指定可任意の境界を指定可/8・/16・/24 に固定
可読性長いが直感的短く簡潔明示不要だが無駄が多い
現在の主流GUI 設定で併用標準非推奨(歴史的概念)

注意点・落とし穴

  • ホスト部の全 0・全 1 を端末に割り当てない — ネットワークアドレス/ブロードキャストアドレスを誤って端末に設定すると通信不能になります。
  • マスクの不一致 — 同一セグメント内で端末ごとにサブネットマスクが異なると、片方からは同一ネットワーク・もう片方からは別ネットワークと見え、通信が片方向だけ失敗します。
  • 境界をまたぐ範囲指定の誤り — /25 で分けたのに ACL を /24 で書くと意図しない範囲を許可してしまいます。プレフィックス長を必ず合わせます。
  • 「255.255.255.255」は全ビット 1 のマスク — これは 1 台だけを指す /32 で、ホスト用の通常サブネットではありません。ルートの指定などで使います。

関連リンク

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. IPアドレス
  2. サブネットとサブネットマスク
  3. CIDR表記
  4. IPv6
  5. NAT・NAPT
  6. ポート番号
  7. MACアドレス

最近更新/作成されたページ