- Published on
VPCとサブネット
- Authors

- Name
- Ippei Shimizu
- @ippei_111
CIDR(サイダー)
CIDR(Classless Inter-Domain Routing)は、IPアドレスの範囲をアドレス/ビット数で表す書き方。
CIDRの構造
10.0.0.0/16
├──────┤├┤
アドレス ビット数
アドレス
- 10.0.0.0
- ネットワークの開始位置を表すIPアドレス
ビット数
- /16
- ネットワーク部のビット数を示す
- IPアドレスは32ビットだから、/16は最初の16ビットがネットワーク部、残りの16ビットがホスト部を表す
ビット数による違い
同じ開始アドレス「10.0.0.0」でも、ビット数が違うと範囲が変わる。
-【10.0.0.0/8】
- 固定 : 10
- 変動 : 0.0.0 ~ 255.255.255
- 範囲 : 10.0.0.0 〜 10.255.255.255(約1,677万個)
- 【10.0.0.0/16】
- 固定 : 10.0
- 変動 : 0.0 ~ 255.255
- 範囲 : 10.0.0.0 〜 10.0.255.255(約65,000個)
- 【10.0.0.0/24】
- 固定 : 10.0.0
- 変動 : 0 ~ 255
- 範囲 : 10.0.0.0 〜 10.0.0.255(256個)
なぜビット数によって固定部分が変わるのか?
前提としてIPアドレスの構造は以下のようになっている。
IPアドレスは32ビット(4つの8ビットに分かれる)
10 . 0 . 0 . 0
├──┤ ├──┤ ├──┤ ├──┤
8ビット 8ビット 8ビット 8ビット
↑ ↑ ↑ ↑
1番目 2番目 3番目 4番目
そもそもビットとは?
0か1かを表す、コンピュータの最小単位。
1ビット = スイッチ1個
┌─────┐ ┌─────┐
│ OFF │ │ ON │
│ 0 │ │ 1 │
└─────┘ └─────┘
どちらか1つだけ
ビットが増えると表現できる数が増える
【1ビット】スイッチ1個
→ 0か1の2通り
【2ビット】スイッチ2個
→ 00, 01, 10, 11の4通り
【3ビット】スイッチ3個
→ 000, 001, 010, 011, 100, 101, 110, 111の8通り
IPアドレス 10.0.0.0の10が8ビットで表現されている理由
IPアドレスの各数字は「8ビットで表現する」というルールだから。
IPアドレス: 10.0.0.0
10 . 0 . 0 . 0
│ │ │ │
│ │ │ └── 4番目の数字(8ビットで表現)
│ │ └── 3番目の数字(8ビットで表現)
│ └── 2番目の数字(8ビットで表現)
└── 1番目の数字(8ビットで表現)
合計: 8 × 4 = 32ビット
IPアドレス全体を2進数で見ると
10.0.0.0 を2進数で表現すると以下のようになる。
10 . 0 . 0 . 0
00001010 . 00000000 . 00000000 . 00000000
├──────┤ ├──────┤ ├──────┤ ├──────┤
8ビット 8ビット 8ビット 8ビット
- 10 : 00001010は、左から0→1=2→0→1=8で、0+2+8=10になる
- 0 : 00000000は、全て0なので0になる
なぜ、10.0.0.0/8と10.0.0.0/16と10.0.0.0/24で固定の値が変わるのか?
前提、10.0.0.0 を2進数で書くと...
10 . 0 . 0 . 0
00001010 . 00000000 . 00000000 . 00000000
├──────┤ ├──────┤ ├──────┤ ├──────┤
8ビット 8ビット 8ビット 8ビット
↑ ↑ ↑ ↑
1番目 2番目 3番目 4番目
全部で32ビット
となる。
/8の場合(前から8ビットが固定)
00001010 . 00000000 . 00000000 . 00000000
████████ ░░░░░░░░ ░░░░░░░░ ░░░░░░░░
├──────┤ ├─────────────────────────────┤
固定8ビット 変動24ビット
↓ ↓
10 0.0.0 〜 255.255.255
となるから、固定部分は「00001010 = 10」となり、変動部分は「00000000.00000000.00000000= 0.0.0(最小)」〜1111111.11111111.11111111 = 255.255.255(最大)」となる。
よって、範囲は「10.0.0.0 〜 10.255.255.255」となる。
/16の場合(前から16ビットが固定)
00001010 . 00000000 . 00000000 . 00000000
████████ ████████ ░░░░░░░░ ░░░░░░░░
├────────────────┤ ├────────────────┤
固定16ビット 変動16ビット
↓ ↓
10.0 0.0 〜 255.255
となるから、固定部分は「00001010.00000000 = 10.0」となり、変動部分は「00000000.00000000 = 0.0(最小)」〜「11111111.11111111 = 255.255(最大)」となる。
よって、範囲は「10.0.0.0 〜 10.0.255.255」となる。
/24の場合(前から24ビットが固定)
00001010 . 00000000 . 00000000 . 00000000
████████ ████████ ████████ ░░░░░░░░
├──────────────────────────┤ ├──────┤
固定24ビット 変動8ビット
↓ ↓
10.0.0 0 〜 255
となるから、固定部分は「00001010.00000000.00000000 = 10.0.0」となり、変動部分は「00000000 = 0(最小)」〜「11111111 = 255(最大)」となる。
よって、範囲は「10.0.0.0 〜 10.0.0.255」となる。
ネットワーク部とホスト部とは?
- ネットワーク部 : どのネットワークに属するか(固定部分)
- ホスト部 : そのネットワーク内のどのコンピュータか(変動部分)
サブネットのネットワークアドレスの増分
サブネットが10.0.0.0/18の場合
VPC : 10.0.0.0/16
サブネット : 10.0.0.0/18
サブネット1 : 10.0.0.0/18
サブネット2 : 10.0.64.0/18
なぜ、64も増えるのか?
→ 1つのサブネットが何個のIPを使うかで決まる
1. /18のサブネットは何個のIPを使うのか?
IPアドレスは全部で32ビット
/18 = 18ビット固定
→ 32 - 18 = 14ビットがホスト部(変動部分)になる
よって、使えるIPアドレスは
→ 2^14 = 16,384個 になる
2. 16.384個ってどこからどこまでか?
サブネット1 : 10.0.0.0/18
→ 開始IP : 10.0.0.0
→ 終了IP : ???
16,384個を数えてみる...
10.0.0.0
10.0.0.1
10.0.0.2
...
10.0.0.255 ← ここまでで256個
10.0.1.0
10.0.1.1
...
10.0.1.255 ← ここまでで512個(256x2)
10.0.2.0 ...
10.0.2.255 ← ここまでで768個(256x3)
...
10.0.63.0 ...
10.0.63.255 ← ここまでで16,384個(256×64)
終了: 10.0.63.255
よって、サブネット1の範囲は
10.0.0.0 〜 10.0.63.255
になります。
3. サブネット2の開始IPは?
サブネット1の終了IPが、10.0.63.255
→ その次の番号が、10.0.64.0なので、サブネット2の開始IPは 10.0.64.0から始まる
増分はいくつになるか?
サブネット1の開始IP : 10.0.0.0
サブネット2の開始IP : 10.0.64.0
→ よって、増分は 64 になる
/18のサブネットの場合に、1つのサブネットで使用できるIPアドレスの数が16.384個と分かった後に、1つのサブネットの終了IPを求める方法がわからない場合
前提
- 開始IP: 10.0.0.0
- 使えるIP数: 16,384個
- 終了IP: ???
1. 4番目のオクテットは何個使える?
4番目のオクテット(最後の数字)は0〜255まで256個使える
→ これは、どのサブネットでも同じ
2. 3番目の奥ってっとは何個使える?
全体のIP数 / 4番目の個数 = 3番目の個数
16,384 ÷ 256 = 64
→ 3番目のオクテットは64個使える
3. 3番目のオクテットの範囲は?
開始: 0
使う個数: 64
→ 終了: 63(0から数えて64個目は63になるため)
4. 終了IPは?
10 . 0 . 63 . 255 ↑ ↑ 3番目 4番目 の最後 の最後
終了IP: 10.0.63.255