お盆です。
夏休みはなんだか主婦は忙しい・・・。お花を買ったり天ぷら作ったりお墓掃除したり・・・。
化粧するのも面倒で、ついついマスクと日除けのサングラスで顔面をマスクして変装(笑)。
というわけで、今日は「サブネットマスク」についてお勉強します。
この記事で分かること(目次)
1. サブネットマスクとは?
IPアドレスは「ネットワーク部」と「ホスト部」に分かれています。
この境界を示すのがサブネットマスクです。
例:
IPアドレス:192.168.1.10
サブネットマスク:255.255.255.0
この場合、
- ネットワーク部:192.168.1
- ホスト部:最後の「10」
2. なぜ必要?
大きなネットワークを小さく分割(サブネット化)することで、
- セキュリティ向上(他のセグメントからアクセス制限できる)
- 通信効率アップ(不要なブロードキャスト削減)
ができます。
3. ネットワークアドレス計算のコツ
ネットワークアドレスは、
IPアドレス AND サブネットマスク
で求めます(ビットごとにAND演算)。
例:
192.168.1.10 (11000000.10101000.00000001.00001010)
255.255.255.0 (11111111.11111111.11111111.00000000)
--------------------------------------------------
192.168.1.0 (11000000.10101000.00000001.00000000)
→ ネットワークアドレスは 192.168.1.0
おっとっと、ここで復習。「AND演算」とはなんだった?
AND(論理積)演算とは、両方が1のときだけ1、それ以外は0になる計算です。
| ビット1 | ビット2 | AND結果 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
コンピュータは、IPアドレスやサブネットマスクを「2進数(0と1の組み合わせ)」で扱います。
<補足> IPアドレスとサブネットマスクの関係
- IPアドレス:その機器の住所のようなもの(例:192.168.1.130)
- サブネットマスク:ネットワーク部分とホスト部分を区切るためのマスク(例:255.255.255.0)
サブネットマスクでは、
0 の部分 → ホスト部分(機器ごとに異なる)
を表します。
1 の部分 → ネットワーク部分(固定)
なので、これをもとに以下を考えると・・・
192.168.1.10 (11000000.10101000.00000001.00001010)
255.255.255.0 (11111111.11111111.11111111.00000000)
--------------------------------------------------
192.168.1.0 (11000000.10101000.00000001.00000000)
→ ネットワークアドレスは 192.168.1.0 になります。
4. 試験で問われるポイント
- ネットワークアドレスとブロードキャストアドレスの計算
- 利用可能なホスト数の算出(
2^(ホスト部のビット数) - 2) - CIDR表記(例:192.168.1.0/24)
午後問題では「与えられたIPアドレスがどのサブネットに属するか」を求める出題が多いようです。
過去問題風(午後試験形式)
問題
ある企業ネットワークでは、IPアドレス空間 192.168.20.0/26 を利用している。
サブネットマスクは 255.255.255.192 である。
このネットワーク内で、サーバ用にIPアドレス 192.168.20.70 を割り当てる計画がある。
(1) このIPアドレスが属するネットワークアドレスを答えよ。
(2) このサブネットで利用可能なホストアドレスの範囲を答えよ。
(3) 利用可能なホスト数を答えよ。
解答・解説
(1)
192.168.20.70
サブネットマスク 255.255.255.192 (/26)
1オクテット目:192.168.20(固定)
4オクテット目:
- 255.255.255.192 → 192 = 11000000 → 境界は64単位
- 70 ÷ 64 = 1 余り6 → ネットワークアドレスは 192.168.20.64
(2)
ブロードキャストアドレスは64の次のネットワーク開始 – 1 = 192.168.20.127
利用可能範囲は
192.168.20.65 ~ 192.168.20.126
(3)
ホスト部は 6ビット(32-26=6)
2^6 - 2 = 62
→ 利用可能ホスト数は 62台
ところで、「オクテット」とは?
- オクテットは、**8ビット(8つの0や1)**をひとまとめにした単位です。
- 「バイト(byte)」とほぼ同じ意味で使われますが、1バイト=8ビットということを明確にするために、通信やネットワークの分野では「オクテット」という言葉がよく使われます。(昔はバイトの大きさがコンピュータによって違っていたため)
- octはラテン語で「8」を意味します。
ビットとオクテットの関係
1ビット = 0 または 1 の1桁
8ビット = 1オクテット(1バイト)
図で表すとこうなる
[ 1ビット ] : 0
[ 1ビット ] : 1
[ 1ビット ] : 0
[ 1ビット ] : 1
[ 1ビット ] : 0
[ 1ビット ] : 0
[ 1ビット ] : 1
[ 1ビット ] : 1
---------------------------
合計8ビット = 1オクテット
ネットワークでの使われ方の例
- IPアドレス(IPv4)は 4つのオクテット で構成されています。
- 例えば
192.168.0.1は192(オクテット1) 168(オクテット2) 0 (オクテット3) 1 (オクテット4)
📌 オクテットのまとめ
- オクテット = 8ビット
- ネットワーク分野で特に使われる言葉
- バイトとほぼ同じだが、あえて「8ビットであること」を明確にしたいときに使う
過去問例2:基本情報技術者 平成29年 秋期 午前 問35
こちらも先ほどと同様に「IPアドレス AND サブネットマスク」で求めるタイプの問題です。
問題文
次の IPアドレス と サブネットマスク をもつPC がある。このPCのネットワークアドレスとして、適切なものはどれか。
IPアドレス:10.170.70.19
サブネットマスク:255.255.255.240
選択肢:
- ア:10.170.70.0
- イ:10.170.70.16
- ウ:10.170.70.31
- エ:10.170.70.255
出典:基本情報技術者試験ドットコム
正解:イ(10.170.70.16)
なぜなら、サブネットマスク 255.255.255.240 は末尾ビットが 11110000(/28)。
IPのホスト部(下位4ビット)を全て 0 にすると得られるアドレスがネットワークアドレスとなります。
問題の要点
- IP アドレスの例:10.170.70.19
- サブネットマスク:255.255.255.240(/28)
ビット演算の進め方
- サブネットマスクを 2進数表現 → ネットワーク部が 28ビットと判定
- IPアドレスの下位4ビット(ホスト部)を全て0にする処理
図解(色分け可)
IP: 00001010 . 10101010 . 01000110 . 00010011 (10.170.70.19)
Mask: 11111111 . 11111111 . 11111111 . 11110000 (255.255.255.240)
AND ------------------------------------------------
00001010 . 10101010 . 01000110 . 00010000 → 10.170.70.16
選択肢から選ぶ
- 正解は イ:10.170.70.16
まとめポイント
- サブネットマスクの2進数ビット数(/28など)をすぐに読み取る習慣
- 下位ビットを「全部0にすれば」ネットワークアドレス
ちなみに「/28」という表記はなに??
「/28」という表記は CIDR表記(Classless Inter-Domain Routing)と呼ばれるもので、
サブネットマスクの 1(ビット)で立っている部分の数 を表しています。
サブネットマスクの例
サブネットマスク 255.255.255.240 を2進数にすると:
255 . 255 . 255 . 240
11111111.11111111.11111111.11110000
ここで、左から 1が28個 並んでいます。
だから /28 と書くのです。
ポイント整理
/24→ 255.255.255.0 (最初の24ビットが1)/26→ 255.255.255.192 (最初の26ビットが1)/28→ 255.255.255.240 (最初の28ビットが1)
つまり、
「/28」と書かれていたら「サブネットマスクは 255.255.255.240 のことだな」とすぐに分かる仕組みです。
実用的な理解
/28→ ホスト部が 4ビット 残る(32 − 28 = 4)- 2^4 = 16 通りのアドレスが作れる
- そのうち ネットワークアドレスとブロードキャストアドレスを除くと 14台のホストが利用可能
✅ まとめると、
「/28」とは、サブネットマスクで「1が28個ある」ことを表す省略記法
であり、
残りのビット(ホスト部)がいくつあるかが分かるので、ホスト数や範囲をすぐに計算できる 便利な表記です。
