基本情報技術者

【基本情報技術者試験】IPアドレスとサブネットマスク

2024年7月30日

今回のテーマは「IPアドレス」と「サブネットマスク」についてです。

サブネットマスクの問題は難しい...

問題

192.168.0.0/23(サブネットマスク255.255.254.0)のIPv4ネットワークにおいて,ホストとして使用できるアドレスの個数の上限はどれか。

ア:23  イ:24  ウ:254  エ:510

基本情報技術者平成31年春期 午前問32

問題

次のネットワークアドレスとサブネットマスクをもつネットワークがある。このネットワークをあるPCが利用する場合,そのPCに割り振ってはいけないIPアドレスはどれか。

  ネットワークアドレス:200.170.70.16

  サブネットマスク  :255.255.255.240

ア:200.170.70.17  イ:200.170.70.20  ウ:200.170.70.30  エ:200.170.70.31

基本情報技術者平成30年春期 午前問32

基本情報技術者試験や応用情報技術者試験で出題される「IPアドレス」と「サブネットマスク」の問題。サブネットマスクの計算方法がわからないと難しく感じる問題ですが、計算方法がわかれば解ける問題です。

本記事では、「IPアドレス」と「サブネットマスク」について解説します。

本記事で学べること

  • IPアドレスについて理解する
  • サブネットマスクの計算方法について理解する
  • 基本情報技術者試験 過去問の解き方を学ぶ

スポンサーリンク

IPアドレスとサブネットマスク

IPアドレスとは、インターネット上の住所のことです。

インターネットに繋がっている機器には、必ずIPアドレスが付与されます。

インターネット上の住所である「IPアドレス」は、重複しないように割り当てられます。

IPアドレスの管理

インターネット上での通信で欠かせないIPアドレスは、ICANN(The Internet Corporation for Assigned Names and Numbers)という非営利法人が管理しています。

ただし、全世界の情報をICANNがすべて管理しているわけではありません。

次の図のように、ICANNの下には北米、アジア、ヨーロッパなどの地域単位で管理する「RIR」、その下には国単位で管理する「NIR」、最後にISP(Internet Service Provider)等の「LIR」が存在します。

ICANN
  • RIR:北米、アジア、ヨーロッパなどの地域単位で管理
  • NIR:国単位で管理
  • LIR:ISP(Internet Service Provider)など

企業や個人は、ISP(Internet Service Provider)と契約して、インターネットを使います。

「グローバルIPアドレス」と「プライベートIPアドレス」

IPアドレスには「グローバルIPアドレス」と「プライベートIPアドレス」が存在します。

グローバルIPアドレスは、インターネットに接続するときに必要なIPアドレスです。

それに対しプライベートIPアドレスは、会社や家庭などで構築されたネットワーク内でのみ使用するIPアドレスです。

プライベートIPアドレスが登場した背景には、IPアドレス枯渇問題(IPv4)があります。IPアドレス枯渇問題とは、IPアドレスの数が足りなくなるという問題です。

「すべてのコンピュータがインターネットへアクセスできる必要はない」という概念のもとに、組織内のコンピュータには一定範囲のIPアドレスをプライベートIPアドレスとして割り当てるという仕組みが生まれました。

次の図は、グローバルIPアドレスとプライベートIPアドレスのイメージ例です。

プライベートIPアドレスイメージ図

組織内(プライベートネットワーク)のコンピュータには、プライベートIPアドレスが割り当てられています。

世界中で重複しないように割り当てる必要があるグローバルIPアドレスとは違い、プライベートIPアドレスは、組織内(プライベートネットワーク)で重複しなければよいのです。

「プライベートネットワークA」と「プライベートネットワークB」のコンピュータには同じプライベートIPアドレスが付与されています。このようにIPアドレスを節約する仕組みがプライベートIPアドレスです。

ただし、プライベートIPアドレスではインターネット上で通信できません。

インターネットに接続するには、プライベートIPアドレスをグローバルIPアドレスに変換する必要があります。

このIPアドレスを変換する技術にはNAT(ナット)、NATの問題点を解消したNAPT(ナプト)があります。

「クラスフル方式」と「クラスレス方式」

IPアドレスは、ネットワーク部とホスト部の2つで構成されています。

IPアドレスのネットワーク部とホスト部

ネットワーク部は、どのネットワークに属しているかを示すアドレスであり、ホスト部はネットワーク内のホストに割り当てられたアドレスです。

住所と同じで、ネットワーク部には〇〇県△△町、ホスト部には△△町内の番地が割り当てられているイメージです。

従来のIPアドレスは、「クラスフル方式」という方式を採用していたため、ネットワーク部とホスト部が固定されていました。

クラスアドレスの範囲ネットワーク部の範囲割り当て可能なホスト数
クラスA0.0.0.0 - 127.255.255.255先頭8ビット16777214個
クラスB128.0.0.0 - 191.255.255.255先頭16ビット65534個
クラスC192.0.0.0 - 223.255.255.255先頭24ビット254個

ネットワーク部とホスト部が固定だったため、例えば、300個のIPアドレスが必要な企業が「クラスB」を使用した場合、65,234個(5,534 - 300 = 65,234)のIPアドレスが未使用で無駄になってしまいます。

そこで登場したのが「クラスレス方式」です。

クラスレス方式では、サブネットマスクを使い「ネットワーク部」と「ホスト部」の境界を変更することを可能にしています。

次の図は、サブネットマスクのイメージ例です。

サブネットマスク

サブネットマスクは、2進数表記「1」の部分が「ネットワーク部」、「0」の部分がホスト部を表します。

上記図の割り当て可能なホスト数は「254個」です。(28-2=254個)

それでは、サブネットマスクの「ネットワーク部」と「ホスト部」の境界を右へ1つずらしてみます。

サブネットマスクの位置を移動

上記図のように、サブネットマスクの「ネットワーク部」と「ホスト部」の境界を右へ1つずらすと、割り当て可能なホスト数は「126個」に変わります。(27-2=126個)

ネットワーク部とホスト部が固定されていた「クラスフル方式」とは違い、「クラスレス方式」では、サブネットマスクを使いネットワーク部とホスト部の境界を変動させることで、割り当て可能なホスト数を変更可能にしています。

「IPv4」と「IPv6」

IPアドレスの主なバージョンには、「IPv4」と「IPv6」があります。

IPv6は、IPv4のIPアドレスが足りなくなるという「IPアドレス枯渇問題」を解決するために登場したバージョンです。日本におけるIPv6の利用率は、2024年2月22日時点で50.57%と米Googleが公表しています。

IPv4の使用可能なIPアドレスは約232(約43億)ですが、IPv6は2128個(約340澗)です。

IPアドレスの数を節約する必要があったIPv4とは違い、IPv6は十分すぎる数のIPアドレスが用意されています。

IPv6のIPアドレスは、次のように128ビットで表現し、16ビット単位にコロン(:)で区切り、十六進法で表記します。

(例)301a:10b8:bd01:0112:188a:1fc0:1001:10aa

サブネットマスクの計算方法

基本情報技術者試験や応用情報技術者試験では、サブネットマスクを使ったIPアドレスの計算問題がよく出題されます。

本記事では、次の問題の解き方を解説します。

問題

IPアドレス「172.30.123.45」、サブネットマスク「255.255.252.0」のネットワークアドレス、ブロードキャストアドレス、ホストに使用できるアドレスの範囲を求めなさい。

「ネットワークアドレス」の求め方

ネットワークアドレスは、ネットワーク自体を指すものであり、ホスト部が全て「0」のアドレスです。

ネットワークアドレスの求め方は次のとおりです。

  • サブネットマスク「255.255.252.0」を2進数に変換する
  • IPアドレス「172.30.123.45」を2進数に変換する
  • IPアドレスとサブネットマスクとの論理積(AND)を求める

①サブネットマスク「255.255.252.0」を2進数に変換する

まずは、サブネットマスク「255.255.252.0」を2進数に変換します。

サブネットマスク:255.255.252.0 → 11111111 11111111 11111100 00000000

②IPアドレス「172.30.123.45」を2進数に変換する

続いて、IPアドレス「172.30.123.45」を2進数に変換します。

IPアドレス:172.30.123.45 → 10101100 00011110 01111011 00101101

③IPアドレスとサブネットマスクとの論理積(AND)を求める

最後にサブネットマスクとIPアドレスの論理積(AND)を求めます。

論理和

論理積の結果が「10101100 00011110 01111000 00000000」

これを10進数に戻すと「172.30.120.0」、これがネットワークアドレスです。

ブロードキャストアドレスの求め方

ブロードキャストアドレスは、あるセグメントに接続されている全てのホストにパケットを送信するためのものであり、ホスト部が全て「1」のアドレスです。

ネットワークアドレスのホスト部を全て「1」にしたのがブロードキャストアドレスです。(サブネットマスク「11111111 11111111 11111100 00000000」の「0」がホスト部)

ネットワークアドレスが「10101100 00011110 01111000 00000000」

↓ ホスト部をすべて「1」に変える

ブロードキャストアドレス「10101100 00011110 01111011 11111111」

これを10進数に戻すと「172.30.123.255」、これがブロードキャストアドレスです。

ホストに使用できるアドレス範囲の求め方

ネットワークアドレスとブロードキャストアドレスがわかれば、ホストに使用できるIPアドレスの範囲がわかります。

ネットワークアドレスが「172.30.120.0」、ブロードキャストアドレスが「172.30.123.255」なので、ホストに使用できるIPアドレスの範囲は「172.30.120.1 ~ 172.30.123.254」です。

スポンサーリンク

基本情報技術者試験 過去問の解説

基本情報技術者平成31年春期 午前問32

問題

192.168.0.0/23(サブネットマスク255.255.254.0)のIPv4ネットワークにおいて,ホストとして使用できるアドレスの個数の上限はどれか。

ア:23  イ:24  ウ:254  エ:510

基本情報技術者平成31年春期 午前問32

設問のIPアドレス「192.168.0.0」の後方に付加されている「/23」はアドレスプレフィックスといい、先頭から何ビットまでがネットワークアドレスであるかを示す表記法です。

Ipv4のIPアドレスは32ビットであり、「/23」は先頭から23ビット目までがネットワークアドレスであることを示しているので、ホストアドレスは残りの9ビットです。

アドレスプレフィックス

ホスト部は9ビットなので、29 = 512個のアドレスが使えますが、ホスト部がすべて「0」のネットワークアドレスと、ホスト部がすべて「1」のブロードキャストアドレスは、予約されているため、ホストアドレスとして割り当てることはできません。

したがって、ホストに割り当て可能なアドレスの上限は510個(512 - 2)です。

「エ」が正解です。

基本情報技術者平成30年春期 午前問32

問題

次のネットワークアドレスとサブネットマスクをもつネットワークがある。このネットワークをあるPCが利用する場合,そのPCに割り振ってはいけないIPアドレスはどれか。

  ネットワークアドレス:200.170.70.16

  サブネットマスク  :255.255.255.240

ア:200.170.70.17  イ:200.170.70.20  ウ:200.170.70.30  エ:200.170.70.31

基本情報技術者平成30年春期 午前問32

ネットワークアドレス「200.170.70.16」を2進数に変換すると「11001000 10101010 01000110 00010000」、サブネットマスク「255.255.255.240」を2進数に変換すると「11111111 11111111 11111111 11110000」です。

2進数に変換

続いて、ネットワークアドレスのホスト部をすべて「1」にして、ブロードキャストアドレスを求めます。

ネットワークアドレスが「11001000 10101010 01000110 00010000」

↓ ホスト部をすべて「1」に変える

ブロードキャストアドレス「11001000 10101010 01000110 00011111」

これを10進数に戻すと「200.170.70.31」、これがブロードキャストアドレスです。

ネットワークアドレスが「200.170.70.16」、ブロードキャストアドレスが「200.170.70.31」なので、ホストに使用できるIPアドレスの範囲は「200.170.70.17 ~ 200.170.70.30」です。

この範囲外のIPアドレスをホストに割り振ってはいけません。ア~エを順番に確認していきます。

ア:200.170.70.17

不正解:範囲内なので、ホストに割り振ってよいIPアドレスです。

イ:200.170.70.20

不正解:範囲内なので、ホストに割り振ってよいIPアドレスです。

ウ:200.170.70.30

不正解:範囲内なので、ホストに割り振ってよいIPアドレスです。

エ:200.170.70.31

正解:ブロードキャストアドレスなので、ホストに割り振ってはいけません。

「エ」が正解です。

helpful