サブネットマスクとネットワークアドレス、論理積で求める手順
情報セキュリティマネジメント試験 令和8年度 問10 / ネットワーク › 通信プロトコル
過去問にチャレンジ
次の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
会話形式の解説
講師今回は計算問題です。IPアドレスとサブネットマスクから、そのPCが属するネットワークの先頭のアドレス、つまりネットワークアドレスを求めます。注目するのは、サブネットマスクの最後のオクテットが240になっているところです。
受験者ネットワークアドレスというと、末尾が0のイメージがあります。10.170.70.0を選びたくなりますが、240が付いているので単純ではないのですよね。
講師そうです。ネットワークアドレスは、IPアドレスとサブネットマスクをビットごとに論理積(AND)して求めます。論理積は、両方が1のビットだけ1を残す計算です。第1〜第3オクテットはマスクが255なので、10.170.70がそのまま残ります。
受験者では、計算が必要なのは第4オクテットの19と240だけですね。19を2進数にすると00010011で、240は11110000です。
講師その2つを上の桁から順に比べてみてください。
受験者両方が1なのは左から4番目のビットだけなので、00010000です。10進数では16になります。ネットワークアドレスは10.170.70.16ですね。
講師正解です。検算の方法もあります。256から240を引くと16で、これがブロックの幅です。区切りは0、16、32…となり、19は16〜31のブロックに入るので、先頭は16です。論理積の結果と一致します。
受験者そうすると、10.170.70.0は0〜15のブロックの先頭なので、19は含まれません。別のネットワークのアドレスということですね。
講師そのとおりです。10.170.70.31はどうでしょう。16〜31のブロックの中にあるアドレスです。
受験者31は16〜31のブロックの末尾なので、ホスト部の4ビットがすべて1です。これはネットワークアドレスではなく、ブロードキャストアドレスでしょうか。
講師はい。ホスト部、つまり端末を区別する部分がすべて0ならネットワークアドレス、すべて1ならブロードキャストアドレスです。10.170.70.255は、マスクが/24ならブロードキャストアドレスになりますが、/28の本問では240〜255のブロックの末尾にあたり、このPCとは別のブロックのブロードキャストアドレスです。
受験者255.255.255.240は下位4ビットだけが0なので/28で、16個ずつ区切られる。このPCのブロックは16〜31で、先頭の16がネットワークアドレス、末尾の31がブロードキャストアドレス、という整理で合っていますか。
講師合っています。付け加えると、ホストに割り当てられるのは間の17〜30の14個です。ネットワークアドレスとブロードキャストアドレスを入れ替えた選択肢はよく出る引っかけです。ブロック幅を使えば素早く解けますが、慣れないうちは論理積で検算すると確実です。
まとめ
ネットワークアドレスは、IPアドレスとサブネットマスクをビットごとに論理積して求めます。本問では第4オクテットの19(00010011)と240(11110000)の論理積が00010000、つまり16になり、ネットワークアドレスは10.170.70.16です。256−240=16からブロック幅は16で、19は16〜31のブロックに入ることからも検算できます。31はこのブロックのブロードキャストアドレス、0は0〜15のブロックの先頭、255は240〜255のブロックの末尾にあたり、どれもこのPCのネットワークアドレスではありません。
解答・解説
正解はイです
この問題のテーマ
IPアドレスとサブネットマスクから、そのPCが属するネットワークのネットワークアドレスを求める計算問題です。サブネットマスク255.255.255.240(/28)の意味を理解しているかが問われます。
解き方の考え方
ネットワークアドレスは、IPアドレスとサブネットマスクをビットごとに論理積(AND)して求めます。第1〜第3オクテットはマスクが255なので、10.170.70がそのまま残ります。計算が必要なのは第4オクテットだけで、19は00010011、240は11110000です。両者の論理積は00010000となり、10進数では16です。したがってネットワークアドレスは10.170.70.16です。検算として、256−240=16から区切りは0、16、32…となり、19は16〜31の範囲に入るので、先頭は16で一致します。
選択肢ごとの解説
- ×ア 10.170.70.010.170.70.0は、第4オクテットが0〜15の範囲になるサブネットのネットワークアドレスです。19はこの範囲に含まれないので、このPCが属するネットワークとは別のブロックです。/24と同じつもりで末尾を0にすると、この選択肢を選んでしまいます。
- ○イ 10.170.70.16第4オクテットの19(00010011)と240(11110000)の論理積は00010000、つまり16です。前の3オクテットと合わせると10.170.70.16になり、これが正しいネットワークアドレスです。
- ×ウ 10.170.70.3110.170.70.31は、16〜31の範囲でホスト部の4ビットがすべて1のアドレスです。これはこのサブネットのブロードキャストアドレスで、ネットワークアドレスではありません。
- ×エ 10.170.70.25510.170.70.255は、第4オクテットが240〜255の別のサブネットのブロードキャストアドレスです。末尾が255になるのはマスクが/24の場合の発想で、/28の本問には当てはまりません。
補足
ネットワークアドレスとブロードキャストアドレスを入れ替えた選択肢は、よく出る引っかけです。ブロック幅(256−マスク値)を使えば2進数に直さなくても素早く求められますが、慣れないうちは論理積で検算すると確実です。
POINT
- ネットワークアドレスは、IPアドレスとサブネットマスクの論理積(AND)で求めます。
- 255.255.255.240は下位4ビットだけが0なので、/28に相当します。
- 256からマスクの値を引くとブロックの幅になり、本問では16ごとに区切られます。
- ホスト部がすべて0ならネットワークアドレス、すべて1ならブロードキャストアドレスです。
- 本問のサブネットは16〜31で、ホストに割り当てられるのは17〜30の14個です。
