#手始めに
ipアドレス 192.168.0.1
サブネットマスク 255.255.255.0
の場合192.168.0までがネットワーク部、1がホスト部となる
同じネットワークに属している端末は相互に通信が出来る(192.168.0まで同じ為)
192.168.0.1 <=> 192.168.0.2
ここで注意しないといけないのは
ipアドレスは8it
11111111
である場合10進数では255になる
(0カウントスタートの為1から数えた場合は256)その為256台第繋げれると思ってしまうが
パソコンには割り当てられない特殊なIPアドレスがあるんだ。そのIPアドレスは、256通りある中の最初と最後の数の『0』と『255』なんだ。このホスト部が『0』のIPアドレスの事を『ネットワークアドレス』と呼ぶんだ。次にホスト部が『255』のIPアドレスのことを『ブロードキャストアドレス』と呼ぶんだ。この2つのIPアドレスは特殊なIPアドレスで、別な役割があるんで、パソコンには割り当てることのできないIPアドレス
その為254台になる
さらにそこからインターネットにつながるルータのipアドレス
(デフォルトゲートウェイ)が必要となってくる
(*実際には、末尾が0と255のものは一般的に予約番号として押さえられているのでホストを割り当てられません。AWSの場合は、末尾が0, 1, 2, 3, 255が使用できません。ここでは計算の簡略化のため予約番号やサブネットワークの計算は無視します。)
##サブネットマスク
例として3000台繋げようとした場合
サブネットマスクを下記のようにする計算としては
ネットワーク部は256256240 = 15,728,640通り
余った部分はホスト部として
256-240 = 16 256をかけることで16*256 = 4096となる
サブネットマスク(要するに20bit分がネットワーク部)
*.*.*.* / 20
2進数
111111111.11111111.111100000.00000000
10進数
255.255.240.0
// 240の計算方法
1 * 2^7 = 1 * 128 = 128
1 * 2^6 = 1 * 64 = 64
1 * 2^5 = 1 * 32 = 32
1 * 2^4 = 1 * 16 = 16
0 * 2^3 = 0 * 8 = 0
0 * 2^2 = 0 * 4 = 0
0 * 2^1 = 0 * 2 = 0
0 * 2^0 = 0 * 1 = 0
// 計算結果を足し合わせる
128 + 64 + 32 + 16 + 0 + 0 + 0 + 0
-> 合計:240
##ネットワーク部とホスト部
AWSのVPC(10.0.0.0/16)というプライベート空間の内部をさらに4分割して、
4つの独立したサブネットワークを作成したいという場合
まず/16でサブネットを区切っているので下記のようになります。
ネットワーク部は256*256= 65,536通り
ホスト部も256*256= 65,536
10.0.0.0/16の場合下記のようになる
00001010 00000000 ~ ~ 00000000 00000000 : VPCのネットワークアドレス
11111111 11111111 ~ ~ 00000000 00000000 : VPCのサブネットマスク
上記からホスト部を2ビット犠牲にすることで/18にするとサブネットワークでさらに
4分割できるようになる。
0カウントを忘れないで
ネットワーク部は256256= 65,536通り
サブネットワーク部は22= 4通り
ホスト部も2^6 * 2^8 = 64*256 = 16,384
10.0.0.0/18は
00001010 00000000 ~ ~ 00 ~ 000000 00000000 : VPC内のサブネットワーク1のネットワークアドレス
00001010 00000000 ~ ~ 01 ~ 000000 00000000 : VPC内のサブネットワーク2のネットワークアドレス
00001010 00000000 ~ ~ 10 ~ 000000 00000000 : VPC内のサブネットワーク3のネットワークアドレス
00001010 00000000 ~ ~ 11 ~ 000000 00000000 : VPC内のサブネットワーク4のネットワークアドレス
1 * 2^7 = 1 * 128 = 128
1 * 2^6 = 1 * 64 = 64
1 * 2^5 = 1 * 32 = 32
1 * 2^4 = 1 * 16 = 16
0 * 2^3 = 0 * 8 = 0
0 * 2^2 = 0 * 4 = 0
0 * 2^1 = 0 * 2 = 0
0 * 2^0 = 0 * 1 = 0
##自由に使用してもよいプライベートIPアドレス
社内LANやネットワークの実験で使われる
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
このように分けた場合ネットワーク部は65536で区切った事になる
2の16乗 又は 256 * 256
192.168.0.0 ~ 192.168.255.255
##表記方法
下記は同じ内容を表す
CIDR表記
192.168.1.0/24 左記の状態をプレフィックスが24bitともいう
サブネットマスク表記
192.168.1.0/255.255.255.0
AMAZON VPCではプレフィックは16以上と決まっているため
10.0.0.0/16 = 10.0.0.0 ~ 10.0.255.255
もしくは
192.168.0.0/16 = 192.168.0.0 ~ 192.168.255.255
##サブネットをさらに分けるという考え方
例:10.0.0.0/16 = 10.0.0.0 ~ 10.0.255.255
で作成した場合上記をさらに10.0.0.0/24で分ける,左から三つ目までをネットワーク部とする
10.0.0.0/24 = 10.0.0.0 ~ 10.0.0.255
10.0.1.0/24 = 10.0.1.0 ~ 10.0.1.255
10.0.2.0/24 = 10.0.2.0 ~ 10.0.2.255
:
:
10.0.254.0/24 = 10.0.254.0 ~ 10.0.254.255
10.0.255.0/24 = 10.0.255.0 ~ 10.0.255.255
##サブネット分割
例:
10.0.0.0/22とした場合サブネットマスクは下記のようになる
11111111.11111111.11111100.00000000
11111100は10進数で表すと252となるので255-252 = 3
となるので10.0.0.0/22はで表現できるネットワーク部は下記になる
10.0.0.0/22
10.0.1.0/22
10.0.2.0/22
1 * 2^7 = 1 * 128 = 128
1 * 2^6 = 1 * 64 = 64
1 * 2^5 = 1 * 32 = 32
1 * 2^4 = 1 * 16 = 16
0 * 2^3 = 0 * 8 = 0
0 * 2^2 = 0 * 4 = 0
0 * 2^1 = 0 * 2 = 0
0 * 2^0 = 0 * 1 = 0
*間違い等あればコメントにてご指摘頂けると幸いです。
10.0.0.0/16 の CIDR 表記はネットワークアドレス空間が 10.0.0.0 から 10.0.255.255 までとなります。そして、そのネットワーク空間内で更に /24 のサブネットを作成すると、そのサブネットは 10.0.x.0 の形式をとります。ここで、xは0から255までの任意の値を取りうるので、最大で256個(0から255)の異なる /24 サブネットを作成することが可能です。
したがって、10.0.1.0/24、10.0.2.0/24、10.0.3.0/24、・・・ 10.0.255.0/24 といった形で、最大256個のサブネットを作成することが可能となります。それぞれのサブネットは、それぞれ独自のホストIP範囲を持ちます。例えば、「10.0.0.0/24」では「10.0.0.0~10.0.0.255」、「10.0.1.0/24」では「10.0.1.0~10.0.1.255」、といった具体的なホストアドレス範囲を持つことになります。