ネットワーク

サブネットマスクとは | 分かりやすく図解で解説

2020年1月28日

サブネットマスク

サブネットマスクとは、IPアドレスのうち「ネットワークアドレス」と「ホストアドレス」を識別するための数値です。(※IPv4の場合は32ビット、IPv6の場合は128ビットの数値)

ネットワークアドレスとホストアドレス

ネットワークアドレスとは、ネットワークに付与されているIPアドレス、そして ホストアドレスはネットワーク内のコンピュータ(ネットワーク機器)に付与されているIPアドレスです。

私たちの生活で例えると、ネットワークアドレスは地域(東京都××区、大阪府××市など)、ホストアドレスとは番地(×番地1-2、×番地1-3など)のイメージと同じです。

それでは、どのように「ネットワークアドレス」と「ホストアドレス」が付与されるか具体例を見ていきます。

サブネットマスク

上記図の例では、ネットワークAとネットワークBに付与されているIPアドレスが「ネットワークアドレス」、各ネットワーク内の機器に付与されているIPアドレスが「ホストアドレス」です。

名称 IPアドレスの種類 IPアドレス サブネットマスク
ネットワークA ネットワークアドレス 192.168.10.0 255.255.255.0
ルータA ホストアドレス 192.168.10.1 255.255.255.0
PC1 ホストアドレス 192.168.10.2 255.255.255.0
PC2 ホストアドレス 192.168.10.3 255.255.255.0
ネットワークB ネットワークアドレス 210.171.136.0 255.255.255.192
ルータB ホストアドレス 210.171.136.1 255.255.255.192
PC3 ホストアドレス 210.171.136.2 255.255.255.192
PC4 ホストアドレス 210.171.136.3 255.255.255.192

スポンサーリンク

サブネットマスクの定義(IPv4)

IPアドレス「192.168.10.1 /24」を例にサブネットマスクの定義について説明していきます。まず IPアドレス「192.168.10.1 /24」を2進数表記にすると次のように表されます。

10進数を2進数に変換

前方の24ビットが「ネットワーク部」、後方の8ビットが「ホスト部」です。「192.168.10.1 /24」のIPアドレスの後ろについている「/24」はネットワーク部とホスト部の境界線を表しています

この場合、サブネットマスクは「ネットワーク部」を1、「ホスト部」を0とし、10進数表記に戻します。

サブネットマスクの表記

その結果、サブネットマスクは「255.255.255.0」となります。

サブネットマスクは

  • IPアドレス:192.168.10.1
  • サブネットマスク:255.255.255.0

※255がネットワーク部、0がホスト部

もしくは

  • IPアドレス:192.168.10.1 /24

※先頭から24ビットがネットワーク部、残り8ビットがホスト部

と表現します。

なぜサブネットマスクが必要なのか?

従来IPアドレスは「クラスフル方式」と呼ばれる方式を採用しており、ネットワーク部とホスト部の境界線を固定していました。

クラス アドレス範囲 用途/ネットワーク部の範囲 割り当て可能なホスト数
クラスA 0.0.0.0 - 127.255.255.255 先頭8ビットがネットワーク部 16777214
クラスB 128.0.0.0 - 191.255.255.255 先頭16ビットがネットワーク部 65534
クラスC 192.0.0.0 - 223.255.255.255 先頭24ビットがネットワーク部 254
クラスD 224.0.0.0~239.255.255.255 IPマルチキャスト用 -
クラスE 240.0.0.0~255.255.255.255 予約済み・未使用 -

しかし、この方式だと割り当て可能なパターンが3種類しかなく、割り当てられたものの使われずに放置されるアドレスが大量に発生するというデメリットがありました。

この問題を解消したのがサブネットマスクです。サブネットマスクを使い「ネットワーク部」と「ホスト部」の境界を自由に変更することを可能とした「クラスレス方式」が、現在では一般的に利用されています。

例えば100人分のIPアドレスが必要な企業に対して、クラスC「192.10.1.0」のネットワークアドレスを提供するとします。

クラスフル方式ではホスト部の数が決まっているので一番小さいクラスCを利用しても「254-100=154」と154個のIPアドレスが使われずに無駄になってしまいます。

■クラスフル方式

使用可能なホストアドレスの範囲 アドレス数
192.10.1.1~192.10.1.254 IPアドレス数:256 (ホストアドレス数:254)

※ネットワークアドレスとブロードキャストアドレスがあるため、利用可能なホスト数はこの値から2を引いた値。

スポンサーリンク

しかし、クラスレス方式を利用すれば「126-100=26」と無駄なIPアドレスは26個と、クラスフル方式より効率が良いのが分かります。

■クラスレス方式

サブネットマスク 使用可能なホストアドレスの範囲 アドレス数
255.255.255.128 192.10.1.1~192.10.1.126 IPアドレス数:128 (ホストアドレス数:126)

※ネットワークアドレスとブロードキャストアドレスがあるため、利用可能なホスト数はこの値から2を引いた値。

サブネットマスクの計算方法

[問題]

IPアドレス「172.30.123.45」、サブネットマスク「255.255.252.0」のネットワークアドレス、ブロードキャストアドレス、ホストに使用できるアドレスの範囲を求めなさい。

サブネットマスクからネットワークアドレスの求め方

ネットワークアドレスの求め方は次の通り

  1. サブネットマスク「255.255.252.0」を2進数に変換する
  2. 同様にIPアドレス「172.30.123.45」も2進数に変換する
  3. IPアドレスとサブネットマスクとの論理積(AND)を求める
  4. 求めた結果を10進数に戻す

まずサブネットマスク「255.255.252.0」を2進数に変換。

11111111 11111111 11111100 00000000

次にIPアドレス「172.30.123.45」を2進数に変換します。

10101100 00011110 01111011 00101101

最後に2つの2進数の論理積を求めます。

論理和

論理積の結果が「10101100 00011110 01111000 00000000」

これを10進数に戻すと「172.30.120.0

これがネットワークアドレスです。

サブネットマスクからブロードキャストアドレスの求め方

ブロードキャストアドレスは、先ほど求めたネットワークアドレスのホスト部を全て1に変換します。

ネットワークアドレスが「10101100 00011110 01111000 00000000」

これのホスト部を全て1に変えると「10101100 00011110 01111011 11111111」

これを10進数に戻すと「172.30.123.255

これがブロードキャストアドレスです。

サブネットマスクからホストに使用できるアドレスの範囲を求める

ネットワークアドレスとブロードキャストアドレスを求めることができれば、ホストに使用できるIPアドレスの範囲が分かります。

ネットワークアドレスが「172.30.120.0」、ブロードキャストアドレスが「172.30.123.255」なので、ホストに使用できるIPアドレスは「172.30.120.1 ~ 172.30.123.254」です。

スポンサーリンク

サブネットマスク計算 早見表

クラス サブネットマスク IPアドレスの数
クラスA /8 255.0.0.0 16,777,216
/9 255.128.0.0 8,388,608
/10 255.192.0.0 4,194,304
/11 255.224.0.0 2,097,152
/12 255.240.0.0 1,048,576
/13 255.248.0.0 524,288
/14 255.252.0.0 262,144
/15 255.254.0.0 131,072
クラスB /16 255.255.0.0 65,536
/17 255.255.128.0 32,768
/18 255.255.192.0 16,384
/19 255.255.224.0 8,192
/20 255.255.240.0 4,096
/21 255.255.248.0 2,048
/22 255.255.252.0 1,024
/23 255.255.254.0 512
クラスC /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
/31 255.255.255.254 2
/32 255.255.255.255 1

helpful