第2章:IPアドレスとサブネット

はじめに

本章では、IPアドレスとサブネットマスクの詳細な計算方法を学びます。

---

1. 2進数とビット演算

1.1 2進数変換

IPアドレスを理解するには、2進数変換が必須です:

10進数 → 2進数の変換

192を2進数に:
192 ÷ 2 = 96 余り 0
96 ÷ 2 = 48 余り 0
48 ÷ 2 = 24 余り 0
24 ÷ 2 = 12 余り 0
12 ÷ 2 = 6  余り 0
6 ÷ 2 = 3  余り 0
3 ÷ 2 = 1  余り 1
1 ÷ 2 = 0  余り 1

→ 11000000

2進数 → 10進数の変換

11000000 = 1×128 + 1×64 + 0×32 + 0×16 + 0×8 + 0×4 + 0×2 + 0×1
         = 128 + 64
         = 192

1.2 よく使う2のべき乗

| 2^n | 値 | よく見るパターン | |-----|-----|-----------------| | 2^0 | 1 | | | 2^1 | 2 | /31 | | 2^2 | 4 | /30 | | 2^3 | 8 | /29 | | 2^4 | 16 | /28 | | 2^5 | 32 | /27 | | 2^6 | 64 | /26 | | 2^7 | 128 | /25 | | 2^8 | 256 | 1オクテット |

1.3 ビットAND演算

サブネット計算ではAND演算を使用します:

AND演算のルール:
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0

例: ネットワークアドレスの計算
IP:   192.168.1.100
Mask: 255.255.255.0

11000000.10101000.00000001.01100100
AND
11111111.11111111.11111111.00000000
=
11000000.10101000.00000001.00000000

= 192.168.1.0 (ネットワークアドレス)

---

2. サブネットマスクの詳細

2.1 サブネットマスク一覧

CIDR  サブネットマスク      ホスト数   ブロックサイズ
/8    255.0.0.0             16,777,214  16,777,216
/16   255.255.0.0           65,534      65,536
/17   255.255.128.0         32,766      32,768
/18   255.255.192.0         16,382      16,384
/19   255.255.224.0         8,190       8,192
/20   255.255.240.0         4,094       4,096
/21   255.255.248.0         2,046       2,048
/22   255.255.252.0         1,022       1,024
/23   255.255.254.0         510         512
/24   255.255.255.0         254         256
/25   255.255.255.128       126         128
/26   255.255.255.192       62          64
/27   255.255.255.224       30          32
/28   255.255.255.240       14          16
/29   255.255.255.248       6           8
/30   255.255.255.252       2           4
/31   255.255.255.254       2           2 (point-to-point)
/32   255.255.255.255       1           1 (single host)

2.2 ブロックサイズの計算

ブロックサイズは、サブネットの境界を決定します:

/26 のブロックサイズ:
256 - 192 = 64

サブネット境界:
0, 64, 128, 192

つまり:
192.168.1.0/26   (0-63)
192.168.1.64/26  (64-127)
192.168.1.128/26 (128-191)
192.168.1.192/26 (192-255)

2.3 サブネット分割の例

192.168.1.0/24 を 4つのサブネットに分割:

元のホスト数: 254 (/24)
分割後のホスト数: 62 (/26)

4つのサブネット:
1. 192.168.1.0/26
   ネットワーク: 192.168.1.0
   ブロードキャスト: 192.168.1.63
   使用可能: 192.168.1.1 - 192.168.1.62

2. 192.168.1.64/26
   ネットワーク: 192.168.1.64
   ブロードキャスト: 192.168.1.127
   使用可能: 192.168.1.65 - 192.168.1.126

3. 192.168.1.128/26
   ネットワーク: 192.168.1.128
   ブロードキャスト: 192.168.1.191
   使用可能: 192.168.1.129 - 192.168.1.190

4. 192.168.1.192/26
   ネットワーク: 192.168.1.192
   ブロードキャスト: 192.168.1.255
   使用可能: 192.168.1.193 - 192.168.1.254

---

3. NetPracticeでの計算例

3.1 Level 1-3: 同一ネットワーク

問題: PC AとPC Bが通信できるように設定

PC A: 192.168.1.1/24
PC B: ???

解法:
1. PC Aのネットワークを特定: 192.168.1.0/24
2. PC Bは同じネットワークに属する必要がある
3. 使用可能な範囲: 192.168.1.2 - 192.168.1.254
4. PC B: 192.168.1.2/24 など

3.2 Level 4-6: ルーター経由

問題: PC AとPC Bが通信できるように設定(異なるネットワーク)

PC A: 192.168.1.1/24
Router Interface 1: 192.168.1.254/24
Router Interface 2: 10.0.0.254/24
PC B: 10.0.0.1/24

必要な設定:
- PC Aのゲートウェイ: 192.168.1.254
- PC Bのゲートウェイ: 10.0.0.254
- ルーターのルーティングテーブル(自動設定される場合が多い)

3.3 Level 7-8: ルーティングテーブル

問題: ルーティングテーブルを正しく設定

ネットワーク構成:
Network A: 192.168.1.0/24
Network B: 10.0.0.0/24
Network C: 172.16.0.0/24

Router 1のルーティングテーブル:
Destination      Gateway        Interface
192.168.1.0/24   0.0.0.0       eth0 (直接接続)
10.0.0.0/24      0.0.0.0       eth1 (直接接続)
172.16.0.0/24    10.0.0.2      eth1 (Router 2経由)
0.0.0.0/0        ISP_gateway   eth2 (デフォルトルート)

---

4. よくある計算パターン

4.1 指定IPが属するサブネット

問題: 172.16.45.123/20 はどのサブネットに属するか?

Step 1: /20のブロックサイズを計算
第3オクテット: /20 = /16 + 4ビット
ブロックサイズ = 2^(8-4) = 16

Step 2: 45がどのブロックに属するか
45 ÷ 16 = 2.8...
→ ブロック2 (32-47)

Step 3: サブネットアドレス
172.16.32.0/20

Step 4: ブロードキャストアドレス
172.16.47.255

Step 5: 使用可能な範囲
172.16.32.1 - 172.16.47.254

4.2 必要なサブネットサイズ

問題: 50台のホストを収容できる最小サブネット

Step 1: 必要なホストビット数
2^6 = 64 > 50+2 (ネットワーク+ブロードキャスト)
→ 6ビット必要

Step 2: CIDR表記
/26 (32 - 6 = 26)

Step 3: サブネットマスク
255.255.255.192

4.3 2つのIPが同一ネットワークか判定

問題: 192.168.1.100/25 と 192.168.1.200/25 は同じネットワークか?

Step 1: /25のブロック境界
0-127, 128-255

Step 2: 各IPの属するブロック
192.168.1.100 → 0-127 → ネットワーク: 192.168.1.0/25
192.168.1.200 → 128-255 → ネットワーク: 192.168.1.128/25

Step 3: 判定
異なるネットワーク → 直接通信不可

---

5. 計算のショートカット

5.1 マジックナンバー法

256からサブネットマスクの最後のオクテットを引く:

/25: 256 - 128 = 128 (ブロックサイズ)
/26: 256 - 192 = 64
/27: 256 - 224 = 32
/28: 256 - 240 = 16
/29: 256 - 248 = 8
/30: 256 - 252 = 4

5.2 ホスト数の暗記

/24 → 254 hosts
/25 → 126 hosts
/26 → 62 hosts
/27 → 30 hosts
/28 → 14 hosts
/29 → 6 hosts
/30 → 2 hosts

パターン: 2^(32-CIDR) - 2

5.3 クイック判定

同一ネットワーク判定(/24の場合):
最初の3オクテットが同じか?

192.168.1.1 と 192.168.1.100 → 同じ
192.168.1.1 と 192.168.2.1   → 異なる

同一ネットワーク判定(/26の場合):
最初の3オクテットが同じ AND
第4オクテットが同じ64ブロック内か?

192.168.1.1  (0-63ブロック)
192.168.1.65 (64-127ブロック) → 異なるネットワーク

---

6. 実践問題

問題1

192.168.10.0/24 を 8つのサブネットに分割
各サブネットのネットワークアドレスとブロードキャストを求めよ

解答

8 = 2^3 なので、3ビット追加 → /27
ブロックサイズ: 256 - 224 = 32

1. 192.168.10.0/27    BC: 192.168.10.31
2. 192.168.10.32/27   BC: 192.168.10.63
3. 192.168.10.64/27   BC: 192.168.10.95
4. 192.168.10.96/27   BC: 192.168.10.127
5. 192.168.10.128/27  BC: 192.168.10.159
6. 192.168.10.160/27  BC: 192.168.10.191
7. 192.168.10.192/27  BC: 192.168.10.223
8. 192.168.10.224/27  BC: 192.168.10.255

問題2

10.20.30.45/22 の
- ネットワークアドレス
- ブロードキャストアドレス
- 使用可能なホスト範囲
を求めよ

解答

/22 = 255.255.252.0
第3オクテットのブロックサイズ: 256 - 252 = 4

30 ÷ 4 = 7.5 → ブロック7 (28-31)

ネットワーク: 10.20.28.0/22
ブロードキャスト: 10.20.31.255
使用可能: 10.20.28.1 - 10.20.31.254
ホスト数: 1022

---

まとめ

本章で学んだこと:

  • 2進数変換: IPアドレス計算の基礎
  • サブネットマスク: CIDR、ブロックサイズ
  • サブネット分割: ネットワークの細分化
  • 計算テクニック: マジックナンバー法、クイック判定

次章では、ルーティングの詳細を学びます。