NW屋的日常徒然日記

ネットワークを専門にする元社内SEの日常とITネタ諸々を綴って行きます。

医療情報技師が狙う基本情報技術者試験対策「サブネットマスク」

 こんばんは。先日の医療情報技師検定試験合格発表を受けて、「参考になった」というありがたい意見を頂戴しました。微力ながらもお役に立てて嬉しい限りです。

 次の目標として基本情報技術者試験を受験される方もおられるかと思います。そのような方々に向けて少し書いてみます。いよいよ試験自体が明後日に迫ってきました。

 今日はサブネットマスクについて少し書いて見ます。基本情報を受験される方にお話をうかがうと「ネットワークが苦手だ」とか、「2進数が苦手だ」という風におっしゃる方がおられます。そこで、両方の要素を包含するサブネットマスクについて簡単に触れてみます。

 パソコンのネットワーク設定で、以下のような項目を見たことがありませんか?

IPアドレス      : 192.168.1.1

サブネットマスク   :255.255.255.0

デフォルトゲートウェイ:192.168.1.254

 自宅のパソコンやスマホタブレットだとDHCP(自動取得)なので、設定しないと思いますが、職場のパソコンだと設定させられたりすることはあるかと思います。

 「自分の属するネットワーク内に存在する端末向けには直接通信する。異なるネットワークに存在する端末へはデフォルトゲートウェイに転送する。」ということになります。では、自分の属するネットワークかそうでないかはどうやって判断するのでしょうか?

 そこで登場するのがサブネットマスクです。この場合は分かりやすいですが、第3オクテット(192.168.1.)まで一致していれば同じネットワークです。そうでなければ違うネットワークになります。(たとえば、192.168.2.1宛)

 もし、サブネットマスクが255.255.254.0だったらどうなるでしょうか?上記のように第3オクテットまで一致していれば同じネットワークというわけには行きません。

 ここで登場するのが2進数です。255.255.255.0の各オクテットを2進数で表現すると以下のようになります。

11111111 11111111 11111111 00000000 という風になります。同じように上記のIPアドレスを2進数で表現してみます。

11000000 10101000 00000001 00000001 となります。

 この2つを並べてみます。そして、この2つのand(論理積)を取ってみます。2進数のand

とは、1と1の場合のみ1になって、それ以外の組み合わせ(0と0,0と1,1と0)では0になります。

 では、この2つのandを取ります。

11000000 10101000 00000001 00000001

11111111 11111111 11111111 00000000

-------------------------------------------------

11000000 10101000 00000001 00000000

 

 これを10進数表現に戻すと、192.168.1.0になります。これをネットワークアドレスと呼びます。この値が一致するかどうかで判断しています。この場合、第3オクテットの値が00000001以外だとネットワークアドレスが192.168.1.0にならないのは分かりますね。

 では、サブネットマスクが255.255.254.0だとどうなるでしょうか?サブネットマスクの第3オクテットの値が変わってますね。

11000000 10101000 00000001 00000001

11111111 11111111 11111110 00000000

-------------------------------------------------

11000000 10101000 00000000 00000000

 

 ネットワークアドレスは192.168.0.0になります。たとえば192.168.0.1も同じネットワークになるということですね。ブロードキャストアドレスは192.168.1.255になります、サブネットマスクの0の数でサブネットマスク内で使える端末の値が出てきます。

 ただし、ネットワークアドレスとブロードキャストアドレスを差し引く必要があるので、実際は2を引いた値になります。サブネットマスク255.255.255.0の場合は1〜254までの254台、255.255.254.0の場合は0が9つあるので、2^9=512で2を引くことにより510台になります。

 いかがでしたでしょうか?明後日基本情報を受験される方の少しでもお役に立てればということで…。<(_ _)>