サブネットマスク
サブネットマスクとは、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進数表記にすると次のように表されます。
前方の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」のネットワークアドレス、ブロードキャストアドレス、ホストに使用できるアドレスの範囲を求めなさい。
サブネットマスクからネットワークアドレスの求め方
ネットワークアドレスの求め方は次の通り
- サブネットマスク「255.255.252.0」を2進数に変換する
- 同様にIPアドレス「172.30.123.45」も2進数に変換する
- IPアドレスとサブネットマスクとの論理積(AND)を求める
- 求めた結果を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 |