logo
Published on

VPCとサブネット

Authors

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 │    │ ON0  │    │  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.0255.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.0255.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                 0255

となるから、固定部分は「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