IPアドレス完全に理解した

過去に開いたAWS勉強会のスライドが元になっています！こちらからご覧ください！
https://speakerdeck.com/hokuo/awsmian-qiang-hui-day1-ec2-rds?slide=26

## IPアドレスとは
![スクリーンショット 2021-11-30 22.05.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/54c48b11-5590-62c6-4716-6ea2c51609d7.png)
IPアドレスというのは送信データに「送信元IP」「送信先IP」としてそれぞれ1つずつ設定できるもので、これがないとルーターを介した通信ができません。
私達がよく見る192.168.33.13のようなIPアドレスはIPv4という部類であり、最近ではIPの数が足りていないのでIPv6という規格も主流になっています。
ここではIPｖ４をベースにお話をしていきます。

## IPアドレスの構造
![スクリーンショット 2021-11-30 22.05.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/cd491d20-1347-5658-2bdc-e53dc2592f43.png)
IPアドレスの構造は最大3桁の数字がピリオド区切りで4つ並んでいます。
これは10進数で表されたもので、実態は「2進数8桁の数字をピリオド区切りで4つ並べたもの」になります。

## サブネットマスク
![スクリーンショット 2021-11-30 22.05.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/1ddf9ede-56cb-df0b-ae29-caafbadc2910.png)
よくIPアドレスの後ろに「/16」などと書かれたものがあり、見かけたことがある方もいると思いますが、これはサブネットマスクと呼びます。

## サブネットマスクの役割
![スクリーンショット 2021-11-30 22.05.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/c9ff14f2-3e67-093f-6589-27b083bb9d23.png)
IPアドレスに近い構造ではありますが、後に説明する「IPアドレスのネットワーク部とホスト部の境目」を示すものになります。
同じように2進数の8桁のピリオド区切りで4つ並べたもので、16という数字は左から16桁目までが1だよということを示してくれています。(1になっている部分はネットワーク部を示す。つまり2進数表記におけるIPアドレスの左から16桁目までがネットワーク部になるということ)
同じネットワークに所属しているIP同士はルータを使わなくても通信できます。社内で同じルーターを使っていれば、みんなは同じネットワークに所属しているはずですので、ネットワーク部を割り出して確認してみてください。

## IPアドレスとサブネットマスクの確認の仕方
![スクリーンショット 2021-11-30 18.57.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/48d1094a-2b7b-0f44-1fd9-c111dca3b58c.png)
「ifconfig」コマンドでen0の欄を見ると自分のIPとサブネットを確認することができます。
netmastkがサブネットマスクのことですが、ここでは16進数になっているので10進数では「255.255.255.0」となりCIDR表記では「/24」になります。

## IPが決まると、ネットワーク内に割り当てられるホストの数が決まる
![スクリーンショット 2021-11-30 22.05.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/142d1f04-831f-df8c-4877-a9c61cdca013.png)
このネットワークとホストの境目が決まると、同じネットワークに所属しているホストの数が決定されます。/16であればネットワーク部が16桁で、ホスト部が残りの16桁になるのでホスト部の数字の組み合わせは2の16乗となり65536ホストとなります。
実際の設計では、このホスト(PCやサーバー)の使用する台数によって数値を絞るようにサブネット小さくを切ります。(/24など。ホストが1台の場合は/32など)
中には割り当てることができない特殊なIPも存在します。

## 一部の特殊なIPアドレスの紹介
![スクリーンショット 2021-11-30 22.05.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/a43f32cc-53ec-6180-59f0-12e64cdd4fe1.png)
特にループバックアドレスは馴染みがありそうですね。localhostのIPアドレスであり、自分のローカルIPアドレスとなります。

## 実際の通信はどうなっているのか
実際にルータを使用した通信の例を見てみます。
![スクリーンショット 2021-11-30 22.05.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/280c6bcc-47f4-13f2-a8e6-057880c26216.png)
まずARPというプロトコルで先ほど紹介した「ブロードキャストアドレス」を使用して同じネットワークのすべてのホストに対して「このアドレス知ってる人います？」と質問します。
![スクリーンショット 2021-11-30 22.05.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/26b79a0f-fb8b-9f2e-20dc-f60165d6d2b3.png)
それがわかると、機器固有のMACアドレスを質問者にわたし、それをもとにその危機にデータをわたします。はじめに説明の通り、送信先のIPは一つしか持てないので、中継する機器はMACアドレスを渡して「こっちにパスしてくれー」と合図を送っているわけです。
![スクリーンショット 2021-11-30 22.05.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799/6a85f6b8-5e5c-795a-55ac-f83d91f4de5c.png)
これらを繰り返して目的地までのデータ送信を進めていきます。

## 終わりに
今回はIPアドレスに関する簡単な解説しながら実際の通信を覗いてみました。
もう少し実践的な使い方や説明はこちらのスライドをご覧ください！
https://speakerdeck.com/hokuo/awsmian-qiang-hui-day1-ec2-rds


また、AWSの勉強も兼ねて学んでみたい方は下記の書籍がおすすめですのでぜひ！

- 基礎知識

https://www.amazon.co.jp/Amazon-Services-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89-%E6%94%B9%E8%A8%823%E7%89%88/dp/4296105442/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=aws+%E6%9C%AC&qid=1638267431&sr=8-7

- パターン構築

https://www.amazon.co.jp/Amazon-Services-%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%88%A5%E6%A7%8B%E7%AF%89%E3%83%BB%E9%81%8B%E7%94%A8%E3%82%AC%E3%82%A4%E3%83%89-%E6%94%B9%E8%A8%82%E7%AC%AC2%E7%89%88-Informatics/dp/4797392576/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=AWS+%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3&qid=1638267453&sr=8-1