応用情報技術者 2012年 春期 午前2 問34
問題文
二つのIPv4ネットワーク192.168.0.0/23と192.168.2.0/23を集約したネットワークはどれか。
選択肢
ア:192.168.0.0/22(正解)
イ:192.168.1.0/22
ウ:192.168.1.0/23
エ:192.168.3.0/23
🔒 解説は解答すると表示されます
サブネット集約【午前2解説】
正解の理由
ア(192.168.0.0/22)が正解です。理由は、192.168.0.0/23(範囲:192.168.0.0〜192.168.1.255)と192.168.2.0/23(範囲:192.168.2.0〜192.168.3.255)が連続していて、これらを包含する最小のプレフィックスは /22(サブネットマスク255.255.252.0)だからです。/22のネットワークは第3オクテットが4の倍数で始まる必要があり、192.168.0.0/22は範囲192.168.0.0〜192.168.3.255を表します。したがって、両者をきれいに集約できます。
解法ステップ
- 各ネットワークの範囲を確認する
- 192.168.0.0/23 → 192.168.0.0~192.168.1.255
- 192.168.2.0/23 → 192.168.2.0~192.168.3.255
- 連続しているかを確認する
- 上記2つは連続しており、合わせると192.168.0.0~192.168.3.255になる。
- 共通のプレフィックス長を求める(境界を探す)
- 範囲のサイズは4つの連続した /24ブロックに相当 → 必要なホストビット数は ビット → プレフィックスは /22。
- ネットワークアドレスがアライン(境界)しているか確認
- /22の第3オクテットの単位は (つまり0,4,8,…)。192.168.0.0は第3オクテット0で4の倍数なので有効な /22ネットワークアドレス。従って192.168.0.0/22が集約先。
選択肢別の誤答解説
- ア:192.168.0.0/22
- 正しい。範囲は192.168.0.0~192.168.3.255で、両方の /23を包含する。
- イ:192.168.1.0/22
- 誤り。/22のネットワークアドレスは第3オクテットが4の倍数でなければならず、1は不適切(192.168.1.0は192.168.0.0/22のホストアドレスの一つに過ぎない)。したがって「192.168.1.0/22」という表記はネットワーク境界として整合しない。
- ウ:192.168.1.0/23
- 誤り。192.168.1.0/23の範囲は192.168.1.0~192.168.2.255で、元の二つの /23(.0/23と .2/23)を両方包含しない(.0/23の一部を含まない)。
- エ:192.168.3.0/23
- 誤り。192.168.3.0/23の範囲は192.168.3.0~192.168.4.255で、192.168.0.0/23を含まないし、そもそも集約になっていない。
よくある誤解
- ネットワークアドレスは任意に設定できると思い込む
- プレフィックス長に応じてネットワークアドレスは特定の境界(例えば /22は第3オクテットが0,4,8,…)に合わせる必要があります。
- 範囲の端点を見誤る(例:/23の範囲計算ミス)
- /23は512アドレス(例:192.168.0.0~192.168.1.255)。連続ブロックを合わせるときに開始オクテットの倍数条件を忘れると誤答しやすいです。
補足コラム
- /22のアドレス数は アドレスで、使用可能ホストは通常1022(ネットワークとブロードキャストを除く)です。
- 一般的な集約(サマリールート)の手順は「各ネットワークを2進表記にして左から共通のビット長を見つける」→「その共通長が集約プレフィックス」。ネットワークアドレスは共通ビット以降をすべて0にします。
- 実務ではルーティングテーブルを減らすためにサブネット集約(スーパーネット化)を行いますが、不要な集約は誤配信や到達不能を招くことがあるため注意が必要です。
コード例(Python): IPネットワークの集約判定サンプル
import ipaddress
nets = [ipaddress.ip_network('192.168.0.0/23'),
ipaddress.ip_network('192.168.2.0/23')]
supernet = ipaddress.collapse_addresses(nets) # 集約可能なブロックを返す
print(list(supernet)) # -> [IPv4Network('192.168.0.0/22')]
FAQ
Q: なぜ /22の第3オクテットは4の倍数で始まるのですか?
A: /22のマスクは255.255.252.0で、第3オクテットの有効ビットは上位6ビット(11111100)。ブロックサイズは 。したがって第3オクテットは0,4,8,… の倍数で始まります。
A: /22のマスクは255.255.252.0で、第3オクテットの有効ビットは上位6ビット(11111100)。ブロックサイズは 。したがって第3オクテットは0,4,8,… の倍数で始まります。
Q: 連続していればどんな2つのサブネットでも集約できる?
A: 連続しているだけでは不十分で、開始アドレスが集約後のプレフィックス境界にアラインしていること(下位ビットが全て0)も必要です。
A: 連続しているだけでは不十分で、開始アドレスが集約後のプレフィックス境界にアラインしていること(下位ビットが全て0)も必要です。
関連キーワード: IPv4、CIDR、サブネットマスク、スーパーネット化、ネットワークアドレス、ブロードキャストアドレス

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

