テクノロジー

2022年7月22日

IPアドレスとは

目次

1. Webとは
2. Webを支えるクライアント / サーバとは
3. HTTPとは
4. URL / HTTPメソッドとは
5. Webアプリケーションとは
6. IPアドレスとは
7. TCP/IPとは
8. ドメイン / DNSサーバとは
9. ポート番号とは
10. 代表的なプロトコル
11. Webアプリケーションを支えるサーバの種類

*上記のリンクにアクセスすることで、続きをDIVER Learningsで確認できます。

ゴール

  • IPアドレスとはなにかを理解する

IPアドレスとはなにか

あるサーバが提供しているサービスを利用したいとき、クライアントからどのサーバに対してHTTPリクエストを送るのかは、URLで指定します。
たとえば Googleの検索サービスを利用するときには、https://www.google.com と入力して送信します。

しかし、このURLの「google.com」は、人間にわかりやすい表記にしているだけです。このわかりやすい表記をドメインといい、実際にはこのドメインと一意に紐づいた住所に相当するコードが使われています。これがIPアドレスです。ドメインについてはこのあとのテキストで詳しく学びます。

IPアドレスについて、手紙や小包を送ることと比較して考えてみましょう。
現在、日本国内だけでなく、世界中に郵便を送ることができます。そのとき必ず自分の住所と名前、相手の住所と名前を書きますが、インターネットでやり取りする上で、その住所に相当するのがIPアドレスです。また、世界中に広がる郵便システムに相当する仕組みがインターネットです。

Webアプリケーションでは、クライアントから発せられたHTTPリクエストという荷物は、インターネットを通して、IPアドレスで指示されたサーバへ届けられます。同様にサーバから返信されるHTTPレスポンスという荷物は、IPアドレスで指示されるクライアントへ届けられます。

Image from Gyazo
 
では、IPアドレスとはどのような形式をしてるのでしょうか。
検索のときに問い合わせをしているGoogleのサーバのIPアドレスを、実際に調べてみましょう。

Macの場合

  • ターミナルを起動します。起動の仕方は次の手順に従ってください。

Finder > アプリケーション > ユーティリティ > ターミナルを起動

Windowsの場合

  • コマンドプロンプトを起動します。起動の仕方は次の手順に従ってください。

Windowsキー + Rキー(WindowsマークのキーとRキーを同時に押す) > 「ファイル名を指定して実行」ボックスで「cmd」と入力しOKボタン > コマンドプロンプト起動

共通作業

  • PCをインターネットに接続した状態で、以下のコマンドを実行してください。これは、ドメイン名に紐づいているIPアドレスを探すためのコマンドです。
$ nslookup www.google.com

すると、以下のような結果になるはずです。

Macの場合

$ nslookup www.google.com
Non-authoritative answer:
Name:   www.google.com
Address: 172.217.161.228

Windowsの場合

$ nslookup www.google.com
権限のない回答:
名前:    www.google.com
Addresses:  2404:6800:400a:80c::2004
          172.217.161.228

※実際の画面とは、数字が異なることがあります。

ここで表示された172.217.161.228というのが、GoogleのサーバのIPアドレス(IPv4アドレス)です。
Googleにはサーバが複数台用意されているため、実施ごとに異なるIPアドレスが表示される可能性があります。
参考までに2404:6800:400a:80c::2004のような表示があれば、これもGoogleのサーバのIPアドレス(IPv6アドレス)です。こちらについては、後ほど補足します。

IPアドレスは、ピリオドで区切られた4桁の数字の組み合わせで表現します。コンピュータ上では、実際には 32ビットの長さを持つ0と1の情報の組み合わせで構成され、便宜上、8ビット単位の10進数(一般的に使っている数字)で表現されます。
なお、ビットとは、コンピュータの情報を管理する最小単位のことです。データのサイズを表す単位はバイトであり、1バイト=8ビットに相当します。

つづいて、IPアドレスの構成についてみていきましょう。
先ほど「IPアドレスは、インターネット上の住所のようなもの」と説明しました。実際の住所では、郵便局の管轄を表現する部分と、そこに所属する詳細住所に分けることができます。例えば、「東京都渋谷区渋谷1丁目1番1号」という場合は、「東京都渋谷区」までが集配のための管轄地域を表現し、それ以降の「渋谷1丁目1番1号」の部分が詳細な住所に相当します。

IPアドレスも同じような構成を持つことで、効率よく、配送ができるようになっています。
具体的には、IPアドレスは、配送の管轄地域を表現するネットワーク部と、その個別のネットワーク内の所属する場所をあらわすホスト部で構成されます。

Image from Gyazo

ネットワーク部とホスト部の境目は決まっていません。ネットワーク部の境目を示すものとして「サブネットマスク」というものがありますが、ここでは詳しい説明を省略します。

2つのIPアドレスがあったとき、ネットワーク部の値が同じであれば、同じネットワーク(会社や家庭)に所属していることになります。
つまり、ネットワーク部が172.217.161の場合、172.217.161.1172.217.161.230は同じネットワークに所属しているけれども、172.100.100.3は、全く別のネットワークに所属していると判断できます。

ここで広く使われている IPアドレスは、IPv4(バージョン4)といいます。最近では、あまり表に見えないところで IPv6(バージョン6)が使われつつあります。IPv6 は、IPv4 のアドレス数が足りなくなることを考慮し登場したものですが、移行するのが簡単でないため、現在でも多くは IPv4 を使用しています。本テキストでは IPv4 をベースにして話を進めますので、IPv6 についても知りたい方は、ご自身で調べてみてください。

自分のPCのIPアドレスを調べよう

あなたが利用しているPCにも、IPアドレスが割り振られています。IPアドレスがなければ、ネットワークを通して誰ともやり取りができないからです。
では、さっそくネットワーク構成を確認するコマンドを使用して、自分のPCのIPアドレスを調べてみましょう。

Macの場合
ターミナルで以下のコマンドを入力し実行します。
ifconfig を使用します。

$ ifconfig | grep "inet " | grep -v 127.0.0.1

たとえば、結果は次のように出てくるはずです。表示の内容は、環境によって異なります。

$ inet 192.168.3.3 netmask 0xffffff00 broadcast 192.168.3.255

※表記や数字は異なる場合があります。

この場合、192.168.3.3がIPアドレスです。

Windowsの場合
コマンドプロンプトで以下のコマンドを入力し実行します。

$ ipconfig

たとえば、結果は次のように出てくるはずです。表示の内容は、環境によって異なります。

$ ipconfig
イーサネット アダプター イーサネット 4:

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::65cd:1c80:4318:fa43%10
   IPv4 アドレス . . . . . . . . . . . .: 192.168.56.1
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .:
# 省略

※表記や数字は異なる場合があります

このIPv4アドレスと表示された 192.168.56.1 が自身のIPアドレス(IPv4アドレス)になります。

今確認したご自分のPCのIPアドレスは、プライベートIPアドレスといいます。GoogleのサーバのIPアドレスは、グローバルIPアドレスといいます。この違いは、何なのでしょうか。

グローバルIPアドレスとプライベートIPアドレスの違い

PC、スマートフォン、サーバなど、インターネットを通してやり取りするすべての機器には、IPアドレスが割り振られている必要があります。
IPv4で提供できるアドレスの数は、全部で約43億個しかありません。
しかし、世界の人口は、2020年の5月現在で77億人を超えています。もし、世界の一人ひとりがPCやスマートフォンを持っているとしたら、人口の数だけのIPアドレスが必要になります。

それ以外にも、最近は家電製品やゲーム機、カーナビゲーションなど、いろいろな機器がインターネットに接続できるようになっています。つまり、単に人口の数だけではなく、その何倍ものIPアドレスが必要になっています。IPアドレスは不足しているのです。

IPアドレスが不足することは以前からわかっており、IPアドレスを効率的に使おうという取り組みは、いろいろな形で行われていました。その一つが IPアドレスを2種類のグループに分けて利用する方法です。
その2種類が、グローバルIPアドレスとプライベートIPアドレスです。

グローバルIPアドレスは、インターネット上でグローバル(世界全体)に使用できるアドレスで、世界中のコンピュータと接続するときに使用します。一般的には個人で割り振るものではなく、インターネットサービスプロバイダ(インターネットのサービス会社)から割り振ってもらうものです。したがって、世界中で唯一のIPアドレスが割り振られ、重複することがありません。

プライベートIPアドレスは、家庭や会社内のような閉じたネットワーク内でのみ使える私的なIPアドレスです。このIPアドレスは、異なる会社やグループであれば重複して使用してもよいものです。同じ会社やグループ内では一意に相手を識別する宛先になりますが、インターネット上の他のコンピュータと直接のやり取りはできません。

プライベートIPアドレスを割り振られたPCなどが、インターネットを通してサーバなどとやり取りするときは、プライベートIPアドレスからグローバルIPアドレスへ変換する必要があります。個々のネットワーク間をつなぐにはルータという機器を使用するため、ルータにアドレス変換の機能を持たせ、プライベートなネットワーク(家庭や会社という閉じたネットワーク)とインターネット(グルーバルなネットワーク)を接続します。

ルータを通して、プライベートIPアドレスを持つ複数の機器が、一つのグローバルIPアドレスを代わる代わる使いまわすことで、グローバルIPアドレスの数を節約しています。

Image from Gyazo

プライベートIPアドレスは、全体の範囲 0.0.0.0 ~ 255.255.255.255 のうち、各会社や各グループ、各家庭内などで、次の範囲を重複して使用できます。

プライベートIPアドレスの範囲 クラス
10.0.0.0 〜 10.255.255.255 クラスA
172.16.0.0 〜 172.31.255.255 クラスB
192.168.0.0 〜 192.168.255.255 クラスC

クラスA、クラスB、クラスCというクラス分けは、ネットワーク規模の大きさによってIPアドレスを割り振るときの目安として、ICANN (IPアドレスを管理する国際非営利組織)で設定してるものです。

グローバルIPアドレスを社外の電話番号と例えるなら、プライベートIPアドレスは内線用の電話番号のようなものです。

まとめ

  • IPアドレスは、コンピュータ同士がインターネットを通して通信のやり取りをするときの住所に相当する。
  • IPアドレスには、インターネットで使用するグローバルIPアドレスと、私的なネットワーク内で使用するプライベートIPアドレスがあり、IPアドレス数の節約をおこなっている。

関連記事

次回:7. TCP/IPとは
前回:5. Webアプリケーションとは

*上記のリンクにアクセスすることで、続きをDIVER Learningsで確認できます。

DIVE INTO CODEのことをもっと知ってみませんか?