基本情報技術者 2016年 秋期 午前(科目A) 問33
問題文
2台のPCにIPv4アドレスを割り振りたい。サブネットマスクが255.255.255.240のとき、両PCのIPv4アドレスが同一サブネットに所属する組合せはどれか。
選択肢
ア:192.168.1.14と192.168.1.17
イ:192.168.1.17と192.168.1.29(正解)
ウ:192.168.1.29と192.168.1.33
エ:192.168.1.33と192.168.1.49
IPv4アドレス割り振り:サブネットマスク255.255.255.240で同一サブネット判定【午前2 解説】
要点まとめ
- 結論:255.255.255.240 はプレフィックス長 /28(最下位オクテットのブロック幅16)で、同一ブロック内なら同一サブネットになります。
- 根拠:ブロック幅は 。ネットワークは下位オクテットが 0,16,32,48… の区間で分かれ、各区間に 16 アドレス(うち14はホスト)含まれます。
- 差がつくポイント:各 IP の最下位オクテットを 16 で割って切り捨てた結果(つまり )が一致するかを即座に確認するとミスが減ります。
正解の理由
サブネットマスク 255.255.255.240 は /28 に相当し、ホスト部は下位 4 ビットでブロック幅は 16(アドレス単位)です。
192.168.1.17 と 192.168.1.29 の最下位オクテットはそれぞれ 17 と 29 で、どちらも 〜 のブロック(ネットワークアドレス 192.168.1.16、ブロードキャスト 192.168.1.31)に含まれるため、両者は同一サブネットに所属します。したがって選択肢の中で正しいのは イ です。
192.168.1.17 と 192.168.1.29 の最下位オクテットはそれぞれ 17 と 29 で、どちらも 〜 のブロック(ネットワークアドレス 192.168.1.16、ブロードキャスト 192.168.1.31)に含まれるため、両者は同一サブネットに所属します。したがって選択肢の中で正しいのは イ です。
よくある誤解
- サブネットマスクを「ホスト数だけ」で判断してしまい、ブロック境界(例:16の倍数)を見落とすことがあります。
- 各オクテットを個別に見る癖で、ネットワーク計算をビット単位で確認せずに誤答する場合があります。
- 「.0 と .255 の扱い」など旧来のルールを混同し、ブロードキャスト/ネットワークアドレスの扱いを誤解することがあります。
解法ステップ
- サブネットマスク 255.255.255.240 をプレフィックス長に変換:/28(下位ビット数 4)。
- ブロック幅を計算:。サブネットは最下位オクテットで 0,16,32,48,... の区間。
- 各 IP の最下位オクテットをブロック幅で切り捨て()してネットワークアドレスを求める。
- 2 つのネットワークアドレスが一致すれば同一サブネット、異なれば異サブネット。
具体例:192.168.1.17 → (ネットワーク 192.168.1.16)
192.168.1.29 → (同上)
192.168.1.29 → (同上)
選択肢別の誤答解説
- ア: 192.168.1.14 と 192.168.1.17 — 14 は 0〜15 ブロック(ネットワーク 192.168.1.0)、17 は 16〜31 ブロック(192.168.1.16)で異サブネット。
- イ: 192.168.1.17 と 192.168.1.29 — 両方とも 16〜31 ブロックに属し、ネットワークは 192.168.1.16 で一致するため同一サブネット(正解)。
- ウ: 192.168.1.29 と 192.168.1.33 — 29 は 16〜31 ブロック(192.168.1.16)、33 は 32〜47 ブロック(192.168.1.32)で異サブネット。
- エ: 192.168.1.33 と 192.168.1.49 — 33 は 32〜47 ブロック(192.168.1.32)、49 は 48〜63 ブロック(192.168.1.48)で異サブネット。
補足コラム
- /28(255.255.255.240)のサブネットごとのアドレス分布:各サブネットは 16 アドレスを持ち、ネットワークアドレス(最初)とブロードキャスト(最後)を除く 14 が利用可能なホスト数です。
例:192.168.1.16/28 → ネットワーク 192.168.1.16、ホスト 192.168.1.17〜192.168.1.30、ブロードキャスト 192.168.1.31。 - 実務では CIDR 表記(/28)を使うと計算やドキュメントが簡潔になります。
- すばやい判定方法:下位オクテット同士にサブネットマスクの下位オクテット(この場合 240 を)ビット演算(AND)して比較すればネットワーク一致を判定できます。
コード例(確認用)
def same_subnet(ip1, ip2, mask='255.255.255.240'):
import ipaddress
n1 = ipaddress.IPv4Network(f"{ip1}/{mask}", strict=False)
n2 = ipaddress.IPv4Network(f"{ip2}/{mask}", strict=False)
return n1.network_address == n2.network_address
print(same_subnet('192.168.1.17', '192.168.1.29')) # True
print(same_subnet('192.168.1.14', '192.168.1.17')) # False
FAQ
Q1: 255.255.255.240 は何ビットがホスト部ですか?
A1: 下位 4 ビットがホスト部(/28)、ビット数で表すとホスト部は 4 ビットです。
A1: 下位 4 ビットがホスト部(/28)、ビット数で表すとホスト部は 4 ビットです。
Q2: ブロードキャストアドレスはどれになりますか?
A2: 該当サブネットの最後のアドレスがブロードキャストです。例えば 192.168.1.16/28 のブロードキャストは 192.168.1.31 です。
A2: 該当サブネットの最後のアドレスがブロードキャストです。例えば 192.168.1.16/28 のブロードキャストは 192.168.1.31 です。
Q3: もっと早く判定するコツは?
A3: 下位オクテットだけ見て、ブロック幅(ここでは16)の境界で切り捨てるか、ビット演算(AND)でネットワーク部を比較すると速いです。
A3: 下位オクテットだけ見て、ブロック幅(ここでは16)の境界で切り捨てるか、ビット演算(AND)でネットワーク部を比較すると速いです。
関連キーワード: サブネットマスク、/28、ブロック幅、ネットワークアドレス、ブロードキャスト、CIDR、IPアドレス、ビット演算、ホスト数

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

