【ネットワーク】 IPアドレス

 ■ IPアドレス

 * IPネットワークに接続されたコンピュータや通信機器
 1台1台に割り振られた識別番号
 => 運用されるネットワークにおける個々の通信機器や
  コンピュータの住所のようなもの

IPアドレス = ネットワーク部 + ホスト部

  + ネットワーク部
  => IPアドレスが属しているネットワークを識別するための部分
 
 + ホスト部
  => ネットワーク内の端末(PC等)を識別するための部分

IPアドレスの種類

グローバルIPアドレス

 * インターネットで相手と通信するために持つ、
 ほかのアドレスと重複しない一意のIPアドレス

プライベートIPアドレス

 * 会社や家庭などの組織内(ローカル)で一意に割り当てられるIPアドレス
 * グローバルIPアドレスの浪費を防ぐ

 特別なIPアドレス/予約済みIPアドレス

ネットワークアドレス

 * ネットワークそのものを表すアドレス
 * ex. 192.168.30.0

ブロードキャストアドレス

 * 全てのホストにパケットを送信するためのアドレスとして使用
 * ex. 192.168.30.255

ループバックアドレス

 * 自分自身を示すIPアドレス
 * ex. 127.0.0.1

 ■ Internet Protocolの種類

 IPv4 (Internet Protocol version 4)

 * 8ビットずつ4つに区切られた32ビット(例「211.9.36.148」)
  => 32ビットの数値で識別できる上限である約42億台(2の32乗)まで
  しか一つのネットワークに接続することができない
     (実際の運用ではこれより少なくなる)
  => インターネットで利用するIPアドレスが足りなくなる

 IPv6 (Internet Protocol version 6)

 * アドレスの長さは、128ビット
   (例「FFDC:BA98:7654:32 FFDC:BA98:7654:3210:FEDC:BA98:7654:32 0:FEDC:BA98:7654:3210」)
 * IPv4からの移行が模索されているが、なかなか進んでいない

 ■ アドレスクラス / CIDR

表記は以下の2通り。

【1】 アドレスクラス:「クラスフルルーティング」という
【2】 CIDR: クラスを使わないので、「クラスレスアドレッシング」という

【1】 アドレスクラス

 * ネットワーク部(~~~)とホスト部(^^^)に分けられる
 * 今は使用してない(IPアドレスが足りなくなるから)

ネットワーク部

* 個々の組織が管理するネットワークを識別する部分

ホスト部

* ネットワーク内のどのコンピュータ(ホスト)なのかを示す部分

説明

 * アドレス・クラス
 (IPアドレスの値によって、IPアドレスを幾つかのカテゴリに分類したもの)

  + クラスA
 最上位の1bitが「0」ならば、そのIPアドレスは「クラスA」になる
   => 0xxx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
      ~~~~~~~~~   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  + クラスB
 最上位の2bitが「1-0」ならば、そのIPアドレスは「クラスB」になる。
   => 10xx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
      ~~~~~~~~~~~~~~~~~~~~~   ^^^^^^^^^^^^^^^^^^^^^
  + クラスC
 最上位の3bitが「1-1-0」ならば、そのIPアドレスは「クラスC」になる。
   => 110x xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ^^^^^^^^^

ネットワーク部のルール

  1) ルータを越さない範囲は、同じネットワーク部でなければならない
  2) ルータを越える範囲は、異なるネットワーク部でなければならない
   => ネットワーク部をみて、通信先を判断している

【2】 CIDR (サイダー; Classless Inter-Domain Routing)

* 任意のブロック単位で区切る(サブネットマスクを使用する)
 ことができるため、IPアドレス空間を効率的に利用する
  => IPv4アドレスの浪費を防ぐことができる

サブネットマスクとは...

  => IPアドレスのうち、「ネットワーク部」と「ホスト部」を
  識別するための数値

CIDR表記とは...

  => スラッシュ(/)によるサブネットマスクの書き方
  => 「XXX.XXX.XXX.XXX/28」
 (28 => 255.255.255.240 => 11111111.11111111.11111111.11110000)

CIDR表記例) 192.168.10.158/24

 * IPアドレス       : 192.168.10.1
 * サブネットマスク : 24
(24 => 255.255.255.0 => 11111111.11111111.11111111.00000000)

【ネットワークアドレスを取り出す】
  => IPアドレスとサブネットマスクをAND演算する

 * IPアドレス       : 11000000.10101000.00001010.00000001
 * サブネットマスク : 11111111.11111111.11111111.00000000
-------------------------------------------------------------
                      11000000.10101000.00001010.00000000
                           192.     168.      10.       0

【ホストアドレスを取り出す】
  => IPアドレスとサブネットマスクの逆数をAND演算する

 * IPアドレス       : 11000000.10101000.00001010.00000001
 * サブネットマスク : 00000000.00000000.00000000.11111111
-------------------------------------------------------------
                      11000000.10101000.00001010.00000001
                             0.       0.       0.       1

主なサブネット値

/8 : 255.0.0.0
/16 : 255.255.0.0
/24 : 255.255.255.0

 ■ 予約済みIP(特別なIPアドレス)

* コンピュータなどのホストに割り当てられない、
 特別な用途で使用するものがある

 デフォルトルート

 * 「0.0.0.0/0」と表記
 * ルータのルーティングテーブルに載っていない宛先のパケットを送る

 ネットワークアドレス

 * ネットワーク自体を指すアドレス
 * ホスト部の2進数のビットが全て 0 のアドレス

 ブロードキャストアドレス

 * あるネットワークに接続されている全てのホストに
 パケットを送信するためのアドレス
 * ホスト部の2進数のビットが全て 1 のアドレス

 ローカル ループバック アドレス(Local Loopback Address)

 * 127.xxx.xxx.xxx(例「127.0.0.1」)で、内部的に使われる自分自身のアドレス

 参考文献

http://www.atmarkit.co.jp/ait/articles/0301/17/news003.html
http://www.itbook.info/study/p56.html
 予約済みIP
http://www.infraexpert.com/study/ip4.html
 動画
https://www.youtube.com/watch?v=phCfMV6xYRg

関連記事

Amazon VPC ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/12/08/105415
DHCP
https://dk521123.hatenablog.com/entry/2017/07/24/004306
NAT / NAPT / UPnP
https://dk521123.hatenablog.com/entry/2016/09/21/231938