IPアドレスからCIDRまでざっくり理解する

こんにちは！今回は、Webアプリケーションの開発中に直面したある問題をきっかけに、ネットワークの基本となる「IPアドレス」「サブネットマスク」「ネットワークアドレス」、そしてこれらをシンプルに表す「CIDR」について解説します。

## この記事を書こうと思った背景

私が今回この記事を書こうと思ったのは、外部API連携機能の実装中に、API側でIPアドレス制限が設定されていることに気づいたからです。連携先では、特定のIPアドレスからのアクセスしか許可されていなかったのですが、開発中のWebアプリケーションサーバーは固定IPを持っていなかったため、どのように連携すればよいか悩んでいました。

そこで、まずは「IPアドレスとはそもそも何か？」という基本概念を理解し、実装方針を固めることにしました。この記事では、そうした経験を共有しながら、ネットワークの基礎知識とCIDRの活用方法についてわかりやすく説明します！

## 目次

- [ネットワークの基本をおさらい](#ネットワークの基本をおさらい)
  - [IPアドレスって？](#IPアドレスって)
  - [サブネットマスクって？](#サブネットマスクって)
  - [ネットワークアドレスって？](#ネットワークアドレスって)
- [CIDRって何？](#CIDRって何)
- [CIDRの具体的な活用例](#CIDRの具体的な活用例)
- [図でサクッと理解！ネットワーク構成](#図でサクッと理解ネットワーク構成)
- [まとめ](#まとめ)

---

## ネットワークの基本をおさらい

### IPアドレスって？

- **概要**:  
  IPアドレスは、PCやスマホ、サーバーなど、ネットワークに接続する機器に与えられる「住所」です。  
  例: `192.168.1.100`

- **役割**:  
  この住所があるおかげで、データは正しい宛先に送られ、Webアプリケーション同士の通信もスムーズになります。

### サブネットマスクって？

- **概要**:  
  サブネットマスクは、IPアドレスの中で「どこからがネットワーク部分で、どこからが各機器（ホスト）の部分か」を見分けるためのルールです。  
  例: `255.255.255.0`（CIDR表記では `/24` と同じ意味）

- **役割**:  
  ネットワーク内でどの機器が同じグループに属しているかを判断するため、管理やセキュリティの面で非常に重要です。

### ネットワークアドレスって？

- **概要**:  
  ネットワークアドレスは、IPアドレスにサブネットマスクを適用し、ホスト部分を全て0にしたアドレスです。  
  例: IPアドレスが `192.168.1.100` で、サブネットマスクが `255.255.255.0` の場合、ネットワークアドレスは `192.168.1.0` となります。

- **役割**:  
  ネットワーク全体をひとまとめにする「共通の住所」として、ルーターがデータの振り分けを行う際の基準となります。

---

## CIDRって何？

**CIDR（Classless Inter-Domain Routing）**は、従来のクラスベースのIPアドレス体系に代わり、より柔軟にアドレスを管理・割り当てするための方法です。

- **CIDR表記**:  
  例: `192.168.1.0/24`  
  この `/24` は、「ネットワーク部分が24ビット」であることを意味し、サブネットマスクの `255.255.255.0` と同じ情報です。

- **メリット**:  
  - 必要なアドレス数に合わせた柔軟なネットワーク設計が可能  
  - IPアドレスの無駄を削減し、効率的な管理が実現できる  
  - ルーティングテーブルの集約が容易になり、ネットワーク全体のパフォーマンスが向上する

---

## CIDRの具体的な活用例

### 1. 柔軟なアドレス割り当て

外部APIとの連携先では、特定のIPアドレスからしかアクセスできないという制限があるケースが多いです。ISP（インターネットサービスプロバイダ）は、企業や個人に必要な数のIPアドレスをCIDR表記で割り当て、柔軟に管理しています。  
- 例: 大企業向けに `/22`（約1024アドレス）、中小企業向けに `/24`（256アドレス）など

### 2. ルーティングテーブルの集約

CIDRを使えば、連続する複数のサブネットをひとまとめにできるため、ルーティングテーブルがスッキリします。  
- 例:  
  ```
  192.168.0.0/24  
  192.168.1.0/24  
  192.168.2.0/24  
  192.168.3.0/24  
  ```  
  これらを `192.168.0.0/22` とまとめることで、ネットワーク管理が簡単になり、パフォーマンス向上にも寄与します。

### 3. セキュリティ向上とネットワーク管理

企業内では、部門や拠点ごとに異なるサブネットを設定し、CIDR表記でネットワークを柔軟に設計することで、アクセス制限やセキュリティポリシーを適用しやすくなります。今回のように、固定IPがなくてもネットワークの仕組みを理解することで、連携先APIとのアクセス方法やセキュリティ対策の検討材料になります。

---

## 図でサクッと理解！ネットワーク構成

下記の図は、IPアドレス、サブネットマスク、ネットワークアドレス、そしてCIDR表記の関係をシンプルに示しています。

```
              ┌────────────────────────────┐
              │       IPアドレス           │
              │    192.168.1.100           │
              └────────────────────────────┘
                          │
         サブネットマスク適用: 255.255.255.0
                 (CIDR表記: /24)
                          │
                          ▼
              ┌────────────────────────────┐
              │    ネットワークアドレス     │
              │    192.168.1.0             │
              └────────────────────────────┘
```

**ポイントまとめ**

- **IPアドレス**: 各機器の「個別の住所」
- **サブネットマスク**: 「住所のどの部分がネットワークか」を判断するルール
- **ネットワークアドレス**: サブネットマスクを適用して得られる、ネットワーク全体の「共通住所」
- **CIDR表記**: これらの情報をコンパクトに表す方法（例: `/24`）

---

## まとめ

  
- **IPアドレス**は各機器の一意の「住所」  
- **サブネットマスク**は、どの部分がネットワークかを見分けるルール  
- **ネットワークアドレス**は、サブネットマスクを適用した結果得られる、ネットワーク全体の共通の「住所」  
- **CIDR**は、これらの概念を柔軟かつ効率的に管理するための表記法