平成29年 秋期 情報処理安全確保支援士 午前Ⅱ 問20 について解説していきたいと思います。
問と解答
「ネットワークに接続されているホストの IP アドレスが 198.51.100.90 で、サブネットマスクが 255.255.255.224 のとき、ホストアドレスはどれか。」
ア 10 イ 26 ウ 90 エ 212
平成29年 秋期 情報処理安全確保支援士 午前Ⅱ 問20
解答
イ
最速で解く場合の私の考え方
ヒントをもとに除外できる解に気づく
サブネットマスクが「255.255.255.0」なら解が 90 になるため簡単に解けるのですが、そんなものはそもそも問題にならないですよね。
しかし、これは大きなヒントになっています。「ウ」 が解答から除外されるからです。
さらに、IP アドレスの第 4 オクテットが 90 なので、それより大きい 「エ」 の 212 も解答から除外されます。
つまり解答は、「ア」 の 10 か 「イ」 の 26 のどちらかになります。
では、詳しくみていきましょう。
サブネットからホスト部を導く
次にサブネットマスクを見てみましょう。
サブネットマスクは 255.255.255.224 です。
第 4 オクテットだけが 255 ではないため、第 4 オクテットの一部がホスト部になります。
第 4 オクテットをもう少し細かく見ていきましょう。
第 4 オクテットの 224 はネットワーク部で、255 から 224 を引いた 31 がホスト部になります。
ビット列を紙に書く
ビット列を紙に書きます。
1 オクテットは 8 ビット なので 8 列書きます。
さらに、右から「いち・にー・よん・ぱー・じゅうろく・さんじゅうに・ろくじゅうよん・ひゃくにじゅうはち」と頭の中で連想しながら書いていきます。
下側の行には 0 か 1 を書きます。
ビット列で 90 を表現します。
これは数字が大きい、左側から 0 か 1 かで埋めていき、同時に、1 と書いたところは足し算していきます。
今回の場合は 90 より大きくなってはいけないので、足し算して 90 より大きくなるところは 0 を書きます。
(64 + 16 + 8 + 2 = 90)
ホスト部は 31 なので、赤で囲んだ範囲がホスト部になります。
(16 + 8 + 4 + 2 + 1 = 31)
以上により、ホストアドレスは、ビットが立っているところを合計した 26 になります。
(16 + 8 + 2 = 26)
ここまでが私の考える最速で解く方法です。
ここからは、時間はかかりますが順を追って詳しく解説していきます。
注目すべきオクテット
まずは、サブネットマスク 255.255.255.224 について理解していきましょう。
ホストアドレスを求める問題なので、ホスト部である第4オクテットのみに注目します。
第1~第3オクテットまでは、ネットワーク部になるのでスルーしましょう。
サブネットマスクを2進数に変換する
255.255.255.224 は、10進数表記です。
このままでは解が導き出せないので、2進数に変換します。
変換するのは、第4オクテットのみで良いです。
まず、ビット列を書きます。
“255″ “255” “255” “224” それぞれが1オクテット(1バイト)です。
1オクテットは 8ビットなので、8列分のビットを書きます。
次に、合計が 224 になるよう、ビット列下に 0 か 1 を書いていきます。
左から埋めていきます。
128 + 64 で 192 です。まだ足りません。
128 + 64 + 32で、合計 224 になりました。
224 を 2進数で表すと、11100000 になることが分かりました。
ネットワーク部とホスト部を理解する
サブネットマスク 255.255.255.224 は、ネットワーク部とホスト部を表現しています。
255 は、ネットワーク部です。
255 は、ビット列が下図のようになります。
ビットがすべて 1 ですね。
128+64+32+16+8+4+2+1=255
サブネットマスク 255.255.255.224 をビット列で書くとこうなります。
11111111.11111111.11111111.11100000
サブネットマスク 255.255.255.224 を 2進数に変換することができました。
ネットワーク部とホスト部は以下のようになります。
ネットワーク部
11111111.11111111.11111111.11100000
ホスト部
11111111.11111111.11111111.11100000
ホスト部が判明
前述で、224 を2進数に変換すると下図のようになることが分かりました。
ビットが立っているところまでがネットワーク部となるので、今回の問では、ホスト部は下位5ビット分で表現されることになります。
ここで、問を振り返ってみましょう。
問 「ネットワークに接続されているホストの IP アドレスが 198.51.100.90 で・・・」
IP アドレスの第4オクテットのみに注目します。
理由は、第3オクテットまではネットワーク部だからです。
IPアドレスを2進数に変換する
今度は、IP アドレスの第4オクテット(90)を2進数に変換してみましょう。
前述した以下の図から、ホスト部は下位5ビットでした。
つまり、IP アドレス 198.51.100.90 のホストアドレスは下図のようになります。
ビットが立っている箇所を足していきます。
16 + 8 + 2 = 26
よって、解答は 26 になります。
まとめ
1.ビット列を書く
2.サブネットマスクが 255 以外のオクテットに注目する
3.注目オクテットを2進数に変換し、ホスト部を導き出す
255.255.255.224
4.IP アドレスでも同様に注目したオクテットを2進数に変換する
198.51.100.90
5.ホスト部のビットが立っている箇所をすべて足し算する
最後に
私のやり方は、ビット列を書いて解くというものでした。
計算をするというよりは、そろばんのようなイメージです。
ビット列の右から「1」「2」「4」「8」・・・というのさえ覚えていれば、そんなに難しい問題ではありません。
覚え方は、
「いちにーよんーぱー、じゅーろく・さんじゅーに・ろくじゅうよん・ひゃくにじゅうはち」
そのままです。
繰り返し使っていたら自然と覚えていました。
なお、この記事では一つ一つ順を追って説明しているので、かなり時間がかかっていますが慣れればそれほど時間はかかりません。
ビット列は右から「1」「2」「4」・・・と、2を掛けていき、128まで書きます