#0151（2025/05/25）TCP/IPへの疑問 その4

# 通信の疑問

エンジニアがネットワークを触っていると必ずぶつかる “素朴だけど奥が深い” 疑問を、実際のコマンド出力や設定例を交えながら体系的に解説します。


---

<a name="ch1"></a>

## 1. サブネットマスク・CIDR・VLSM — 何がどう違う？

### 回答 & 詳解

| 用語           | 本質                                                                                | 例                             | 補足                       |
| ------------ | --------------------------------------------------------------------------------- | ----------------------------- | ------------------------ |
| **サブネットマスク** | ビットマスク（32bit）でネットワーク部とホスト部を分割                                                     | `255.255.255.0`               | 古くからある表現。人間には読みやすい反面、冗長。 |
| **CIDR**     | *Classless Inter‑Domain Routing*：サブネットマスクを **/24** のようにビット長で表す書式、かつクラスレスルーティングの技術 | `192.168.1.0/24`              | 「表記法」+「ルート集約技術」をまとめて指す。  |
| **VLSM**     | *Variable Length Subnet Mask*：CIDR を駆使し、用途ごとに異なるサイズのサブネットを組み合わせる設計手法              | `/30`, `/28`, `/24` が同一ネットで混在 | IP を節約できるが設計が複雑。         |

#### 例：`ip addr` の出力

```bash
3: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet 10.0.3.15/24 brd 10.0.3.255 scope global dynamic enp0s3
```

* `/24` が **CIDR 表記**
* 対応するサブネットマスクは `255.255.255.0`

---

<a name="ch2"></a>

## 2. プライベート IP 範囲は「10.x.x.x とか 192.168.x.x ってどうして選ばれたの？

### 回答 & 詳解

* 1996 年発行の **RFC 1918** が、インターネット未接続 (private) 用に **3 クラス分** を丸ごと予約。
* 当時インターネットで *ほぼ空いていた* 区画を選択し、ルータが一律にフィルタしやすいよう範囲を **各クラス 1 つ** に統一。

| プライベート範囲                        | 元クラス | CIDR | ホスト数 (理論)  |
| ------------------------------- | ---- | ---- | ---------- |
| `10.0.0.0 – 10.255.255.255`     | A    | /8   | 16,777,216 |
| `172.16.0.0 – 172.31.255.255`   | B    | /12  | 1,048,576  |
| `192.168.0.0 – 192.168.255.255` | C    | /16  | 65,536     |

---

<a name="ch3"></a>

## 3. 「192.168.1.1 みたいなグローバル IP って絶対無いの？」


### 回答 & 詳解

* **存在しない**。RFC 1918 で *永久予約* されたため、RIR (Regional Internet Registry) が割り当てを行わない。
* インターネットのコアルータはこれらの経路を破棄するため、外部とは通信できない。

```text
$ whois 10.0.0.0
This network is private, per RFC1918
```

> **注意**：`192.` で始まるから全てプライベートとは限らない。`192.0.2.0/24`（RFC 5737 ドキュメント用）など、別の予約範囲もある。

---

<a name="ch4"></a>

## 4. **192.168.0.0/16** は 何個使えるの？


### 回答 & 詳解

* `/16` が示すのは **ネットワーク部 16bit／ホスト部 16bit** という意味。
* ホスト部 16bit ⇒ **2¹⁶ = 65,536 個** のアドレスを保持。
* ただし運用しやすいよう、通常はさらに `/24`（1 セグメント 254 台）へ細分化して使う。

```text
192.168.0.0/24   → 192.168.0.1 – 192.168.0.254
192.168.1.0/24   → 192.168.1.1 – 192.168.1.254
…
192.168.255.0/24 → 192.168.255.1 – 192.168.255.254
```

---

<a name="ch5"></a>

## 5. CIDR が `/17` のとき、割り当てられるアドレス数は？


### 回答 & 詳解

* `/17` → ホスト部 15bit → **2¹⁵ = 32,768**
* ネットワークアドレスとブロードキャストを除き **32,766 台** 割り当て可能。

#### ビット演算で確認

```
IP      00001010 00010010 11111101 00100010 (10.18.253.34)
Mask    11111111 11111111 10000000 00000000 (/17)
Result  00001010 00010010 10000000 00000000 (10.18.128.0)
```

---

<a name="ch6"></a>

## 6. 外から来たパケットは NAT までは届くけど、その先の LAN 内のどの端末に行くの？


### 回答 & 詳解

1. **通常は届かない**

   * NAT は “内部発端” の通信だけを記録し逆方向へ戻す。
2. **外部発端を通す方法**

   | 手法           | 仕組み                   | 典型設定例                                |
   | ------------ | --------------------- | ------------------------------------ |
   | ポートフォワーディング  | 指定ポート → 指定ローカル IP に写像 | `203.0.113.1:8080 → 192.168.1.10:80` |
   | 静的 NAT       | 1:1 で IP を対応付け        | `203.0.113.5 ↔ 192.168.1.100`        |
   | DMZ          | 全ポートを 1 台に転送          | 家庭用ルータの「DMZ ホスト」                     |
   | UPNP/NAT-PMP | アプリが自動開放              | ゲーム・WebRTC など                        |

> **セキュリティ注意**：不要なポート開放は攻撃リスクを高める。

---

<a name="ch7"></a>

## 7. そもそも外部→内部の一方通行が必要なケースって？

### 回答 & ユースケース

| ユースケース                   | 理由            | 必要な対策                   |
| ------------------------ | ------------- | ----------------------- |
| 自宅/社内で公開 Web・FTP・SSH サーバ | 公開サービスをホスト    | ポートフォワーディング、静的 IP       |
| IoT・防犯カメラのリモート視聴         | 外出先アプリから映像取得  | 中継クラウド or ポート開放         |
| P2P / WebRTC / オンラインゲーム  | 低遅延の直結通信      | STUN/TURN、Hole‑Punching |
| リモートデスクトップ               | 社用 PC に外部から接続 | TCP3389 開放＋ VPN 推奨      |
| 悪意あるスキャン・攻撃              | 脆弱性探索         | FW で遮断、IDS/IPS          |

---

<a name="ch8"></a>

## 8. まとめと次のステップ

* **CIDR と VLSM** を理解するとネットワーク設計の自由度が飛躍的に向上する。
* **プライベート / グローバル IP の線引き** を誤ると通信できずハマるので要注意。
* **NAT 越え** に関してはポートフォワーディング・VPN・STUN/TURN を状況に応じて選択。

### 学習を深めるための RFC リンク

* RFC 1918: *Address Allocation for Private Internets*
* RFC 4632: *Classless Inter‑Domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan*
* RFC 4787: *NAT Behavioral Requirements*