【基本情報技術者試験対策:集中講義】IPアドレスに関する問題
基本情報技術者試験を受験する人は必見です!!
この記事では、基本情報技術者試験の午前問題で出題されるIPアドレスに関する問題の解き方を5年分の過去問題を利用して集中的に解説します。
ネットワークを勉強する際、IPアドレスに関する知識は必須です。IPアドレスを理解し、適切に設定しなければネットワークを利用することはできません。したがって、基本情報技術者試験ではIPアドレスに関する各種問題が出題されています。
基本情報技術者試験の過去問題を扱っているサイトは多数ありますが、関連する問題を集中的に取り上げて説明していするサイトはあまりありません。
今回はIPアドレスに関する問題を集中的に解説します。
基本情報技術者試験の集中講義は以下の記事を参照してください。
まず、この記事は以下のような人を対象としています。
対象者・これから基本情報技術者試験を受験しようと考えている人
・現在基本情報技術者試験の勉強をしている人
・IPアドレスに関する知識を習得したい人
この記事を読むと、次のようなことが理解できるようになります。
この記事を読むとできること・IPv4とIPv6の特徴を理解することができる
・ネットワークアドレスの求め方を理解することができる
・ブロードキャストアドレスの求め方を理解することができる
・1つのネットワークに接続できるホスト数の求め方を理解することができる
基本情報技術者試験の試験問題で、IPアドレスに関する問題が出題されているのですが、どのようにして勉強したら良いでしょうか?
IPアドレスに関する問題は、「知っていれば解けるもの」と「計算しないと求められないもの」の2つに分類できます。
計算しないと求められない問題は面倒そうですね。
知っていれば解けるものだけ覚えて、計算問題はあきらめた方がいいかも・・・
いえいえ、計算問題もパターンが決まっているので、覚えれば全く問題ありませんよ。今回、じっくり説明するので、是非聞いてください。
基本情報技術者試験の勉強をするためにおすすめの書籍は次の2冊です。どちらも図解が多く、初心者には見やすい書籍です。
IPアドレスとは
現在パソコンやスマートフォンなどが利用しているネットワークは「TCP/IP」と呼ばれるプロトコル(通信規約)が使われています。このTCP/IPではネットワークに接続する端末には個別の識別情報として「IPアドレス」を設定しなければなりません。
「IPアドレスは論理的に端末を識別する情報」で権限あるユーザが設定します。一方、端末を物理的に識別する情報としてMACアドレスもありますが、このMACアドレスはNIC(ネットワーク接続機器)を製造・販売するメーカーがROMに出荷時に書き込んでいて、一般的にはユーザが値を変更することができません。
また、IPアドレスを設定する場合は必ず「サブネットマスク」という値も併せて設定する必要があります。
なお、IPアドレスとサブネットマスクに関しては以下の記事で詳しく説明しています。
グローバルIPアドレス
IPアドレスでは、インターネットに接続する端末には「グローバルIPアドレス」を設定します。
インターネット上でホームページを提供するサーバにアクセスしたり、メールの送受信などをおこなうためにメールサーバを利用したりする場合、世界中でたった一台のサーバを特定しなければなりません。グローバルIPアドレスは端末に設定されている住所で、世界中で重複しないように設定されています。世界中で重複していないので、グローバルIPアドレスを指定すると世界中でたった1台のサーバが特定できます。
重複しない値を設定するためには、誰かが管理する必要があります。現在は「ICANN」と呼ばれる非営利団体が世界中のグローバルIPアドレスを管理しています。グローバルIPアドレスを利用したい場合、申請し使われていないグローバルIPアドレスをレンタルする必要があります。つまり、グローバルIPアドレスは利用するためには、申請し月々利用料を払う必要があります。勝手に自分のサーバにグローバルIPアドレスを設定することはできません。
無事申請が通ると、DNSと呼ばれるグローバルIPアドレスを管理・情報提供しているサーバに登録され、世界中のユーザがそのサーバにアクセスできるようになります。
プライベートIPアドレス
TCP/IPでは、ネットワークに接続される全ての端末にIPアドレスを設定する必要があります。端末の中にはインターネットに接続せず、家庭内や社内のみで利用するものがあります。これらの端末にグローバルIPアドレスを設定するとなると、月々の利用料金が莫大になってしまいます。また、グローバルIPアドレスを設定すると世界中の端末からアクセスが可能となり、不正操作させる危険が高まります。
このようにインターネットに接続する必要がない場合には「プライベートIPアドレス」を利用します。プライベートIPアドレスは利用できる範囲が決められており、その範囲内であれば自由に利用することができます。申請が不要で、月々の利用料金も発生しません。
プライベートIPアドレスが設定されている端末にはインターネットから直接接続することができないのでセキュリティを高めることができます。また、プライベートIPアドレスが設定されている端末からインターネットに接続しようとしてもルータが通信を切断します。
したがって、プライベートIPアドレスが設定されている端末がインターネットに接続する必要がある場合、NAT/NAPTやProxyと呼ばれる機能を利用する必要があります。
Proxy、NAT、NAPTについては以下の記事で詳しく説明しています。
IPアドレスのバージョン
IPアドレスにはIPv4とIPv6という2つのバージョンがあります。
端末には、どちらか一方のIPアドレス、または両方のIPアドレスを設定することができます。ただし、IPv4とIPv6は全く互換性がありませんので、IPv4の端末とIPv6の端末は直接通信することはできません。
日本では昔からIPv4を利用し、IPv6への移行が積極的にはおこなわれていません。しかし、「IoT」が普及してきている現在は、IPv6の利用が増加しています。
IPv4の特徴
IPv4の特徴が問われる問題が出題される場合があるので、簡単に特徴を説明します。
- 32ビットで表現される
- ドット付10進数で表現される
- 「ネットワークアドレス」と「ホストアドレス」の2種類の情報で構成される
- IPアドレスの範囲は「クラス」によって区別される
- 通信方式は「ユニキャスト」「マルチキャスト」「ブロードキャスト」の3種類
- 手動で設定する(DHCPを利用すれば自動で設定することも可能)
- NICには1つのIPアドレスのみ設定可能
IPv6の特徴
IPv6の特徴が問われる問題も出題される場合があるので、簡単に特徴を説明します。
- 128ビットで表現される
- コロン付16進数で表現される
- 「サブネットプレフィックス」と「インタフェースID」の2種類の情報で構成させる
- 「クラス」は存在しない
- 通信方式は「ユニキャスト」「マルチキャスト」の2種類のみ
- 自動で設定される(手動で設定することも可能)
- NICには複数のIPアドレスを設定可能
- 送信されるデータはIPSecで暗号化される
IPv4を利用する場合に必要な用語
基本情報技術者試験では、IPv4に関する問題が主に出題されているので、ここでは、関連する用語について説明します。
ネットワークアドレス
IPアドレスには、その端末がどこのネットワークに接続されているかを示すため「ネットワークアドレス」という情報が設定されています。接続されているネットワークが異なると、端末間の通信は直接はおこなえません。
ネットワークアドレスを求めるためには、IPアドレスと一緒に指定されているサブネットマスクの値をAND計算します。AND計算とは、「2つの値が両方とも1の時だけ、結果として1を返し、それ以外の時は0を返す」という計算です。論理積とも呼ばれます。
ネットワークアドレスは32ビットのうち、前半部分が全て1、後半部分が全て0の値で構成されています。32ビットのうち、何ビット目までがネットワークアドレスを示すのかは、サブネットマスクとAND計算しなければ求めることができません。したがって、IPアドレスを設定する場合は、サブネットマスクの値も必ず設定する必要があります。
例えば、IPアドレス「192.168.1.1」、サブネットマスク「255.255.255.0」の場合、それぞれの値を2進数に直すと、「11000000.10101000.00000001.00000001」、「11111111.11111111.11111111.00000000」となります。次に、この2つの値を各ビットごとにAND計算をすると計算結果は「11000000.10101000.00000001.00000000」で、10進数に戻すと「192.168.1.0」となり、これがネットワークアドレスを示します。
ホストアドレス
ホストアドレスとは、ネットワーク内でその端末を特定するための情報です。同じネットワークに接続する端末には重複しないホストアドレスを設定しなければなりません。
ホストアドレスを求めるには、ネットワークアドレスが何ビットで表現されているかを調べる必要があります。32ビットからネットワークアドレスで利用されるビット数を引いて、残ったビットがホストアドレスとして利用できるアドレスの範囲となります。
では、ネットワークアドレスが何ビットで表現されているかを調べるためには、どうすればよいでしょうか? これはサブネットマスクを調べればわかります。サブネットマスクは32ビットのうち、1が何ビットか連続しています。残りの0が連続しているビット数がホストアドレスとして利用できる範囲となります。
例えば、サブネットマスクが「255.255.255.0」の場合、2進数に直すと「11111111.11111111.11111111.00000000」となり、後半0が8ビットあるので、ホストアドレスとして利用できる範囲は「2の8乗」となります。
サブネットマスクは「255.55.255.240」など最後の値が0にならない場合があります。しかし、考え方は全く同じです。この場合、2進数に直すと「11111111.11111111.11111111.11110000」となり、0は4ビットで構成されています。したがって、利用できるホストアドレスは「2の4乗」となります。
実際に端末にIPアドレスを設定する場合は、この利用できるホストアドレスの範囲内の値を選んで指定します。なお、実際にホストアドレスとして利用できる数は「2」減ります。ホストアドレスの範囲の中で端末に設定できない値が2つあります。詳しい説明はこの後におこないます。
ブロードキャストアドレス
通信方式には次の3つがあります。
通信方式 | 通信相手の台数 |
ユニキャスト | 1台 |
マルチキャスト | 複数台 |
ブロードキャスト | 同じネットワーク内の全端末 |
ブロードキャストとは、同じネットワークに接続している全ての端末に向けて送信し、全端末がデータを受信して処理しなければならない特別な通信方式です。
ブロードキャストアドレスはブロードキャスト通信で利用されるIPアドレスでホスト部分が全て1のアドレスです。このブロードキャストアドレスは通信で利用されるため、端末に設定することはできません。
例えば、IPアドレス「192.168.1.1」、サブネットマスク「255.255.255.0」の端末が接続されているネットワークアドレスは「192.168.1.0」となり、ブロードキャストアドレスは「192.168.1.255」となります。
ブロードキャストアドレスを求めるためには、ネットワークアドレスをまず求める必要があります。
接続できるホスト数
ホストアドレスとして利用できる範囲を求めることができれば、あとはその範囲内の値を自由に端末に設定することができます。しかし、実際はこの範囲のうち、2つの値は端末に設定することができません。
- 「ホスト部分が全て0」は、ネットワークアドレスを表現するために使用される
- 「ホスト部分が全て1」は、ブロードキャストアドレスとして使用される
サブネットマスクが「255.255.255.0」の場合、最後の8ビットがホストアドレスとして利用できる範囲になります。2の8乗は256ですが、上述の通り2つの値は使えないので、接続できるホスト数は「256-2=254台」となります。設定できる値は「1から254の任意の値」です。もちろん、複数の端末に同一の値を設定することはできません。
過去問題
では、過去5年間(春季、秋季)で出題された問題のうち、IPアドレスに関する過去問題を実際に解いてみましょう。
まず、各試験でどのような問題が出題されているのか、一覧表示して確認してみましょう。
- 平成27年 春季 IPv4のビット数、IPv4のグローバルアドレスの値
- 平成27年 秋季 IPv6の特徴、IPv4の特徴
- 平成28年 春季 ブロードキャストアドレスの計算
- 平成28年 秋季 同じネットワークに所属しているIPアドレスの選択
- 平成29年 春季 IPv4のクラスの選択
- 平成29年 秋季 ネットワークアドレスの計算
- 平成30年 春季 ホストに割り振れないIPアドレスの選択
- 平成30年 秋季 出題なし
- 平成31年 春季 接続できるホスト数の計算
- 令和元年 秋季 出題なし
近年は、IPアドレスに関する問題は減少傾向にあります。また、単純に知っているかどうかではなく、計算しなければ求められない問題が多くなっています。
IPアドレスに関する問題を解く場合は、2進数と10進数の相互変換が正しくできることが必要です。変換が不得意な人はこの機会に勉強しておきましょう。
平成27年 春季 IPv4のビット数
この問題は、IPv6のビット数を知っているかどうかの問題で、知っていればすぐ答えられる問題です。IPv6は128ビットなので、答えは「ウ」となります。ちなみに、IPv4は「32ビット」です。
平成27年 春季 IPv4のグローバルアドレスの値
IPv4のIPアドレスはグローバルIPアドレスとプライベートIPアドレスに分けられます。この問題を解くためには、プライベートIPアドレスとして自由に使用できる範囲を知っているかどうかがポイントです。
IPv4は、クラスA、B、Cに分けられています(実際にはクラスD、Eの5つに分けられます)。各クラス内ではプライベートIPアドレスとして利用できる範囲が決まっています。
以下が、各クラス毎で利用できるアドレスの範囲です。
選択肢を確認してみると、「ウ 172.22.151.43」はクラスBのプライベートIPアドレス、「エ 192.168.3.158」はクラスCのプライベートIPアドレスとなります。選択肢アとイはどうでしょうか?
一見すると、どちらがグローバルIPアドレスか判断が付かないように思えますが、「127.0.0.0~127.255.255.255」がループバックアドレスで使われていることを理解していれば、答えは「ア」となります。
ループバックアドレスとは、「自分自身を表す特別なIPアドレス」です。全てのホストに共通でこの値が自動的に設定されています。このIPアドレスが使えない場合、その端末のネットワーク機能に問題が生じている可能性が考えられます。ループバックアドレスは「localhost」というホスト名で表現されます。WebブラウザのURLに「http://localhost」と打ち込む場面を見たことあるかもしれませんが、このURLは「自分自身の端末にHTTP接続する」という意味になります。
平成27年 秋季 IPv6の特徴
この問題はIPv4とIPv6の特徴を知っていれば解くことができます。答えは「ア」です。それ以外の説明は全てIPv4の説明となります。
(イ) IPv6にはサブネットマスクの値はありません。IPv6のアドレスはIPv4と違って、ユーザがアドレスの範囲を自由に拡張/伸縮することはできません。前半64ビットが「サブネットプレフィックス」で使用され、後半64ビットが「インタフェースID」で使用されます。このビット数は固定です。
(ウ) (イ)同様、IPv6にはサブネットマスクの値はありません。IPv6のアドレスだけが端末に設定されます。
(エ) IPv6にはプライベートIPアドレスという名称のアドレスは存在しません。同じ意味で利用されるアドレスは「リンクローカル・ユニキャスト」と呼ばれ、「fe80」で始まるIPアドレスが設定されます。
平成27年 秋季 IPv4の特徴
この問題はIPv4の特徴に関する問題です。
(ア) 「192.168.0.0~192.168.255.255がクラスCのアドレス」という説明は正しいのですが、このアドレスはプライベートIPアドレスなので、届け出(申請)は不要です。したがって、この説明は間違いです。なお、「JPNIC(JaPan Network Information Center)」は日本国内のグローバルIPアドレスを管理している団体です。
(イ) 「192.168.0.0/24」のネットワークアドレスですが、まずここではサブネットマスクがCIDR表記(/24)で記述されています。CIDR表記とは「サブネットマスクの値のうち連続する1の数を記述したもの」となります。つまり「/24」は「1が24ビット、0が8ビット」を意味し、「255.255.255.0」と同じことになります。IPv4の32ビットのうち、最後の8ビットがホスト部分で使われ、この8ビットを全て0で表現したものがネットワークアドレスになります。したがって、この説明は正しいので、答えは「イ」です。
(ウ) ブロードキャストアドレスはホスト部分が全て1のアドレスです。「/24」からホスト部分は最後の8ビットであることが分かるので、最後の8ビットだけを全て1にすると「192.168.0.11111111」となります。この値は「192.168.0.255」なので、問題中の「192.168.0.0」とは合っていません。したがって、この説明は間違いです。
(エ) IPv4のループバックアドレスは「127.0.0.0~127.255.255.255」なので、この説明は間違いです。
平成28年 春季 ブロードキャストアドレスの計算
「ブロードキャストアドレスはホスト部分が全て1の値」なので、ホスト部分を調べるためにはまずネットワークアドレスを求める必要があります。
ネットワークアドレスはIPアドレスとサブネットマスクの値をAND計算で求めることができます。この問題ではサブネットマスクはCIDR表記「/22」で記述されています。つまり、32ビットのうち、前半の22ビットまでがネットワークアドレスであることを示しています。ちなみに、「/22」をサブネットマスクで表現すると「255.255.252.0」となります。
ネットワークアドレスが「192.168.56.0」であることが計算から求められました。ホスト部分は後半10ビットとなります。
ブロードキャストアドレスはホスト部分が全て1の値なので、ネットワークアドレスの値のうち、ホスト部分に全て1をセットします。セットした値を10進数に直すと、「192.168.59.255」となります。
したがって、答えは「ウ」です。
平成28年 秋季 同じネットワークに所属しているIPアドレスの選択
サブネットマスクを「255.255.255.240」を2進数に変換すると以下のようになります。
このことから、ネットワーク部分は28ビット、ホスト部分は4ビットであることが分かります。
では、各選択肢のIPアドレスの第4ブロック(最後の8ビット)を2進数に変換し、同じネットワークに所属しているか確認してみましょう。なお、8ビットのうち、4ビット(下図の赤字)がネットワークアドレスとして使用されています。
この結果、選択肢アとウ、エは赤字の4ビットの値が異なり、それぞれ異なるネットワークアドレスになっていることが分かります。一方、選択肢イは2つとも同じネットワークアドレス「0001」が設定されていることが分かります。したがって、答えは「イ」となります。
平成29年 春季 IPv4のクラスの選択
与えられたIPアドレスのクラスは先頭の数ビットを見れば簡単に判別することができます。各クラスの先頭は必ず決まった値(ビット)で始まっています。
以下が、各クラスの先頭のビットの決まりです。
クラス | 先頭ビット |
A | 0 |
B | 10 |
C | 110 |
D | 1110 |
したがって、問題文の「128.0.0.0」を2進数に変換してみると、どのクラスかが分かります。
「128」を2進数に変換すると「1000000」となり、先頭ビットは「10」で始まっています。したがって、このIPアドレスは「クラスB」ということになるので、答えは「イ」です。
平成29年 秋季 ネットワークアドレスの計算
与えられているIPアドレスとサブネットマスクをそれぞれ2進数に変換し、各ビットごとにAND計算をおこない、その結果がネットワークアドレスになります。
なお、この説明では「255.255.255」の部分も2進数に変換し計算していますが、「255」を2進数に変換すると「11111111」となり、この値にどんな値をAND計算しても、結果は変わりません。例えば「10」と「255」のAND計算の結果は「10」となるので、わざわざ2進数に変換する必要はありません。つまり、「255.255.255」と対応する「10.170.70」はAND計算するとそのまま「10.170.70」となります。したがって、最後の「240」の部分だけ2進数に変換し、「19」とAND計算したほうが計算時間が短くて済みます。
計算結果から、答えは「イ」です。
平成30年 春季 ホストに割り振れないIPアドレスの選択
ホストに割り振ってはいけないIPアドレスは、ネットワークアドレスとブロードキャストアドレスとなります。したがって、この問題は選択肢のうち、ネットワークアドレスまたはブロードキャストアドレスはどれかを選択する問題となります。
この問題をよく見ると、与えられているデータは「ネットワークアドレス」と「サブネットマスク」です。つまり、ネットワークアドレスは既に求められているので、選択肢の中からブロードキャストアドレスを選べば良いことになります。
サブネットマスクの最後のブロックの値「240」を2進数に直すと「11110000」となります。したがって、ホストアドレスとして利用できるビット数が「4ビット」であることが分かります。
ネットワークアドレスの最後のブロック「16」を2進数に直すと「00010000」となり、前半の4ビット「0001」までがネットワークアドレス、後半の4ビット「0000」がホストアドレスです。ブロードキャストアドレスはホスト部分が全て1になるので、ブロードキャストアドレスは「00011111」となります。この値を10進数に直すと「31」です。つまり、ネットワークアドレス「200.170.70.16」におけるブロードキャストアドレスは「200.170.70.31」となります。したがって、答えは「エ」です。
平成31年 春季 接続できるホスト数の計算
サブネットマスク「255.255.254.0」を2進数に変換すると「11111111.11111111.11111110.00000000」になります。つまり、32ビットのうち前半の23ビットが1で、残りの9ビットが0です。後半の0の部分がホストアドレスとして使用できるビット数になります。
したがって、2の9乗(512)がホストアドレスとして使える値です。しかし、既に説明したようにホストアドレスの範囲のうち、全て0の値はネットワークアドレス、全て1の値はブロードキャストアドレスとして使われ、ホストアドレスとしては設定することはできません。
「2の9乗(512)-2」が実際にホストアドレスとして使用できる個数となるため、答えは「エ」となります。
まとめ
今回は、IPアドレスに関する過去問題について集中的に説明しました。出題される問題は、IPアドレスの特徴を知っていればすぐに解ける問題と、計算が必要な問題に分けられます。IPアドレスについては特徴や計算方法などを幅広く理解しておかなければなりません。
今回の集中講座で是非、まとめて勉強してみて下さい。
・IPアドレスにはIPv4とIPv6の2種類が存在し、利用されるビット数が異なる
・IPアドレスにはグローバルIPアドレスとプライベートIPアドレスの2種類が存在する
・IPv4はネットワークアドレスとホストアドレスの2つの情報が含まれている
・ネットワークアドレスはホスト部分が全て1の値である
・ホストアドレス部分が全て1のアドレスはブロードキャストアドレスである
IPアドレスの集中講座はいかがでしたか?
特徴や2進数への変換、AND計算など盛りだくさんで大変でした!!
IPアドレスの知識はTCP/IPでは必須なものなので、基本情報技術者試験対策だけではなく、エンジニアとしてぜひ、覚えておきましょう!!
IPアドレスに関する記事をいくつか掲載しています。ぜひ、ご覧ください。