この記事では、IPアドレスについて、初心者にも分かりやすく、図解付きで丁寧に解説しています!
IPアドレス
- IPアドレスはインターネット上の全てのコンピュータに割り当てられた番号で、IPアドレスがあることで正しく相手のコンピュータにデータを届けることができます。
- IPアドレスにはIPv4とIPv6がある。
- IPアドレスを人間に分かるような文字列に変換したモノをドメイン名と呼び、IPアドレスとドメイン名を変換する仕組みをDNSと呼ぶ。
ネットワーク部とホスト部
- IPv4のIPアドレスはネットワーク部とホスト部に分けられる。
- ホスト部が全て0のIPアドレスはネットワークアドレスと呼ばれる。
- ネットワークの規模によってIPアドレスはクラスA/クラスB/クラスCに分類される。
- ホスト部の一部を使ってネットワーク部を再定義することをサブネット化と呼ぶ。「192.168.30.32/28」と書いてあれば、先頭28桁がネットワーク部であることを意味する。
グローバルIPアドレスとプライベートIPアドレス
- グローバルIPアドレスはインターネット上で使われるIPアドレスで、プライベートIPアドレスはLAN内で使われるIPアドレス。
- NATは1つのプライベートIPアドレスとグローバルIPアドレスを相互に変換する仕組み。
- NAPTは複数のプライベートIPアドレスとグローバルIPアドレスを相互に変換する仕組み。IPマスカレードとも呼ぶ。
IPアドレス
IPアドレスは、インターネット上に存在する全ての端末に割り当てられている識別番号です。サーバ、パソコン、携帯電話などインターネットと繋がっている全ての端末にIPアドレスが与えられています。IPアドレスがあることで、どの端末にデータを送れば良いのかが分かるようになります。IPアドレスはネットワーク界の住所なんですね。

IPアドレスにはIPv4とIPv6がある
IPv4とIPv6はインターネット通信で使われるIPと呼ばれるプロトコルのバージョンによって使い分けられます。基本情報ではIPv4が出題されます。
IPv4
IPv4では32ビットの2進数でIPアドレスを表現します。しかし、例えば、「10101100001110100011100011100101」と表現されても分かりにくいですよね。
なので、32ビットを8ビットのブロックに分けて10進数に変換し、「.」で繋いで表現するのが一般的です。

2進数から10進数に変換する方法について自信が無い方はこちらの記事を見てみて下さい。

IPv6
IPv6では128ビットの2進数でIPアドレスを表現します。しかし、これもIPv4と同じで128個の0と1が並んでいても何がなんだか分かりませんよね。
なので、128ビットを4ビットのブロックに分けて16進数に変換し、「:」で繋いで表現するのが一般的です。

16進数にについて自信が無い方はこちらの記事を見てみて下さい。

(参考)IPv6では0を省略できる「2001:0db8:85a3:0000:0000:8a2e:0070:7334」を例に0の省略方法を見てみましょう。
①各ブロックで前に0が続いている場合、その0は省略できます。ただし、「0000」を省略する場合は、0を1つ残す必要があります。例えば「0070」は「70」、「0000」は「0」にすることができます。なので、例のIPアドレスは「2001:db8:85a3:0:0:8a2e:70:7334」と表現出来ます。
②0だけのブロックがあれば「::」で省略できます。例えば①の結果IPアドレスが「~:0:0:0:~」となっていれば、「~::~」にすることができます。なので、①のIPアドレスは「2001:db8:85a3::8a2e:70:7334」と表現出来ます。「::」は1回しか使えません。
IPアドレスを分かりやすく表現したドメイン名
IPアドレスって数字の羅列で人間にとっては分かりにくいものになっています。これを人間に分かりやすいように文字列に変換したものがドメイン名です。サイトURLの「shikakau-dou.com」がドメイン名に当たります。
コンピュータはIPアドレスしか理解できないので、通信する時はドメイン名をIPアドレスに変換する必要があります。また、IPアドレスのままだと人間が理解しにくいのでドメイン名に変換する必要があります。IPアドレス⇔ドメイン名に変換することを名前解決と言います。また、IPアドレス⇔ドメイン名の変換を行う仕組みをDNSと言います。

IPアドレスのネットワーク部とホスト部
ネットワーク部とホスト部
IPアドレスはネットワーク部とホスト部で構成されています。
ネットワーク部:どのネットワークに所属しているかを表す
ホスト部 :どのコンピュータかを表す

ホスト部が全て0のIPアドレスと全て1のIPアドレスは特別なIPアドレスです。なので、コンピュータに割り当てることが出来ません。
ホスト部が全て0、全て1のIPアドレス
- 全て0のアドレス
ホスト部が全て0のアドレスはネットワークアドレスと呼ばれ、そのネットワーク自体を表します。 - 全て1のアドレス
ホスト部が全て1のアドレスはブロードキャストアドレスと呼ばれ、そのネットワーク内の全てのコンピュータにデータを一斉送信するために使われます。
IPアドレスのクラス
ネットワークの規模によって、ネットワーク部とホスト部の桁数が変わります。従業員数が多い大企業はネットワークに含まれるコンピュータが多いのでホスト部の桁を大きくする必要がありますし、人が少ない組織ではホスト部の桁を大きくする必要がありません。
IPアドレスはネットワークの大きさによってクラスA、クラスB、クラスCに分けることが出来ます。また、特別な通信に使われるクラスDというのも存在します。

クラスAは先頭8ビットがネットワーク部で構成されています。ホスト部に使えるビット列が多いので、多くのコンピュータを所属させることが出来ます。大規模ネットワークに使われます。ネットワーク部の先頭は「0」から始まります。
クラスBは先頭16ビットがネットワーク部で構成されています。中規模ネットワークに使われます。ネットワーク部の先頭は「10」から始まります。
クラスCは先頭24ビットがネットワーク部で構成されています。小規模ネットワークに使われます。ネットワーク部の先頭は「110」から始まります。
ちなみにクラスDは「1110」から始まります。
サブネットワーク
ネットワークに所属するコンピュータが多いと通信が混雑して速度が遅くなります。そのため、建物のフロアや部門ごとにネットワークを細分化することがあります。これをサブネット化と言います。
サブネット化ではホスト部の上位ビットを借りてサブネット部を構成します。サブネット化することで、ホスト部の一部を使ってネットワーク部を定義することが出来ます。

サブネットマスクは各ビットの値によってネットワーク部とホスト部を再定義します。ビットが1ならネットワーク部、0ならホスト部となります。なので、下の例なら先頭26桁がネットワーク部で、後ろ6桁がホスト部になります。

サブネットマスクの別の表記法
サブネットマスクはビット列で表記する方法以外に、IPアドレスの隣に、ネットワーク部が何ビットなのかを示す方法があります。例えば、「192.168.30.32/28」と書いてあれば、先頭28桁がネットワーク部であると分かります。

グローバルIPアドレスとプライベートIPアドレス
IPアドレスにはグローバルIPアドレスとプライベートIPアドレスがあります。
グローバルIPアドレスは、インターネットの世界で使われるIPアドレスで、プライベートIPアドレスは、LAN内で使われるIPアドレスです。
グローバルIPアドレス
インターネット上での通信で使用するIPアドレス。世界中に同じIPアドレスは存在しない。
プライベートIPアドレス
特定のネットワーク内でのみ使用するIPアドレス。特定のネットワーク内で重複が無ければ自由に設定できる。

NATとNAPT
LAN内でプライベートIPアドレスを使っているコンピュータもLAN外のコンピュータとやり取りするためには、グローバルIPアドレスが必要になります。ルータがLANの中と外を繋ぐ役割を果たしていることが多く、その際、NATやNAPT(IPマスカレードとも呼ぶ)と言う技術を使います。NATやNAPTを使うと、プライベートIPアドレスとグローバルIPアドレスを変換できます。ルータはLAN内ともLAN外ともやり取りをするので、プライベートIPアドレスとグローバルIPアドレスの両方を持ちます。

NATはプライベートIPアドレスとグローバルIPアドレスを1対1で結び付けて変換します。

一方、NAPTは複数のプライベートIPアドレスとグローバルIPアドレスを結び付けて変換します。NAPTはIPマスカレードと呼ばれることもあります。

基本情報技術者試験での出題例
令和元年度秋期問33、平成29年度春期問32
基本情報技術者
午前試験 令和元年度秋期問33、平成29年度春期問32
LANに接続されている複数のPCをインターネットに接続するシステムがあり,装置AのWAN側インタフェースには1個のグローバルIPアドレスが割り当てられている。この1個のグローバルIPアドレスを使って複数のPCがインターネットを利用するのに必要となる装置Aの機能はどれか。

ア DHCP
ウ PPPoE
イ NAPT(IPマスカレード)
エ パケットフィルタリング
正解は”イ”
1つのグローバルIPアドレスを使って、ネットワーク内にある複数のコンピュータをインターネットに接続するので、複数のプライベートIPアドレスと1つのグローバルIPアドレスを対応させる必要があります。よって、答えはNAPTとなります。
平成31年度春期問32
基本情報技術者
午前試験 平成31年度春期問32
192.168.0.0/23(サブネットマスク255.255.254.0)のIPv4ネットワークにおいて,ホストとして使用できるアドレスの個数の上限はどれか。
ア 23
ウ 254
イ 24
エ 510
正解は”エ”
192.168.0.0/23なので、先頭23ビットがネットワーク部になります。よって、ホスト部に割り当てられたビット列は32ビット-23ビット=9ビットです。
よって、割り当てられるIPアドレスの数は2⁹=512個になりますが、全てが0のアドレスと全てが1のアドレスは割り当てできないので、512-2=510個となります。
平成30年度秋期問33
基本情報技術者
午前試験 平成30年度秋期問33
TCP/IPネットワークでDNSが果たす役割はどれか。
ア PCやプリンタなどからのIPアドレス付与の要求に対して,サーバに登録してあるIPアドレスの中から使用されていないIPアドレスを割り当てる。
イ サーバにあるプログラムを,サーバのIPアドレスを意識することなく,プログラム名の指定だけで呼び出すようにする。
ウ 社内のプライベートIPアドレスをグローバルIPアドレスに変換し,インターネットへのアクセスを可能にする。
エ ドメイン名やホスト名などとIPアドレスとを対応付ける。
正解は”エ”
DNSはドメイン名とIPアドレスを対応付けるものなので答えはエです。
平成30年度春期問32
基本情報技術者
午前試験 平成30年度春期問32
次のネットワークアドレスとサブネットマスクをもつネットワークがある。このネットワークをあるPCが利用する場合,そのPCに割り振ってはいけないIPアドレスはどれか。
ネットワークアドレス: 200.170.70.16
サブネットマスク : 255.255.255.240
ア 200.170.70.17
ウ 200.170.70.30
イ 200.170.70.20
エ 200.170.70.31
正解は”エ”
サブネットマスクから上位28ビットがネットワーク部だと分かります。PCに割り振ってはいけないIPアドレスはホスト部が全て0のアドレス及び全て1のアドレスです。
ホスト部が全て0のアドレスはネットワークアドレスとして問題文に与えられており、2進数に変換すると「200.170.70.16」=「11001000.10101010.01000110.00010000」になります(赤字がネットワーク部)。これで、このネットワークにあるPCのネットワーク部が分かりましたね。
ここから、ホスト部が全て1のアドレスは「11001000.10101010.01000110.00011111」=「200.170.70.31」となるので答えは”エ”です。
平成29年度秋期問33
基本情報技術者
午前試験 平成29年度秋期問33
IPv4において,インターネット接続用ルータのNAT機能の説明として,適切なものはどれか。
ア インターネットへのアクセスをキャッシュしておくことによって,その後に同じIPアドレスのWebサイトへアクセスする場合,表示を高速化できる機能である。
イ 通信中のIPパケットを検査して,インターネットからの攻撃や侵入を検知する機能である。
ウ 特定の端末宛てのIPパケットだけを通過させる機能である。
エ プライベートIPアドレスとグローバルIPアドレスを相互に変換する機能である。
正解は”エ”
NATはプライベートIPアドレスとグローバルIPアドレスを変換するプロトコルです。よって答えは”エ”です。
平成29年度秋期問35
基本情報技術者
午前試験 平成29年度秋期問35
次のIPアドレスとサブネットマスクをもつPCがある。このPCのネットワークアドレスとして,適切なものはどれか。
IPアドレス: 10.170.70.19
サブネットマスク:255.255.255.240
ア 10.170.70.0
ウ 10.170.70.31
イ 10.170.70.16
エ 10.170.70.255
正解は”イ”
サブネットマスクを2進数に変換すると、「255.255.255.240」=「11111111.11111111.11111111.11110000」となり、上位28桁がネットワーク部だと分かります。
問題文で与えられているPCのIPアドレスを2進数に変換すると「10.170.70.19」=「00001010.10101010.01000110.00010011」となり、ネットワーク部のアドレスが判明します。
以上から、ネットワークアドレスはホスト部が全て0のアドレスなので、「00001010.10101010.01000110.00010000」=「10.170.70.16」が答えになります。
平成29年度春期問34
基本情報技術者
午前試験 平成29年度春期問34
IPv4アドレス 128.0.0.0 を含むアドレスクラスはどれか。
ア クラスA
ウ クラスC
イ クラスB
エ クラスD
正解は”イ”
問題文のIPアドレスを2進数に変換すると「128.0.0.0」=「10000000.00000000.00000000.00000000」となり、「10」から始まることが判明します。「10」から始まるのはクラスBですね。