フリーキーズ | 独学プログラミング

IPアドレスとCIDR表記を理解しよう!ネットワーク初心者のための基礎知識

リンドくん

リンドくん

たなべ先生、プログラミングでサーバを立てるときに「IPアドレス」とか「CIDR」って言葉が出てくるんですけど、正直よくわかってなくて...

たなべ

たなべ

なるほど!確かにネットワークの知識って、プログラミングを学ぶ上でも避けて通れないよね。
でも安心して。IPアドレスは「インターネット上の住所」みたいなもので、CIDRはその住所の範囲を指定する書き方なんだ。今日はその仕組みを一緒に学んでいこう。

プログラミングを学んでいると、Webアプリケーションの開発やサーバの構築などで、必ずと言っていいほど「IPアドレス」や「CIDR表記」という言葉に出会います。しかし、これらの概念を正しく理解しないまま進めてしまうと、ネットワークのトラブルシューティングや適切なセキュリティ設定ができなくなってしまいます。

この記事では、ネットワーク学習を始めたばかりの初心者の方でも理解できるよう、IPアドレスの基本概念からCIDR表記の意味、実際の使い方まで、段階的にわかりやすく解説していきます。

プログラミング学習でお悩みの方へ

HackATAは、エンジニアを目指す方のためのプログラミング学習コーチングサービスです。 経験豊富な現役エンジニアがあなたの学習をサポートします。

✓ 質問し放題

✓ β版公開中(2025年内の特別割引)

HackATAの詳細を見る

IPアドレスとは何か?ネットワークにおける「住所」の役割

リンドくん

リンドくん

IPアドレスって、具体的には何なんですか?数字がドットで区切られてるやつですよね?

たなべ

たなべ

その通り!例えば192.168.1.1みたいな形式だね。
これはコンピュータがネットワーク上で通信するための識別番号なんだ。郵便物を送るときの住所と同じで、正確なアドレスがないとデータが届かないんだよ。

IPアドレスの基本的な仕組み

IPアドレス(Internet Protocol Address)は、インターネットやローカルネットワーク上でコンピュータを識別するための番号です。
現在主流のIPv4(Internet Protocol version 4)では、以下のような特徴があります。

  • 32ビットの数値で構成される
  • 8ビットずつ4つの部分に区切られる
  • 各部分は0〜255の範囲の数値で表現される
  • ドット(.)で区切って表記される

例えば192.168.1.100というIPアドレスは、以下のように構成されています。

192.168.1.100
 │   │  │  │
 └───┴──┴──┴─ 各部分が0〜255の数値

この4つの数値の組み合わせにより、理論上は約43億個(2の32乗)のアドレスを表現できます。

プライベートIPアドレスとパブリックIPアドレス

IPアドレスには大きく分けて2種類あります。

プライベートIPアドレス(ローカルIP)

自宅や会社などの限定されたネットワーク内でのみ使用されるアドレスです。インターネット上では直接通信できません。

以下の範囲が予約されています。

  • 10.0.0.010.255.255.255
  • 172.16.0.0172.31.255.255
  • 192.168.0.0192.168.255.255
パブリックIPアドレス(グローバルIP)

インターネット上で世界中で一意に識別されるアドレスです。インターネットに直接接続されたサーバやルーターに割り当てられます。

この区別は非常に重要です。なぜなら、自宅のPCに割り当てられた192.168.1.5というアドレスは、世界中の他の家庭のネットワークでも同じアドレスが使われている可能性が高いからです。これらはルーターを通じてNAT(Network Address Translation)という仕組みで変換され、インターネットと通信しています。

実際の使用例

例えば、自宅でWi-Fiに接続したとき、あなたのスマートフォンには以下のようなIPアドレスが割り当てられるかもしれません。

IPアドレス: 192.168.1.105
サブネットマスク: 255.255.255.0
デフォルトゲートウェイ: 192.168.1.1

ここで192.168.1.105があなたのスマートフォンの住所、192.168.1.1がインターネットへの出口(ルーター)の住所となります。

サブネットマスクとネットワークの分割

リンドくん

リンドくん

サブネットマスクって何ですか?IPアドレスと一緒によく見るんですけど...

たなべ

たなべ

これも重要な概念だね!
サブネットマスクは、IPアドレスの中で「どこまでがネットワーク部分で、どこからがホスト部分か」を決めるためのものなんだ。

ネットワーク部とホスト部の概念

IPアドレスは、実は2つの部分に分けて考えることができます。

  • ネットワーク部 - どのネットワークに属しているかを示す部分(町名のようなもの)
  • ホスト部 - そのネットワーク内での個別の識別番号(番地のようなもの)

例えば、192.168.1.100というアドレスで、サブネットマスクが255.255.255.0の場合、以下のように分割されます。

IPアドレス:        192.168.1.100
サブネットマスク:  255.255.255.0
                   └─ネットワーク部─┘└ホスト部┘

この場合、192.168.1がネットワークを識別する部分、100がそのネットワーク内での端末を識別する部分となります。

サブネットマスクの仕組み

サブネットマスクは、IPアドレスと同じく4つの数値で構成されますが、その意味は少し異なります。

よく使われるサブネットマスクの例

  • 255.255.255.0 - 254台のホストを収容できるネットワーク(/24)
  • 255.255.0.0 - 約65,000台のホストを収容できるネットワーク(/16)
  • 255.0.0.0 - 約1,670万台のホストを収容できるネットワーク(/8)

これを2進数で見ると、より理解しやすくなります。

255.255.255.0 を2進数で表すと:
11111111.11111111.11111111.00000000

1の部分 = ネットワーク部
0の部分 = ホスト部

つまり、サブネットマスクの「255」の部分がネットワークを示し、「0」の部分がホスト(個別の端末)を示しているのです。

ネットワーク分割の実例

企業のネットワークを例に考えてみましょう。

会社全体のネットワーク: 192.168.0.0/16

└─ 営業部門: 192.168.1.0/24(254台まで接続可能)
└─ 開発部門: 192.168.2.0/24(254台まで接続可能)
└─ 総務部門: 192.168.3.0/24(254台まで接続可能)

このように、大きなネットワークを部門ごとに小さく分割することで、管理がしやすくなり、セキュリティも向上します。

CIDR表記の意味と使い方

リンドくん

リンドくん

先生、さっきから出てくる「/24」とか「/16」って何ですか?

たなべ

たなべ

それがCIDR表記だよ!
サブネットマスクを簡潔に表す方法なんだ。192.168.1.0/24と書けば、サブネットマスクが255.255.255.0だということを示しているんだよ。

CIDRとは何か

CIDR(Classless Inter-Domain Routing、サイダーと読む)は、IPアドレスとサブネットマスクをスラッシュ記法で簡潔に表現する方法です。

従来の表記方法と比較してみましょう。

従来の表記

IPアドレス: 192.168.1.0
サブネットマスク: 255.255.255.0

CIDR表記

192.168.1.0/24

このように、CIDR表記を使うことで、1行で簡潔にネットワークの範囲を表現できます。

CIDR表記の読み方

スラッシュの後の数字は、ネットワーク部のビット数を表しています。

192.168.1.0/24
           └─ ネットワーク部が24ビット(32ビット中)

これを2進数で見ると、以下のようになります。

/24の場合:
11111111.11111111.11111111.00000000
└────── 24個の1 ──────┘└8個の0┘

つまり、サブネットマスク = 255.255.255.0

よく使われるCIDR表記一覧

CIDRサブネットマスク使用可能なホスト数用途例
/32255.255.255.2551台単一ホストの指定
/31255.255.255.2542台ポイントツーポイント接続
/30255.255.255.2522台ルータ間接続
/29255.255.255.2486台小規模オフィス
/28255.255.255.24014台小規模ネットワーク
/27255.255.255.22430台小〜中規模ネットワーク
/26255.255.255.19262台中規模ネットワーク
/25255.255.255.128126台中規模ネットワーク
/24255.255.255.0254台一般的な企業ネットワーク
/16255.255.0.065,534台大規模ネットワーク
/8255.0.0.016,777,214台超大規模ネットワーク

CIDR表記の実践例

実際の設定例を見てみましょう。

例① 小規模オフィスのネットワーク設定

ネットワークアドレス: 192.168.10.0/28
利用可能なIPアドレス範囲: 192.168.10.1 〜 192.168.10.14
ブロードキャストアドレス: 192.168.10.15

この設定では、最大14台の機器を接続できます。

例② Webサーバへのアクセス制限

許可するIPアドレス範囲: 203.0.113.0/24

この設定により、203.0.113.1から203.0.113.254までの範囲からのアクセスを許可できます。

例③ AWSのVPC(Virtual Private Cloud)設定

VPC CIDR: 10.0.0.0/16

サブネット構成:
├─ パブリックサブネット: 10.0.1.0/24
├─ プライベートサブネット: 10.0.2.0/24
└─ データベースサブネット: 10.0.3.0/24

このように、クラウド環境でのネットワーク設計でもCIDR表記が標準的に使用されています。

ネットワーク設計の基本的な考え方

リンドくん

リンドくん

実際にネットワークを設計するとき、どういう風に考えればいいんですか?

たなべ

たなべ

まずは「何台のホストが必要か」から考えるのがポイントだよ。
それに応じて適切なCIDRブロックを選ぶんだ。将来的な拡張も考慮することが大切だね。

ネットワーク設計の基本ステップ

ステップ① 必要なホスト数の見積もり

現在必要な台数だけでなく、将来の拡張も考慮しましょう。

例:

  • 現在のPC: 20台
  • 今後3年での増加予想: 10台
  • 余裕を見て: 50台程度収容できるネットワークが理想

/26(62台)または /25(126台)が適切

ステップ② ネットワークの階層化

セキュリティや管理の観点から、ネットワークを適切に分割します。

例: Webアプリケーションのネットワーク設計

10.0.0.0/16(会社全体)
├─ 10.0.1.0/24: フロントエンド層(Webサーバなど)
├─ 10.0.2.0/24: アプリケーション層(APIサーバなど)
├─ 10.0.3.0/24: データベース層(DBサーバなど)
└─ 10.0.100.0/24: 管理用ネットワーク

ステップ③ IPアドレスの割り当てルールを決める

運用を楽にするため、規則的なアドレス割り当てを心がけましょう。

例: 192.168.1.0/24 のネットワーク内での割り当てルール

.1 〜 .10:     ネットワーク機器(ルーター、スイッチなど)
.11 〜 .50:    サーバ
.51 〜 .100:   固定IPが必要な機器(プリンタなど)
.101 〜 .254:  DHCP自動割り当て(PC、スマホなど)

よくある設計ミスと対策

ミス① ネットワークが小さすぎる

問題: /30(2台)で設計したら、すぐに機器を追加できなくなった

対策: 将来の拡張を見越して、少し余裕のあるサイズを選ぶ

ミス② ネットワークが大きすぎる

問題: 小規模オフィスなのに/16で設計してしまい、管理が複雑に

対策: 必要最小限+αのサイズに抑える

ミス③ セキュリティを考慮していない

問題: すべてのサーバが同じネットワークにあり、攻撃を受けやすい

対策: 機能ごとにネットワークを分割し、ファイアウォールで制御

まとめ

リンドくん

リンドくん

ネットワークの基礎って、思ってたより奥が深いんですね!でも、今日の話でかなり理解が進みました。

たなべ

たなべ

そうだね!最初は難しく感じるかもしれないけど、実際に手を動かして設定してみると理解が深まるよ。
特にこれからクラウドやコンテナ技術を学ぶなら、この知識は絶対に必要になってくるからね。

この記事では、IPアドレスとCIDR表記について、基礎から実践的な活用法まで解説してきました。

重要なポイントをおさらいしましょう。

  • IPアドレスは「ネットワーク上の住所」であり、機器を識別するために必要
  • プライベートIPとパブリックIPの違いを理解することがセキュリティの基本
  • サブネットマスクでネットワークを分割し、効率的に管理できる
  • CIDR表記はネットワークの範囲を簡潔に表現する方法
  • 実際の開発ではサーバ設定やアクセス制御で頻繁に使用する

ネットワークの知識は、Webアプリケーション開発、クラウドインフラ構築、セキュリティ対策など、あらゆる場面で必要になります。
特にAI時代のエンジニアとして成長するには、コンピュータサイエンスの基礎となるネットワークの理解が不可欠です。

この記事をシェア

関連するコンテンツ