テクノロジー
2022年7月22日IPアドレスとは
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アドレスで指示されるクライアントへ届けられます。
では、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アドレスは、配送の管轄地域を表現するネットワーク部と、その個別のネットワーク内の所属する場所をあらわすホスト部で構成されます。
ネットワーク部とホスト部の境目は決まっていません。ネットワーク部の境目を示すものとして「サブネットマスク」というものがありますが、ここでは詳しい説明を省略します。
2つのIPアドレスがあったとき、ネットワーク部の値が同じであれば、同じネットワーク(会社や家庭)に所属していることになります。
つまり、ネットワーク部が172.217.161
の場合、172.217.161.1
と172.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アドレスの数を節約しています。
プライベート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で確認できます。