IPアドレス+サブネットマスク、CIDR表記の考え方

IPアドレスをCIDR(サイダー)表記にする、考え方をまとめました。

# CIDR表記とは
CIDR表記はIPアドレスの右に/1 ~ /32 で表されるプリフィックスをつけたものです。例えば、192.168.0.1/30 のような表記方法です。/30プリフィックスの数字の意味は、2進数で始めの30桁が全て1で、残りの桁が全て0のサブネットマスクをあらわしています。なので10進表記の場合は、255.255.255.252となり、2進表記だと11111111.11111111.11111111.11111100のサブネットマスクだということになります。

# サブネットマスクだと何ができるのか
サブネットマスクを使うとネットワークの細分化を行えます。ネットワークに接続する機器をグループ化して、グループ内で機器同士の通信は簡単にできるようになります。逆に、グループ外の機器とはルーターなどを通さないと通信が簡単にできないのです。

# サブネットマスクとネットワークの関係
サブネットマスクを使ってできるネットワークは、ネットワークアドレス(開始IP)とホストアドレス(使用可能IP)、ブロードキャストアドレス(終了IP)に分けられます。

## ネットワークアドレス(開始IP)
ネットワークアドレス(開始IP)はネットワーク自体を表すアドレスで、192.168.0.1/30の場合、2進数であらわしたIPアドレス：11000000.10101000.00000000.00000001とサブネットマスク11111111.11111111.11111111.11111100のANDをとった11000000.10101000.00000000.00000000、10進表記で192.168.0.0がネットワークアドレス(開始IP)になります。

## ブロードキャストアドレス(終了IP)
ブロードキャストアドレスとはネットワーク内のすべての機器（ノード）にデータを一斉配信するために使われる特殊なアドレスで、192.168.0.1/30の場合、2進数であらわしたIPアドレス：11000000.10101000.00000000.00000001とサブネットマスクを反転させた00000000.00000000.00000000.00000011のORをとった11000000.10101000.00000000.00000011、10進表記で192.168.0.3がブロードキャストアドレス(終了IP)になります。

## ホストアドレス(使用可能IP)
ホストアドレス(使用可能IP)は、ネットワークアドレス(開始IP)とブロードキャストアドレス(終了IP)の間にあるアドレスで、192.168.0.1/30の場合、2進数で11000000.10101000.00000000.00000001と11000000.10101000.00000000.00000010の2つ、10進数で192.168.0.1と192.168.0.2がホストアドレス(使用可能IP)となります。

# ネットワークにならない/32と/31
/32と/31はネットワークアドレス(開始IP)とブロードキャストアドレス(終了IP)の間にホストアドレス(使用可能IP)があらわれないため、ネットワークになりません。

## /32
192.1.68.0.1/32の場合、2進数でIPアドレス192.1.68.0.1は11000000.10101000.00000000.00000001、サブネットマスクは11111111.11111111.11111111.11111111と表され、ANDをとったネットワークアドレス(開始IP)は11000000.10101000.00000000.00000001つまり192.168.0.1となります。

ブロードキャストアドレス(終了IP)が2進数でIPアドレス192.1.68.0.1は11000000.10101000.00000000.00000001、ビット反転したサブネットマスクは00000000.00000000.00000000.00000000となりORを取ると、これまた11000000.10101000.00000000.00000001で192.168.0.1となります。

つまりネットワークアドレス(開始IP)とブロードキャストアドレス(終了IP)が同じになり、その間のホストアドレス(使用可能IP)は取り出せないということです。このことから、192.1.68.0.1/32はネットワークでなく単体のIPアドレスを示すことになります。

## /31
/31も/32と同様にホストアドレス(使用可能IP)は取り出せません。

192.1.68.0.1/31の場合、ネットワークアドレス(開始IP)が2進数でIPアドレス192.1.68.0.1は11000000.10101000.00000000.00000001、/31サブネットマスクは11111111.11111111.11111111.11111110と表され、ANDをとったネットワークアドレス(開始IP)は11000000.10101000.00000000.00000000つまり192.168.0.0となります。

ブロードキャストアドレス(終了IP)が、2進数でIPアドレス192.1.68.0.1は
11000000.10101000.00000000.00000001、/31サブネットマスクの反転は0000000.00000000.00000000.00000001と表されORをとると11000000.10101000.00000000.00000001つまり192.1.68.0.1となります。

つまりネットワークアドレス(開始IP)の次にブロードキャストアドレス(終了IP)がきて、その間のホストアドレス(使用可能IP)は取り出せないということです。このことから、192.1.68.0.1/31はネットワークになりません。

# 同じになるIPのCIDR表記
例えば、192.168.0.0/30、192.168.0.1/30、192.168.0.2/30、192.168.0.3/30は、ネットワークアドレス(開始IP)とブロードキャストアドレス(終了IP)を計算で求めた結果が一致するので、どれも同じネットワークアドレス(開始IP)192.168.0.0、同じブロードキャストアドレス(終了IP)192.168.0.3、同じホストアドレス(使用可能IP)192.168.0.1と192.168.0.2のネットワークを示します。

:::note info
### AND 論理積
>論理積とは、論理演算の一つで、二つの命題のいずれも真のときに真となり、それ以外のときは偽となるもの。論理回路や2進数の数値による論理積は、二つの入力の両方が1のときのみ出力が1となり、いずれか一方あるいは両方が0の場合は0となる。
### OR 論理和
>論理和とは、論理演算の一つで、二つの命題のいずれか一方あるいは両方が真のときに真となり、いずれも偽のときに偽となるもの。 論理回路や2進数の数値による論理和は、二つの入力のいずか一方あるいは両方が1のとき出力が1となり、いずれも0の場合に0となる
:::

https://www.cman.jp/network/term/subnet/

https://www.ahref.org/doc/ipsubnet.html

https://e-words.jp/w/ネットワークアドレス.html

https://e-words.jp/w/ブロードキャストアドレス.html

https://e-words.jp/w/論理積.html

https://e-words.jp/w/論理和.html