1. ホーム
  2. 記事一覧
  3. 【徹底解説】IPアドレスの全知識

2023.03.20

【徹底解説】IPアドレスの全知識

本記事ではIPアドレスについて解説します。

IPアドレスInternet Protocol Address)とは、IP(通信をする際の約束事)に利用される通信の相手先を識別するための番号のことを指します。現在、IPにはIPv4IPv6が存在します。「v」はバージョンの略称です。つまり、IPv4は第4世代、IPv6が第6世代という意味です。IPv4とIPv6の比較を、以下の表にまとめました。

IPv4IPv6
アドレスの範囲32bit128bit
アドレスの最大個数約43億個(2の32乗個)約340澗個(2の128乗個)
アドレスの表記方法10進数16進数

本記事では、IPv4で使用されるIPアドレスの解説をします。以後、「IPアドレス」と記述されていた場合、「IPv4のIPアドレス」のことを指します。

IPアドレスの枯渇問題

IPv4は通信手段として確立はしていますが、IPv4のIPアドレスは約43億個のIPアドレスしか用意できないという問題が存在します。(2015年頃にはIPv4のIPアドレスは全世界で枯渇してしまいました。)

IPv4の後継であるIPv6は約340澗個(事実上の無限大)のIPアドレスを用意することができ、この問題を根本から解決することが出来ます。しかし、IPv4のインターネットとは全く異なる仕様のため、IPv6への移行が進んでいないのが現状です。そのため、現在主流で利用されているのはIPv4であり、IPv4のIPアドレスの枯渇問題に対して対策を講じる必要があります。

この問題への対策と、対策のキーワードを以下の表にまとめました。

IPアドレス枯渇問題の対策対策のキーワード
IPアドレスを用途によって使い分けるグローバルIPアドレス・プライベートIPアドレス
IPアドレスをユーザの規模によって分類するクラス

IPアドレスを用途によって使い分ける

従来は1個/約43億個のIPアドレスを個々に割り当てていましたが、IPアドレスの枯渇問題が生じたため、プライベートIPアドレスが導入されました。プライベートIPアドレスが誕生した背景を、プライベートIPアドレスの導入に関する文書である「RFC 1597」から一部抜粋します。

プライベートIPアドレスを導入した動機

  • グローバルIPアドレスを企業内の通信のみに使用する企業が増えている。
    • この企業は他の企業やインターネットそのものに直接接続しようとはしていない。
  • 現在では全てのホストにグローバルに一意のアドレスを割り当てているが、IPアドレスが枯渇してしまうという懸念がある

上記の背景が存在し、同LAN内であればルータ等を介さず直接通信を行うことができるプライベートIPアドレスが導入されました。プライベートIPアドレス導入後、従来の1個/約43億個のIPアドレスはグローバルIPアドレスと呼ばれるようになりました。

グローバルIPアドレスとプライベートIPアドレスの比較を、以下の表にまとめました。

IPアドレスの種類通信場所通信機器ネットワーク
グローバルIPアドレス外部(インターネット)との通信サーバとルータの相互通信WAN
プライベートIPアドレス内部(家庭内・会社内)の通信ルータとPC・スマホの相互通信LAN

グローバルIPアドレス

グローバルIPアドレスとは、インターネットに接続できるIPアドレスのことで、世界に一つだけの値(1個/約43億個)です。IPアドレスの枯渇問題から分かるように、希少なIPアドレスです。そのため、誰でも自由に設定できるというわけではありません。

グローバルIPアドレスはICANN(The Internet Corporation for Assigned Names and Numbers)という特定の国や地域に属さない組織によって世界的に管理されています。ICANNから日本の管理組織であるJPNIC(Japan Network Information Center)に振り分けられ、そこからISPInternet Service Provider)を経由して各ユーザ(企業含む)へと割り振られます。

プライベートIPアドレス

プライベートIPアドレスでインターネットを利用できる仕組みと、プライベートIPアドレスの重複について説明します。

  • プライベートIPアドレスでインターネットを利用できる仕組み

    ISPから割り当てられるグローバルIPアドレスは、基本的に1契約につき1個のグローバルIPアドレスです。しかし、LAN内(家庭内など)で2つ以上のPCやスマホなどの通信機器を利用していることが多いと思います。つまり、家庭内で使用している通信機器のほとんどにはプライベートIPアドレスが割り当てられているということです。

    しかし、プライベートIPアドレスはルータ等を介さないとインターネットには接続できません。では、どのようにしてプライベートIPアドレスを利用しながらインターネットを利用できるのか、を説明します。

    家庭内でルータを使用した例を、以下の図にまとめました。

    光回線を契約した場合、グローバルIPアドレスは回線開通作業が終了次第、ONU(光回線の終端装置)に1つだけ割り振られます。

    そして、このONUにルータを接続します。ルータには、グローバルIPアドレスとプライベートIPの変換を行うNAPT変換の機能が備わっています。

    ルータは、端末Aや端末Bがインターネットから通信を受信する際はグローバルIPアドレスをプライベートIPアドレスに変換し、それぞれの端末へと通信を届けます。また、それぞれの端末がインターネットへ通信を送信する際はプライベートIPをグローバルIPアドレスに変換し、ONUへと通信を届けます。

    この仕組みによって、プライベートIPアドレスでインターネットを利用することが実現しています。

  • プライベートIPアドレスの重複

    プライベートIPアドレスは、同LAN内の場合はグローバルIPアドレスと同様に重複してはいけません。しかし、以下の図のように異なるLANであればプライベートIPアドレスが被っても問題なく通信ができます。

IPアドレスをユーザの規模によって分類する

ICANNは、IPアドレスの枯渇問題へのさらなる対策としてクラスフルアドレッシングを導入しました。クラスフルアドレッシングとは、IPアドレス空間全体をアドレスクラスに分類し、利用するユーザの規模の大きさに応じてIPアドレスを割り当てる仕組みです。

アドレスクラスに関して、以下の表にまとめました。

IPアドレス帯割り当て先頭bitの値用途など
1.0.0.0~126.255.255.255クラスA0~・一般的なユニキャスト通信・大規模ネットワーク用(最大約1600万台)
128.0.0.0~191.254.255.255クラスB10~・一般的なユニキャスト通信・中規模ネットワーク用(最大65,534台)
192.0.0.0~223.255.254.255クラスC110~・一般的なユニキャスト通信・小規模ネットワーク用(最大254台)
224.0.0.0~239.255.255.255クラスD1110~IPマルチキャスト専用
240.0.0.0~255.255.255.255クラスE1111~将来の使用のために予約されている

ユーザに割り当てられるのはクラスA、クラスB、クラスCのどれかです。この3種類のクラスに焦点を当てて説明します。

クラスへの割り当ては、例えば家庭内のLANであればクラスCで十分なのでクラスCへ、企業規模のLANであればクラスBもしくはクラスAに割り当てる、といった方法で行います。割り当てられるそれぞれのクラスのIPアドレス帯を理解するために、IPアドレスが持つ情報から説明します。

IPアドレスブロックが持つ情報

IPアドレスは192.168.134.51のような数字の羅列で、4つの数字と3つの.(ピリオド)で1つのブロックです。このIPアドレスブロックが持つ情報を、以下の図にまとめました。

IPアドレスは本来、図の①ように32bitの固定長で2進数で表現されます。2進数表記は目で見て理解しづらいので、図の②のように8bitごとにピリオドで区切ります。そして、図の③のように人間の目で見て分かりやすいように10進数とピリオドで表記します。

また、IPアドレスブロックはネットワーク部とホスト部に分かれており、どこで区切るかによってクラス分けを行います。

ネットワーク部とホスト部

クラスA、クラスB、クラスCに該当するIPアドレスを例に挙げて、ネットワーク部とホスト部を説明します。以下の図をご覧ください。

上記の図から分かるように、クラスフルアドレッシングによるアドレスクラスはネットワーク部とホスト部の範囲があらかじめ決まっているのが特徴です。

ネットワーク部は、どのネットワークに所属しているかを示しています。①、②、③それぞれのネットワーク部の101128.121192.168.134は、どのネットワークに所属しているかを示す「ネットワークアドレス」です。

ホスト部は、所属するネットワークアドレスが収納できるホストの最大数を示しています。①、②、③それぞれのホスト部の170.168.64100.32、3は、どのホストかを示す「ホストアドレス」です。

ネットワークアドレスとホストアドレスを以下の図にまとめました。

クラスフルアドレッシングではIPアドレスの枯渇問題は解決しなかった

クラスフルアドレッシングにはユーザに割り当てられるアドレスクラスが3種類しかなく、いずれのアドレスクラスもユーザにとって丁度良いアドレスクラスが存在しませんでした。そのため、「3種類の中では」大きすぎず、小さすぎないクラスBにユーザからのIPアドレスの割り当て要求が集中しました。

クラスBの割り当てを受けたからといって、クラスBの接続可能最大数のホストが同時に接続することが稀なネットワークも存在し、IPアドレスが無駄に消費される結果となりました。そのため、現在のIPアドレスの割り当てでは、クラスフルアドレッシングは使用されていません

CIDR(クラスレスアドレッシング)

現在主流で使用されているIPアドレスの割り当ては、 CIDR(クラスレスアドレッシング) と呼ばれる仕組みが使用されています。クラスフルアドレッシングはネットワーク部とホスト部を8bit単位で区切りますが、CIDRを使うと任意のbitでネットワーク部とホスト部の境界を決めることができます。

CIDRを用いる事でクラスアドレッシングで問題だった無駄なIPアドレスの消費を抑えられることができます。

CIDR周りの用語

CIDRを理解する上で重要な用語を以下の表にまとめました。

用語用語の説明補足説明
サブネットネットワークをより小さく分割したネットワークのことサブネットを構築することをサブネット化と呼ぶ
サブネットマスクIPアドレスと組み合わせてサブネット化を行うネットワーク上の特定のIPアドレスが、どのサブネットに所属しているのかを示すための数値
CIDR(サイダー)クラスレスアドレッシングの別名CIDRとは、クラスレスを実現するための仕組み
CIDR表記IPアドレス/サブネットマスクの表記を簡略化したものサブネットマスク255.255.255.0を/24と表記する

「サブネット・サブネットマスク」に関しては、以下の記事をご覧ください。

https://envader.plus/article/53

「CIDR・CIDR表記」に関しては、以下の記事をご覧ください。

https://envader.plus/article/52

IPアドレスを確認してみよう

IPアドレスの概要が掴めたところで、IPアドレスを確認する方法を説明します。グローバルIPアドレスとプライベートIPアドレスの調べ方を以下の表にまとめました。

  • Webサービスを利用する場合

    WebサービスIPアドレスの種類特徴・用途
    toolbox.googleapps.com/apps/dig/)グローバルIPアドレスWeb上で公開しているWebサイトなどのIPアドレスを調べられる
    www.ugtop.com/spill.shtml)(運営:ugtop)グローバルIPアドレスWeb上で自身が利用しているIPアドレスを調べる
    www.wireshark.org/)プライベートIPアドレスWindowsOS/MacOSでIPアドレスを調べる場合に利用する
    apps.apple.com/jp/app/inet-network-scanner/id340793353プライベートIPアドレスiOSでIPアドレスを調べる場合に利用する
  • CLI(Command Line Interface)を用いて調べる場合

    グローバルIPアドレスプライベートIPアドレス
    Windowsnslookup FQDN*ipconfig
    Macnslookup FQDN*ifconfig

    ※FQDN:Fully Quanlified Domain Name(完全修飾ドメイン名)

CLIを用いてIPアドレスを確認する

実際にWindowsとMacのCLIを用いてIPアドレスを確認します。グローバルIPアドレスの確認先(FQDN)にはGoogle.comを利用します。

  • Windows(コマンドプロンプト)

    • グローバルIPアドレス

      WindowsでGoogle.comのグローバルIPアドレスを調べます。コマンドプロンプトでnslookup google.comと入力してください。

      出力結果の内、142.250.199.110がGoogle.comのグローバルIPアドレスです。

    • プライベートIPアドレス

      Windowsで自身のプライベートIPアドレスを調べます。コマンドプロンプトでipconfigと入力してください。

      通信環境がWi-Fiのため、「Wireless LAN adapter Wi-Fi」に表示された172.16.9.71がプライベートIPアドレスです。

  • Mac(ターミナル)

    • グローバルIPアドレス

      MacでGoogle.comのグローバルIPアドレスを調べます。ターミナルでnslookup google.comと入力してください。

      出力結果のうち、142.250.196.142がGoogle.comのグローバルIPアドレスです。

    • プライベートIPアドレス

      Macで自身のプライベートIPアドレスを調べます。ターミナルでifconfigと入力してください。

    IPアドレスをブラウザに入力してみる

    上記のWindows環境で確認したGoogle.comのグローバルIPアドレスを実際に使用してみます。

    1. GoogleのグローバルIPアドレス「142.250.199.110」をブラウザに入力し、エンターを押します。

    2. 以下のように、Google.comのWebページが表示されます。

    このように、ブラウザにGoogle.comと入力した時と同じWebページが表示されました。こちらの仕組みを説明します。

    Googleの検索ページにアクセスしたい場合、通常であればブラウザでFQDN(Google.com)を入力し、送信します。送られたFQDNはDNSを介してIPアドレスに変換されます。そのIPアドレスをサーバが理解し、対応したWebページをレスポンスとして返却します。

    FQDNはコンピュータが理解できないので、一度IPアドレスに変換する必要があります。そのため、全てのFQDNはIPアドレスと紐付けられています

    しかし、ブラウザにIPアドレスを入力し、送信した場合、既にコンピュータが理解できる状態になっています。送信されたIPアドレスをサーバが理解し、対応したWebページをレスポンスとして返却します。

    つまり、今回IPアドレスを入力して送った通信はDNSを介する必要がないというだけでFQDNを入力した時と同じ結果を得られた、ということです。しかし、DNSを介する必要がないということは、「IPアドレスの中にはFQDNに紐づかないものも存在する」ということには注意する必要があります。

    まとめ

    こちらの記事ではIPアドレスについて解説しました。IPアドレスに導入された様々な仕組みを理解するためには、仕組みが導入された背景を知るすることが重要です。

    今後IPv6に完全に移行すればIPv4で用いられている様々な仕組みが必要なくなるかもしれません。しかし、まだその目処は立っておらずIPv4が主流で利用されているのが現状です。

    自分が携わるサービスが多くのユーザに支障なく利用できるよう、IPアドレスの知識やIPアドレス周りの「サブネット・サブネットマスク」、「CIDR・CIDR表記」の知識も合わせて学習していくことをおすすめします。

【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

IT未経験者必見 USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。

「フリーランスエンジニア」

近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。

「成功する人とそうでない人の違いは何か?」

私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。

比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。

多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、

note記事3000いいね超えの殿堂記事 今すぐ読む

エンベーダー編集部

エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

関連記事