IPアドレスとサブネットマスク

サブネットマスク(subnet mask)というものがあります

サブネットマスクとは、ネットワーク部がどこからどこまでかを定義する数値です。

IPアドレスは、「ネットワーク部」と「ホスト部」からできています。
ponsuke-tarou.hatenablog.com

その「ネットワーク部」がどこからどこまでかを定義する32ビットの数値です。

そもそもサブネットというのは、小さく分割したネットワークです。

大きなネットワークを複数の小さなネットワークに分割して管理する際の管理単位となる小さなネットワーク。
e-words.jp

例えば、「Cクラスを使うにはホストが多すぎる」が「Bクラスを使うにはホストが少なすぎる」
こんな場合「Bクラスを小さなネットワークに分割」してその1つを使えばちょうどいい。
この小さなネットワークがサブネットです。

サブネットにするから「ネットワーク部」がクラスとは変わります。

上記の例でいくと「Bクラスを小さなネットワークに分割」したので「Bクラスのネットワーク部」とは違う「ネットワーク部」になります。

そうなると、どこからどこまでが「ネットワーク部」かわからなくなります。

そこで、

どこからどこまでが「ネットワーク部」かわかるようにするのにサブネットマスクがある

のです。

Aクラスのサブネットマスク
2進数で、11111111 00000000 00000000 00000000

Bクラスのサブネットマスク
2進数で、11111111 11111111 00000000 00000000

Cクラスのサブネットマスク
2進数で、11111111 11111111 11111111 00000000

サブネットマスクで「ネットワーク部」をわかるには見方があります。

サブネットマスクを2進数でみると先頭から途中まで「1」が連続しています。

「1」が連続している範囲が、「ネットワーク部」です。
「0」が連続している範囲が、「ホスト部」です。

先程の「例えば」で考えます。

「Cクラスを使うにはホストが多すぎる」が「Bクラスを使うにはホストが少なすぎる」
こんな場合「Bクラスを小さなネットワークに分割」してその1つを使えばちょうどいい。
「Bクラスを小さなネットワークに分割」したので「Bクラスのネットワーク部」とは違う「ネットワーク部」になります。

「Bクラスを小さなネットワークに分割」して
11111111 11111111 11111100 00000000
となるサブネットマスクを使うネットワークに繋がるIPアドレス「255.255.255.1」のホストがあるとします。
ピンクの部分がBクラスより小さくネットワークを分割しています。
※. このサブネットにすると1024個のホストを繋げられます。大きい会社だと1つの部署の社員分ぐらいありますね。
この「ネットワーク部」を見てみます。

① ホストのIPアドレスを2進数にします。

11111111 11111111 11111111 00000001

サブネットマスクと見比べます。

11111111 11111111 11111111 00000001
11111111 11111111 11111100 00000000

③ 2つをAND演算(論理積)します。

結果は、11111111 11111111 11111100 00000000 です。
「ネットワーク部」は、11111111 11111111 11111100 00000000 です。

④ 2つをOR演算(論理和)します。

結果は、00000000 00000000 00000011 00000001 です。
ホスト部」は、00000000 00000000 00000011 00000001 です。

⑤ 10進数に戻します。

結果は、255.255.252.0
「ネットワーク部」は、255.255.252.0です。
ホスト部」は、0.0.3.128です。

というかんじでサブネットマスクを使います。

サブネットマスクの10進数表記

サブネットマスクは2種類の10進数表記があります。

CIDR表記

例えば、255.255.252.0/14

フォーマット:xxx.xxx.xxx.xxx/xx
「/」の前にある「xxx.xxx.xxx.xxx」にはサブネットマスクの10進数を記載します。
「/」の後ろにある「xx」にはネットワーク部のビット数を記載します。

IPアドレスサブネットマスクを併記する表記

例えば、255.255.255.1/255.255.252.0

フォーマット : xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx
「/」の前にある「xxx.xxx.xxx.xxx」にはホストに割当てられたIPアドレスの10進数を記載します。
「/」の後ろにある「xxx.xxx.xxx.xxx」にはサブネットマスクの10進数を記載します。