この記事ではIPアドレスとは何かを解説し、その後IPアドレスのクラスとサブネットマスクについて解説します。
IPアドレス
- IPアドレスはネットワークにおける住所のような役割を果たす番号
- IPv4は32ビットの2進数で表記されるIPアドレス
- IPv6は128ビットの2進数で表記されるIPアドレス
- IPアドレスはネットワーク部とホスト部に分かれる
IPアドレスのクラス
- IPアドレスはネットワークの規模によって、クラスA、クラスB、クラスCに分かれます
サブネットマスク
- サブネットマスクでホスト部の一部をネットワーク部に再定義する
- 192.168.30.32/28とあれば、最初28ビットがネットワーク部
応用情報ではIPアドレス、IPアドレスのクラス、サブネットマスクに関する問題が出題されます。是非最後までご覧ください。
IPアドレスはネットワークの住所
現実世界の住所のように、インターネットに接続している全てのコンピュータにはIPアドレスが割り当てられています。IPアドレスはコンピュータを識別するために使うものなので、重複はありません。
現実世界で郵便物を届ける時に住所を使うように、インターネットの世界でデータを届ける時はIPアドレスを使ってどのコンピュータに送ればいいのかを判断します。
IPアドレスの表記
IPアドレスの表記の仕方にはIPv4とIPv6があります。
IPv4
IPv4では32ビットの2進数でIPアドレスを表現します。しかし、例えば、「10101100001110100011100011100101」と表現されても分かりにくいですよね。なので、32ビットを8ビットのブロックに分けて、それぞれのブロックを10進数で表現するのが一般的です。
これで「10101100001110100011100011100101」は「172.58.56.229」になります。
IPv6
IPv6では128ビットの2進数でIPアドレスを表現します。
元々IPv4が主流ですが、インターネットが急速に拡大したことで32ビットでは枯渇する可能性があるということで、IPv6が誕生しました。
IPv6もIPv4と同じで128個の0と1で表記されても困りますよね。
なので、128ビットを4ビットのブロックに分けて、それぞれのブロックを16進数で表現するのが一般的です。
(参考)IPv6では0を省略できる
IPv6では0の省略方法が2つあります。
「2001:0db8:85a3:0000:0000:8a2e:0070:7334」を例に考えてみましょう。
①各ブロックの先頭の0は省略できます。なので、「2001:db8:85a3:0:0:8a2e:70:7334」と表現出来ます。
②0だけのブロックがあれば「::」で省略できます。なので、「2001:db8:85a3::8a2e:70:7334」と表現出来ます。「::」は1回しか使えません。
ネットワーク部とホスト部
IPアドレスには、どのネットワークに所属しているかを表すネットワーク部とそのネットワーク内のどのコンピュータなのかを表すホスト部に分かれます。
例えば、頭の24ビットがネットワーク部、後ろの8ビットがホスト部を示すIPアドレスでは、下の図のようになります。
ホスト部がすべて0、すべて1のアドレスは割り当てることが出来ません。
それぞれネットワークアドレスとブロードキャストアドレスと呼ばれる特別なIPアドレスだからです。
IPアドレスのクラス
IPアドレスはネットワークの大きさによってクラスA、クラスB、クラスCに分けられます。
クラスAは先頭8ビットがネットワーク部です。ホスト部に使えるビット列が多いので、多くのコンピュータを所属させることが出来て、大規模ネットワークに使われます。ネットワーク部の先頭は「0」から始まります。
クラスBは先頭16ビットがネットワーク部で、中規模ネットワークに使われます。ネットワーク部の先頭は「10」から始まります。
クラスCは先頭24ビットがネットワーク部で、小規模ネットワークに使われます。ネットワーク部の先頭は「110」から始まります。
クラスCのネットワークの場合、192.168.0.0~192.168.255.255のアドレスはプライベートIPアドレスであると決められています。
サブネットマスク
クラスCのIPアドレスが最も小規模のネットワークですが、それでも254台分のホストを扱えます。会社によっては254台分もホスト部要らないから、もっと細かくネットワーク部を分けたいと思う所もありますよね。
そんな時、サブネットマスクを使えば、ホスト部の一部を使ってネットワーク部を定義することが出来ます。
サブネットマスクは各ビットの値によってネットワーク部とホスト部を再定義します。
ビットが1ならネットワーク部、0ならホスト部となります。
サブネットマスクの別の表記法
サブネットマスクはビット列で表記する方法以外に、
IPアドレスと共にネットワーク部が何ビットなのかを表す表記法があります。
応用情報技術者試験での出題例
令和6年度春期問31
応用情報技術者
午前試験 令和6年度春期問31
IPアドレス208.77.188.166は,どのアドレスに該当するか。
ア グローバルアドレス
ウ ブロードキャストアドレス
イ プライベートアドレス
エ マルチキャストアドレス
正解は”ア”
問題のIPアドレスの先頭8ビットは、11010000(=208)です。
110から始まっているのでクラスCのIPアドレスだと分かります。
クラスCでは、192.168.0.0~192.168.255.255以外は基本グローバルアドレスです。よって、アが答えです。(下8桁が全て1のアドレスはブロードキャストアドレス、全て0のアドレスはネットワークアドレスです)
イ クラスCのプライベートアドレスは192.168.0.0~192.168.255.255なので誤りです。
ウ ブロードキャストアドレスはホスト部がすべて1のアドレスです。よって誤りです。
エ マルチキャストアドレスはクラスDのアドレスなので誤りです。
令和5年度春期問34
応用情報技術者
午前試験 令和5年度春期問34
サブネットマスクが255.255.255.0のとき,IPアドレス172.30.123.45のホストが属するサブネットワークのアドレスはどれか。
ア 172.30.3.0
ウ 172.30.123.0
イ 172.30.120.0
エ 172.30.252.0
正解は”イ”
サブネットマスクを2進数で表記すると、
「11111111.11111111.11111111.00000000」です。
つまり、このネットワークでは頭24桁がネットワーク部です。
IPアドレス172.30.123.45を2進数で表記すると、
「10101100.00011110.01111011.00101101」となるため、サブネットワークのアドレスは「10101100.00011110.01111011.00000000」になります。
これを10進数で表記すると「172.30.120.0」となり、答えはイです。
令和4年度秋期問33
応用情報技術者
午前試験 令和4年度秋期問33
IPv4のネットワークアドレスが192.168.16.40/29のとき,適切なものはどれか。
ア 192.168.16.48は同一サブネットワーク内のIPアドレスである。
イ サブネットマスクは,255.255.255.240である。
ウ 使用可能なホストアドレスは最大6個である。
エ ホスト部は29ビットである。
正解は”ウ”
IPアドレス192.168.16.40を2進数表記すると、
「11000000.10101000.00010000.00101000」となり、
サブネットマスクが「11111111.11111111.11111111.11111000」、
サブネットワークのアドレスが「11000000.10101000.00010000.00101000」と分かります。
ア 192.168.16.48を2進数表記すると、「11000000.10101000.00010000.00110000」となり、同一サブネットワーク内のIPアドレスではないことが分かります。よって誤りです。
イ サブネットマスク「11111111.11111111.11111111.11111000」を10進数表記すると、255.255.255.248なので誤りです。
ウ ホスト部は3ビットです。なので、2³個-2=6個が使用可能なホストアドレスです。
エ ホスト部は3ビットなので誤りです。
令和4年度春期問31
応用情報技術者
午前試験 令和4年度春期問31
IPv6アドレスの表記として,適切なものはどれか。
ア 2001:db8::3ab::ff01
ウ 2001:db8.3ab:ff01
イ 2001:db8::3ab:ff01
エ 2001.db8.3ab.ff01
正解は”イ”
IPv6は128ビットの2進数でIPアドレスを表現したものです。
ただ、2進数表記だと読み辛いので、4ビット毎に分割したビット列を10進数に変換して表記するのが一般的です。
10進数表記に変換した後は4つずつ数字を「:」で区切ります。
また、0が続いている部分は「::」で省略することが可能です。ただし、「::」はIPアドレス内で1回しか使えません。
上の例だと、「2001:db8:85a3::8a2e:70:7334」と表現出来ます。
これらのルールにマッチしているのはイだけです。
令和4年度春期問34
応用情報技術者
午前試験 令和4年度春期問34
IPv4で192.168.30.32/28のネットワークに接続可能なホストの最大数はどれか。
ア 14 イ 16 ウ 28 エ 30
正解は”ア”
192.168.30.32/28なのでネットワーク部は28ビット、ホスト部は32-28=4ビットであると分かります。ホスト部がすべて0と1のIPアドレスは割り当て不可なので、接続可能なホストの最大数は2⁴-2=14です。
令和3年度秋期問35
応用情報技術者
午前試験 令和3年度秋期問35
IPv4ネットワークにおいて,あるホストが属するサブネットのブロードキャストアドレスを,そのホストのIPアドレスとサブネットマスクから計算する方法として,適切なものはどれか。ここで,論理和,論理積はビットごとの演算とする。
ア IPアドレスの各ビットを反転したものとサブネットマスクとの論理積を取る。
イ IPアドレスの各ビットを反転したものとサブネットマスクとの論理和を取る。
ウ サブネットマスクの各ビットを反転したものとIPアドレスの論理積を取る。
エ サブネットマスクの各ビットを反転したものとIPアドレスの論理和を取る。
正解は”エ”
IPアドレス、サブネットマスク、ブロードキャストアドレスのネットワーク部とホスト部はそれぞれこのようになります。
ネットワーク部を考える
ブロードキャストアドレスのネットワーク部はIPアドレスと同じビット列なので、
①IPアドレスとサブネットマスク(すべて1)の論理積を取る
②IPアドレスと反転したサブネットマスク(すべて0)の論理和を取る
のどちらかです。
ホスト部を考える
ブロードキャストアドレスのホスト部はすべて1なので、
①IPアドレスと反転したサブネットマスク(すべて1)の論理和を取る
しかありません。
ネットワーク部とホスト部の両方を満たす方法は、IPアドレスと反転したサブネットマスクの論理和を取る方法だけですね。よって答えはエです。