応用情報技術者 2023年 秋期 午前2 問34
問題文
サブネットマスクが 255.255.252.0のとき、IPアドレス172.30.123.45のホストが属するサブネットワークのアドレスはどれか。
選択肢
ア:172.30.3.0
イ:172.30.120.0(正解)
ウ:172.30.123.0
エ:172.30.252.0
🔒 解説は解答すると表示されます
サブネットワークの算出【午前2解説】
正解の理由
IPアドレス 172.30.123.45 に対してサブネットマスク 255.255.252.0 を適用すると、ネットワーク部は第一・第二バイトがそのまま、第三バイトはマスクとのAND演算結果を用い、第四バイトはホスト部なので全て0にしてネットワークアドレスを求めます。具体的には第三バイトは 123 AND 252 = 120 となるため、ネットワークアドレスは 172.30.120.0 になります。したがって正しい選択肢は イ です。
解法ステップ
- サブネットマスクをオクテットごとに書く:255.255.252.0
第三オクテット(252)の2進表記は 11111100(8ビット表記)。 - IPアドレスの第三オクテット 123 を8ビットで表す:01111011
- 1〜2バイト目はそのまま使用、3バイト目はマスクとAND演算を行い、4バイト目は0にする。
- 第三バイトのAND演算:01111011 (123) AND 11111100 (252) = 01111000 (120)
- 各オクテットを組み合わせてネットワークアドレスを得る:172.30.120.0
補足計算(ブロックサイズ):
- 第三オクテットのブロック幅は 。よって第三オクテットは 0,4,8,...,120,124,... のように4刻みの境界を持ち、123 は 120〜123 のブロックに含まれる。
選択肢別の誤答解説
- ア: 172.30.3.0
第三オクテットが 3 になっており、/22 ブロック(第三オクテットが4刻み)に合致しません。3 はブロック境界(0,4,8,...)ではないため誤りです。 - イ: 172.30.120.0
正しい。上記の通り 123 AND 252 = 120 となり第四オクテットは0にするためネットワークアドレスは 172.30.120.0 です。 - ウ: 172.30.123.0
第三オクテットをそのまま使い、第四オクテットだけ0にした形です。マスクが第三オクテットにもネットワークビットを含むため、第三オクテットに対してもAND演算を行わなければならず誤りです。 - エ: 172.30.252.0
第三オクテットが 252 になっていますが、これはマスクの値を第三オクテットと誤認した結果か、別のネットワーク境界を想定したものです。実際のネットワークは 120 であり不適切です。
よくある誤解
- マスクが 255.255.252.0 のとき第三オクテットはそのままネットワーク部ではないと誤解する。実際は第三オクテット上位6ビットがネットワーク部であり、必ずAND演算を行う必要があります。
- AND演算の2進表記で先頭の0を省略してしまう(例:'1111000' と記載)。8ビット表記(01111000)のように先頭0も明示すると誤解を避けられます。
- サブネットマスクの値(252など)を「IPとして無効」などと誤って言う。252はマスクのオクテット値として有効であり、単にビットマスクの意味を持ちます。
補足コラム
- CIDR表記では 255.255.252.0 は /22 に相当します。ネットワーク長は22ビット、ホストビット数は 32−22=10 ビットです。
- ホスト数(理論値): (うち通常のユースではネットワークアドレスとブロードキャストアドレスを除くため使用可能ホストは となります)。
- ブロードキャストアドレスの求め方:ネットワークアドレス 172.30.120.0 に対してホストビットをすべて1にすると 172.30.123.255 になります(第三オクテットは120〜123の範囲)。
FAQ
Q: なぜ第四オクテットを0にするのですか?
A: ネットワークアドレスはホスト部ビットを全て0にした値だからです。サブネットマスクで指定されるネットワークビット以外(ホストビット)を0にします。
A: ネットワークアドレスはホスト部ビットを全て0にした値だからです。サブネットマスクで指定されるネットワークビット以外(ホストビット)を0にします。
Q: 123 を 120 に変換する操作は一般化できますか?
A: はい。任意のオクテットに対しては「そのオクテットの値 AND マスクの対応オクテット値」を計算すればよいです。/22 の場合は第三オクテットを 252(11111100)とANDします。
A: はい。任意のオクテットに対しては「そのオクテットの値 AND マスクの対応オクテット値」を計算すればよいです。/22 の場合は第三オクテットを 252(11111100)とANDします。
Q: ブロック幅がわかると何が便利ですか?
A: ブロック幅(ここでは )がわかれば、ネットワーク境界(第三オクテットが 0,4,8,...)やその範囲(例: 120〜123)を直感的に把握できます。
A: ブロック幅(ここでは )がわかれば、ネットワーク境界(第三オクテットが 0,4,8,...)やその範囲(例: 120〜123)を直感的に把握できます。
関連キーワード: サブネットマスク、ビット演算、CIDR、ブロックサイズ、ネットワークアドレス

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

