サブネットマスクの計算
サブネットマスクとは、IPアドレスのネットワークアドレスとホストアドレスを識別するための数値で、このサブネットマスクを使うことによってネットワークを細分化して効率よく使用することが可能になります。
例えば、クラスCに属する次のようなアドレス【192. 168. 1. 0~255】というアドレス空間を、サブネットマスクを使って分割します。
例)テーブル1-1
クラス |
IPアドレス |
|||
IPアドレス |
192 11000000 ネットワーク |
168 101010000 ネットワーク |
1 00000001 ネットワーク |
33 00100001 ホスト |
---|---|---|---|---|
サブネットマスク |
255 11111111 |
255 11111111 |
255 11111111 |
224 11100000 |
サブネットマスクによるIPアドレスの分割は、2進数表示だと理解が簡単になります。
下のテーブルをよく見てみましょう。IPアドレスはサブネットマスクの1の部分が「ネットワークアドレス」、0の部分が「ホストアドレス」になります。したがってサブネットマスクを「255. 255. 255. 224」とすれば第4オクテッドの上の3ビットがサブネットビットになり、それ以下の下5ビットがホストアドレスになります。
例)テーブル1-2
IPアドレス(10進法) | 192. |
168. |
1. |
33 |
クラスC |
---|---|---|---|---|---|
IPアドレス(2進法) | 11000000 | 10101000 | 00000001 | 00100001 | |
サブネットマスク(10進法) | 255 |
255 |
255 |
224 |
(/27) |
サブネットマスク(2進法) | 11111111 | 11111111 | 11111111 | 11100000 |
テーブル1-2においては、第4オクテッドの3ビットをサブネットマスクでネットワークを拡張しているので、この4ビットを自由に入れ替えたIPアドレスがサブネットアドレスになります。つまりこのサブネットアドレスが違うIPアドレス同士では通信を行うことができません。
線で囲んでみると、以下のようになっています。
サブネットの組み合わせとしては以下のようになります
サブネットマスクのビットをすべて並び替えた数がサブネットアドレスとなります。
サブネットアドレス |
使用できるIPアドレス |
ブロードキャストアドレス |
---|---|---|
11100000 = 224 | デフォルトでは使用不可 |
デフォルトでは使用不可 |
11000000 = 192 | 192.168.1.193 ~ 192.168.1.222 |
192.168.1.223 |
10100000 = 160 | 192. 168. 1. 161~ 192. 168. 1. 190 |
192. 168. 1. 191 |
10000000 = 128 | 192. 168. 1. 129~ 192. 168. 1. 158 |
192. 168. 1. 159 |
01100000 = 96 | 192. 168. 1. 97~ 192. 168. 1. 126 |
192. 168. 1. 127 |
01000000 = 64 | 192. 168. 1. 65~ 192. 168. 1. 94 |
192. 168. 1. 95 |
00100000 = 32 | 192. 168. 1. 33~ 192. 168. 1. 62 |
192. 168. 1. 63 |
00000000 = 0 | デフォルトでは使用不可 |
デフォルトでは使用不可 |
通常サブネットアドレスはすべて0と1が使用できません。しかしゼロサブネットと記載があれば使用できます。
上記のIPアドレス192. 168. 1. 33の場合、第4オクテッドの33は32番台のサブネットに当たります。 また、前述のサブネットのテーブル表を見ればわかるように、その組み合わせは、ホスト部がすべて0の場合はサブネットアドレスとなり使用できません。ホスト部がすべて1の場合はブロードキャストアドレスというアドレスに割り当てられており、このアドレスもまたホストのIPアドレスとして使用できません。
00100000 = 32 |
ホストアドレスがすべて0なのでサブネットアドレスとなります。 |
---|---|
00101111 = 63 |
ホストアドレスがすべて1なのでブロードキャストアドレスとなります。 |
サブネットアドレスが異なるIPアドレス同士では通信ができない
サブネットマスク計算の変換
サブネットマスクの計算には以下の変換を記憶しておくと便利です
2進数 | 10進数 |
---|---|
10000000 | 128 |
11000000 | 192 |
11100000 | 224 |
11110000 | 240 |
11111000 | 248 |
11111100 | 252 |
11111110 | 254 |
11111111 | 255 |
サブネット化の例
一つのクラスBのアドレスにおいて、各サブネットにつき60個のIPアドレスを確保できるようにする場合
クラスBのアドレスにおいてホスト部はデフォルトで16ビットほどあるので、この場合においてサブネット化する場合は60個の以上のホストアドレスを確保できるだけのビット数を残して、それ以外のビットをサブネット作成用に借用します。
その数は、
となります。
したがって従来の16ビットマスクにおいて、10ビット分を拡張した26ビットマスクになります。
ゆえに適用するサブネットマスクは255. 255. 255. 192になります。
サブネットの求め方
例として次のような設定を考えます。
IPアドレス | 172.32.2.3 |
デフォルトゲートウェイ | 172.32.2.1 |
ブロードキャストアドレス | 172.32.3.255 |
この設定におけるサブネットマスクを求める手順
まず2進数に変換します。
IPアドレス |
10101100 |
00100000 |
00000010 |
00000011 |
---|---|---|---|---|
デフォルトゲートウェイ |
10101100 |
00100000 |
00000010 |
00000001 |
ブロードキャストアドレス |
10101100 |
00100000 |
00000011 |
11111111 |
のテーブル表から、
図の線を引いた第3オクテッド部分においての7bit目までがマスクになります。
11111111 | 11111111 | 11111110 | 00000000 |
255 | 255 | 254 | 0 |
求めるサブネットマスクは、
またこの導き出したサブネットとIPアドレスによりネットワークアドレスが次のように求まります。
IPアドレス | 10101100 | 00100000 | 00000010 | 00000011 |
掛け算の意味→ | ||||
サブネットマスク | 11111111 | 11111111 | 11111110 | 00000000 |
ネットワークアドレス | 10101100 | 00100000 | 00000010 | 00000000 |
10進数のネットワークアドレス | 172 | 32 | 2 | 0 |