IPアドレス周りの復習がしたい

# IPアドレスとは？

IPアドレスのIPとは、TCP/IPにおけるインターネット層の代表的なプロトコルで、正式名称をInternet Protocolといいます。このIPというプロトコルは、データの送信先の特定についてと、実際に送信する際のデータの経路についての規定をしています。

ではIPアドレスとは何かというと、IPにおいてデータの送信先の特定に使用する識別子です。IPアドレスには**グローバルIPアドレス**と**プライベートIPアドレス**の2種類があります。

グローバルIPアドレスとは、インターネットで使用するIPアドレスのことで世界中で重複がないように割り振られます。一方プライベートIPアドレスとは、LAN内のみで使用されるIPアドレスで、同一LAN内ではユニークですが他のLAN内のものとは重複が許されます。

またグローバルIPアドレスにはIPv4とIPv6という2種類が存在しています。それらの違いについては後述します。

## IPアドレスはどのように決定される？

IPアドレスが、機器同士でTCP/IPでデータをやり取りする際に必要なことはわかりました。

しかしここで疑問なのは、自分が使用しているPCやスマホは普通にインターネットに接続できているのに自分でIPアドレスを設定した覚えがないことです。ということはどこかの誰かが勝手にやってくれていると推測できますが、では誰がどのようにIPアドレスを割り振っているのでしょうか。

プライベートIPアドレスについてはLANに接続した時点で自動的に決定されます（後から変更可能）。プライベートIPアドレスとして使用できる値の範囲は決められており、次の表のとおりです。

| クラス | 値の範囲 |
| --- | --- |
| クラスA | 10.0.0.0 ~ 10.255.255.255 |
| クラスB | 172.16.0.0 ~ 172.31.255.255 |
| クラスC | 192.168.0.0 ~ 192.168.255.255 |

グローバルIPアドレスについては世界中で重複が起こらないように割り振らなければいけないため少々複雑です。

全てのグローバルIPアドレスは、「ICANN」という超国家組織によって管理されています。そこから世界各地域の地域インターネットレジストリ（特定地域内のIPアドレスの割り当て業務を行う組織）に割り振られます。さらにそこから国別インターネットレジストリ（各国内のIPアドレスの割り当て業務を行う組織）に割り振られ、さらにさらにそこからローカルインターネットレジストリ（ISP(プロバイダ)など）に割り振られ、プロバイダによって我々エンドユーザーに割り振られます。下図は日本の例です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1261800/8c98c0ce-1f9b-ff08-68af-d5b966455033.png)


プロバイダからエンドユーザにIPアドレスを割り振る際に、その方法によって、**動的IPアドレス**と**固定IPアドレス**という2種類に分けられます。

動的IPアドレスとは、ユーザがネットワークに接続するたびにプロバイダからIPアドレスが割り当てられるというものです。そのため割り当てられるアドレスが接続するたびに異なるということも起こりえます。個人のユーザはほとんどがこの動的IPアドレスを使用しています。

固定IPアドレスとは、同一の機器には常に同一のIPアドレスを割り当てたものです。IPアドレスに対してドメインを割り当てている場合などには、動的IPアドレスのように接続のたびに変ってしまっては困るのでこちらが使用されます。

# IPアドレスの中身

## IPv4の場合

IPv4とは32ビットで表されたIPアドレスです。表記の際は8ビットごとにピリオドで区切り、各区間を十進数に変換して表記します。

IPアドレスは、ネットワーク部とホスト部によって構成されています。ネットワーク部はその機器がどのネットワークに属しているかを表しています。家庭内のLANなどを指します。

ホスト部はそのネットワークの中のどの機器かを指します。

### ホスト部とネットワーク部はどこで区切るのか

区切る部分を指定する方法には3種類あります。クラスを用いる方法、サブネットマスクを用いる方法、クラスレスアドレッシングです。

クラスを用いる方法では、先頭から何ビット目に始めて0が出現するかでネットワーク部の長さを規定しています。

サブネットマスクを用いる方法は、クラスで分ける仕組みの非効率さを補うための仕組みです。これを用いることでホスト部の一部をネットワーク部として使用でき、異なるネットワーク間でも同一のネットワークアドレスを使用することができるようになります。

具体的には、アドレスの先頭からネットワーク部としてみなしたいビットまでを1、それ以降を0とするサブネットマスクを用意します。それと本来のIPv4の論理積をとります。そうするとサブネットマスクで1とした部分だけ元のIPv4と同じ値になり、それ以降は全て0になります。こうして残った部分をネットワークアドレスとして扱うのです。

クラスレスアドレッシングとは、IPアドレスの末尾に「/24」のようにネットワークアドレスとして用いたい桁数を直接表記する方法です。

## IPv6の場合

IPv4のグローバルIPアドレスが使い切られてしまうことから登場した新しいバージョンです。

簡単にIPv4との違いを表にまとめます。

|  | IPv4  | IPv6 |
| --- | --- | --- |
| ビット数 | 32 | 128 |
| 区切り | 8ビットごとにドットで | 16ビットにコロンで |
| 表記 | 8ビットごとに10進数で | 16ビットごとに16進数で |
| 省略 | 各区間で値の左の0を省略 | 各区間で値の左の0を省略。すべて0の区間は丸ごと省略 |

# 参考

[本当にやさしく学びたい人の！ 絵解き ネットワーク超入門](https://www.amazon.co.jp/dp/B07VH9K9WZ/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

[『IPアドレス』とは？わかりやすく仕組みや確認方法、個人特定のリスクなど解説](https://time-space.kddi.com/ict-keywords/20200930/2984)

[IPアドレスから住所は特定されてしまうのか？ | ITコラム｜アイティーエム株式会社](https://www.itmanage.co.jp/column/ip-address-personal-information/)

[インターネット用語1分解説～地域インターネットレジストリ～ - JPNIC](https://www.nic.ad.jp/ja/basics/terms/rir.html)

[グローバルIPアドレスをもっていないPCというのはあるのでしょうか？（NATの存在意義がわかりません）](https://teratail.com/questions/12228)

[スマホでのモバイル通信は1台毎にグローバルIPが割り当てられているのではなく、携帯会社のルーターにグローバルIPが割り振られていて、プライ... - Yahoo!知恵袋](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14181624969)