「ネットワーク - アドレス計算」の版間の差分
ページの作成:「== 概要 == ネットワーク計算とは、IPアドレス、サブネットマスク、ネットワークアドレス、ブロードキャストアドレスなどを計算するための技術である。<br> これらの計算は、ネットワークの設計、管理、トラブルシューティングに不可欠である。<br> <br> IPアドレスは、ネットワーク上のデバイスを一意に識別するための数値であり、32ビット (IPv4)…」 |
|||
| 294行目: | 294行目: | ||
<br> | <br> | ||
ホスト数の計算式:<br> | ホスト数の計算式:<br> | ||
<math>\mbox{ | <math>\mbox{ 利 用 可 能 な ホ ス ト 数 } = 2^{n} - 2</math><br> | ||
<br> | <br> | ||
ここで、<math>n</math> はホスト部のビット数である。<br> | ここで、<math>n</math> はホスト部のビット数である。<br> | ||
| 325行目: | 325行目: | ||
#: 利用可能なホスト数: <math>2</math>個 | #: 利用可能なホスト数: <math>2</math>個 | ||
<br> | <br> | ||
==== ホストアドレスの範囲 ==== | ==== ホストアドレスの範囲 ==== | ||
ネットワーク内で利用可能なホストアドレスの範囲は、以下のように求められる。<br> | ネットワーク内で利用可能なホストアドレスの範囲は、以下のように求められる。<br> | ||
2025年12月24日 (水) 04:09時点における最新版
概要
ネットワーク計算とは、IPアドレス、サブネットマスク、ネットワークアドレス、ブロードキャストアドレスなどを計算するための技術である。
これらの計算は、ネットワークの設計、管理、トラブルシューティングに不可欠である。
IPアドレスは、ネットワーク上のデバイスを一意に識別するための数値であり、32ビット (IPv4) または128ビット (IPv6) で表現される。
本ドキュメントでは、IPv4アドレスを中心に説明する。
サブネットマスクは、IPアドレスをネットワーク部分とホスト部分に分割するためのビットマスクである。
これにより、ネットワークの論理的な分割が可能になる。
主な計算項目を以下に示す。
- ネットワークアドレスの計算 (IPアドレス および サブネットマスク)
- ブロードキャストアドレスの計算 (ホスト部を全て1にする)
- 利用可能なホスト数の計算
- サブネット分割 (必要なホスト数 / サブネット数からビット数を計算)
- CIDR / スーパーネット化 (ルート集約)
IPアドレスの基礎
IPアドレスの構造
IPv4アドレスは、32ビットで構成され、8ビットずつ4つのオクテット (バイト) に分割される。
各オクテットは、0から255までの10進数で表現される。
例:
この10進数表記を2進数に変換すると、以下のようになる。
192.168.1.100(10) = 11000000.10101000.00000001.01100100(2)
IPアドレスは、以下の2つの部分から構成される。
- ネットワーク部 (Network Part)
- ネットワークを識別する部分
- ホスト部 (Host Part)
- ネットワーク内の個々のデバイスを識別する部分
この境界を定義するのが、サブネットマスクである。
IPアドレスクラス
IPアドレスは、歴史的にクラスA、B、C、D、Eの5つのクラスに分類されていた。
(現在は、CIDR表記が主流であるが、クラスの概念は理解しておく必要がある)
- クラスA
- 第1オクテット: 0 - 127
- デフォルトサブネットマスク: 255.0.0.0 (/8)
- ネットワーク数: 128 (27)
- ホスト数/ネットワーク: 16,777,214 (224 - 2)
- 用途: 大規模ネットワーク
- クラスB
- 第1オクテット: 128 - 191
- デフォルトサブネットマスク: 255.255.0.0 (/16)
- ネットワーク数: 16,384 (214)
- ホスト数/ネットワーク: 65,534 (216 - 2)
- 用途: 中規模ネットワーク
- クラスC
- 第1オクテット: 192 - 223
- デフォルトサブネットマスク: 255.255.255.0 (/24)
- ネットワーク数: 2,097,152 (221)
- ホスト数/ネットワーク: 254 (28 - 2)
- 用途: 小規模ネットワーク
- クラスD
- 第1オクテット: 224 - 239
- 用途: マルチキャスト
- クラスE
- 第1オクテット: 240 - 255
- 用途: 実験用 (予約済み)
プライベートIPアドレス
プライベートIPアドレスは、インターネット上でルーティングされない、組織内部で使用するためのIPアドレスである。
RFC 1918で定義されている。
- クラスA: 10.0.0.0 - 10.255.255.255 (10.0.0.0/8)
- クラスB: 172.16.0.0 - 172.31.255.255 (172.16.0.0/12)
- クラスC: 192.168.0.0 - 192.168.255.255 (192.168.0.0/16)
特殊なIPアドレス
- 0.0.0.0
- デフォルトルート、または未割り当てアドレス
- 127.0.0.0/8 (127.0.0.1 - 127.255.255.255)
- ループバックアドレス (localhost)
- 169.254.0.0/16
- APIPAアドレス (Automatic Private IP Addressing)
- DHCPサーバーから自動取得できない場合に自動割り当てされる
- 255.255.255.255
- 限定ブロードキャストアドレス (ローカルネットワーク全体に送信)
サブネットマスク
サブネットマスクの役割
サブネットマスクは、IPアドレスのどの部分がネットワーク部で、どの部分がホスト部かを定義する。
32ビットのビットマスクであり、ネットワーク部は1、ホスト部は0で表現される。
サブネットマスクの表記法
サブネットマスクには、2つの表記法がある。
- ドット付き10進数表記
- 例: 255.255.255.0
- CIDR (Classless Inter-Domain Routing) 表記 / プレフィックス表記
- 例: /24
- ネットワーク部のビット数を示す
下表に、頻繁に使用するサブネットマスクの対応を示す。
| CIDR表記 | ドット付き10進数 | 2進数表記 | ホスト数 |
|---|---|---|---|
| /8 | 255.0.0.0 | 11111111.00000000.00000000.00000000 | 16,777,214 |
| /16 | 255.255.0.0 | 11111111.11111111.00000000.00000000 | 65,534 |
| /24 | 255.255.255.0 | 11111111.11111111.11111111.00000000 | 254 |
| /25 | 255.255.255.128 | 11111111.11111111.11111111.10000000 | 126 |
| /26 | 255.255.255.192 | 11111111.11111111.11111111.11000000 | 62 |
| /27 | 255.255.255.224 | 11111111.11111111.11111111.11100000 | 30 |
| /28 | 255.255.255.240 | 11111111.11111111.11111111.11110000 | 14 |
| /29 | 255.255.255.248 | 11111111.11111111.11111111.11111000 | 6 |
| /30 | 255.255.255.252 | 11111111.11111111.11111111.11111100 | 2 |
| /31 | 255.255.255.254 | 11111111.11111111.11111111.11111110 | 2 (特殊用途) |
| /32 | 255.255.255.255 | 11111111.11111111.11111111.11111111 | 1 (ホスト指定) |
サブネットマスクの変換
例: /23をドット付き10進数に変換
/23は、最初の23ビットがネットワーク部を表す。
- 32ビット中、最初の23ビットを1、残りの9ビットを0にする
- 各オクテットを10進数に変換する
- 第1オクテット:
- 第2オクテット:
- 第3オクテット:
- 第4オクテット:
- 結果
例: 255.255.240.0をCIDR表記に変換
- 各オクテットを2進数に変換する
- 第1オクテット:
- 第2オクテット:
- 第3オクテット:
- 第4オクテット:
- 2進数を連結する
- 1のビット数を数える
- 1が20個連続している
- 結果
ネットワーク計算
ネットワークアドレスの計算
ネットワークアドレスは、ネットワーク全体を識別するアドレスであり、ホスト部が全て0のアドレスである。
IPアドレスとサブネットマスクのビット単位のAND演算により求められる。
例 : IPアドレス 192.168.1.100、サブネットマスク 255.255.255.0 (/24)
- IPアドレスを2進数に変換
- サブネットマスクを2進数に変換
- AND演算を実行
11000000.10101000.00000001.01100100 (IP) & 11111111.11111111.11111111.00000000 (マスク) = 11000000.10101000.00000001.00000000 (ネットワーク)
- 10進数に変換
- 結果
- ネットワークアドレス:
例 : IPアドレス 172.16.45.200、サブネットマスク /20
- サブネットマスクをドット付き10進数に変換
- IPアドレスを2進数に変換
- サブネットマスクを2進数に変換
- AND演算を実行
10101100.00010000.00101101.11001000 (IP) & 11111111.11111111.11110000.00000000 (マスク) = 10101100.00010000.00100000.00000000 (ネットワーク)
- 10進数に変換
- 第3オクテット:
- 結果
- ネットワークアドレス:
ブロードキャストアドレスの計算
ブロードキャストアドレスは、ネットワーク内の全てのデバイスにデータを送信するためのアドレスであり、ホスト部が全て1のアドレスである。
計算手順:
- ネットワークアドレスを求める
- ホスト部のビットを全て1にする
例 : IPアドレス 192.168.2.100、サブネットマスク /23
- サブネットマスクの確認
- ネットワーク部: 23ビット
- ホスト部: 32 - 23 = 9ビット
- IPアドレスを2進数に変換
- サブネットマスクを2進数に変換
- ネットワークアドレスを求める (AND演算)
11000000.10101000.00000010.01100100 (IP) & 11111111.11111111.11111110.00000000 (マスク) = 11000000.10101000.00000010.00000000 (ネットワーク)
- ネットワークアドレス:
- ホスト部 (最後の9ビット) を全て1にする
11000000.10101000.0000001|0.00000000 (ネットワーク) ↓ ホスト部を全て1に 11000000.10101000.0000001|1.11111111 (ブロードキャスト)
- 10進数に変換
- 第3オクテット:
- 第4オクテット:
- 結果
- ブロードキャストアドレス:
例 : IPアドレス 10.50.100.75、サブネットマスク /16
- サブネットマスクの確認
- ネットワーク部: 16ビット
- ホスト部: 32 - 16 = 16ビット
- IPアドレスを2進数に変換
- ネットワークアドレスを求める
00001010.00110010.01100100.01001011 (IP) & 11111111.11111111.00000000.00000000 (マスク) = 00001010.00110010.00000000.00000000 (ネットワーク)
- ネットワークアドレス:
- ホスト部 (最後の16ビット) を全て1にする
00001010.00110010|.00000000.00000000 (ネットワーク) ↓ ホスト部を全て1に 00001010.00110010|.11111111.11111111 (ブロードキャスト)
- 10進数に変換
- 結果
- ブロードキャストアドレス:
例 : IPアドレス 203.0.113.45、サブネットマスク /28
- サブネットマスクの確認
- ネットワーク部: 28ビット
- ホスト部: 32 - 28 = 4ビット
- IPアドレスを2進数に変換
- サブネットマスクを2進数に変換
- ネットワークアドレスを求める
11001011.00000000.01110001.00101101 (IP) & 11111111.11111111.11111111.11110000 (マスク) = 11001011.00000000.01110001.00100000 (ネットワーク)
- 第4オクテット:
- ネットワークアドレス:
- ホスト部 (最後の4ビット) を全て1にする
11001011.00000000.01110001.0010|0000 (ネットワーク) ↓ ホスト部を全て1に 11001011.00000000.01110001.0010|1111 (ブロードキャスト)
- 10進数に変換
- 第4オクテット:
- 結果
- ブロードキャストアドレス:
利用可能なホスト数の計算
ネットワーク内で実際にデバイスに割り当てることができるIPアドレスの数は、ホスト部のビット数から計算される。
ホスト数の計算式:
ここで、 はホスト部のビット数である。
2を減算する理由は、ネットワークアドレスとブロードキャストアドレスはホストに割り当てることができないためである。
例 : /24ネットワークの利用可能なホスト数
- ホスト部のビット数を求める
- ホスト部 = 32 - 24 = 8ビット
- ホスト数を計算
- 結果
- 利用可能なホスト数: 個
例 : /27ネットワークの利用可能なホスト数
- ホスト部のビット数を求める
- ホスト部 = 32 - 27 = 5ビット
- ホスト数を計算
- 結果
- 利用可能なホスト数: 個
例 : /30ネットワークの利用可能なホスト数
/30ネットワークは、ポイント・ツー・ポイント接続 (2つのルータ間の接続など) でよく使用される。
- ホスト部のビット数を求める
- ホスト部 = 32 - 30 = 2ビット
- ホスト数を計算
- 結果
- 利用可能なホスト数: 個
ホストアドレスの範囲
ネットワーク内で利用可能なホストアドレスの範囲は、以下のように求められる。
- 最小ホストアドレス = ネットワークアドレス + 1
- 最大ホストアドレス = ブロードキャストアドレス - 1
例 : 192.168.10.0/24
- ネットワークアドレス
- ブロードキャストアドレス
- ホストアドレスの範囲
- 最小:
- 最大:
- 利用可能なホスト数
- 個
例 : 172.20.0.0/22
- ネットワークアドレスを求める
- /22 =
- ネットワークアドレス:
- ブロードキャストアドレスを求める
- ホスト部: 32 - 22 = 10ビット
- ホスト部を全て1にする
- 第3オクテット:
- 第4オクテット:
- ブロードキャストアドレス:
- ホストアドレスの範囲
- 最小:
- 最大:
- 利用可能なホスト数
- 個
サブネット分割
サブネット分割の概要
サブネット分割 (Subnetting) とは、1つの大きなネットワークを複数の小さなサブネットに分割する技術である。
これにより、ネットワークの効率的な利用、セキュリティの向上、ブロードキャストドメインの縮小が可能になる。
サブネット分割の計算
例 : 192.168.1.0/24を4つのサブネットに分割
- 必要なサブネット数を確認
- 4つのサブネットが必要
- サブネット用のビット数を計算
- を満たす最小の を求める
- より、
- 新しいサブネットマスクを計算
- 元のサブネットマスク: /24
- サブネット用ビット: 2ビット
- 新しいサブネットマスク: /24 + 2 = /26
- 各サブネットの範囲を計算
- ホスト部: 32 - 26 = 6ビット
- サブネットごとのアドレス数:
- サブネット1
- ネットワークアドレス:
- ホスト範囲:
- ブロードキャストアドレス:
- 利用可能ホスト数: 62
- サブネット2
- ネットワークアドレス:
- ホスト範囲:
- ブロードキャストアドレス:
- 利用可能ホスト数: 62
- サブネット3
- ネットワークアドレス:
- ホスト範囲:
- ブロードキャストアドレス:
- 利用可能ホスト数: 62
- サブネット4
- ネットワークアドレス:
- ホスト範囲:
- ブロードキャストアドレス:
- 利用可能ホスト数: 62
例 : 10.0.0.0/8を、それぞれ500台のホストを収容できるサブネットに分割
- 必要なホスト数を確認
- 各サブネットに500台のホストが必要
- ホスト部のビット数を計算
- を満たす最小の を求める
- より、
- サブネットマスクを計算
- ホスト部: 9ビット
- ネットワーク部: 32 - 9 = 23ビット
- サブネットマスク: /23 =
- サブネット数を計算
- 元のネットワーク: /8 (ネットワーク部8ビット)
- 新しいネットワーク: /23 (ネットワーク部23ビット)
- サブネット用ビット: 23 - 8 = 15ビット
- サブネット数: 個
- 各サブネットのアドレス数
- 個 (利用可能ホスト: 510個)
- 最初のいくつかのサブネット例
- サブネット1: (10.0.0.0 - 10.0.1.255)
- サブネット2: (10.0.2.0 - 10.0.3.255)
- サブネット3: (10.0.4.0 - 10.0.5.255)
- ...
例 : 可変長サブネットマスク (VLSM)
可変長サブネットマスク (Variable Length Subnet Mask, VLSM) は、1つのネットワークを異なるサイズのサブネットに分割する技術である。
シナリオ: 192.168.100.0/24を以下の要件で分割
- ネットワークA: 100台のホストが必要
- ネットワークB: 50台のホストが必要
- ネットワークC: 20台のホストが必要
ステップ1: ネットワークAの設計 (100台)
- ホスト部のビット数
- より、
- サブネットマスク
- ホスト部: 7ビット
- サブネットマスク: /25 =
- アドレス範囲
- ネットワークアドレス:
- ホスト範囲:
- ブロードキャストアドレス:
- 利用可能ホスト数: 126
ステップ2: ネットワークBの設計 (50台)
- ホスト部のビット数
- より、
- サブネットマスク
- ホスト部: 6ビット
- サブネットマスク: /26 =
- アドレス範囲 (ネットワークAの次から開始)
- ネットワークアドレス:
- ホスト範囲:
- ブロードキャストアドレス:
- 利用可能ホスト数: 62
ステップ3: ネットワークCの設計 (20台)
- ホスト部のビット数
- より、
- サブネットマスク
- ホスト部: 5ビット
- サブネットマスク: /27 =
- アドレス範囲 (ネットワークBの次から開始)
- ネットワークアドレス:
- ホスト範囲:
- ブロードキャストアドレス:
- 利用可能ホスト数: 30
残りのアドレス空間
(32アドレス) が未使用のまま残る。
これは将来の拡張のために予約できる。
CIDR (Classless Inter-Domain Routing)
CIDRの概要
CIDR (サイダー) は、クラスフルアドレッシングの制約を克服するために導入された、より柔軟なIPアドレス割り当て方式である。
RFC 1518 および RFC 1519で定義されている。
CIDRの主な特徴を以下に示す。
- クラスの概念を廃止
- 任意のビット境界でネットワークを分割可能
- スーパーネット化 (複数のネットワークを1つに集約) が可能
- ルーティングテーブルのサイズを削減
CIDR表記
CIDR表記は、以下の形式で表される。
IPアドレス/プレフィックス長 例: 192.168.0.0/16
これは、最初の16ビットがネットワーク部であることを示す。
スーパーネット化 (ルート集約)
スーパーネット化は、複数の連続したネットワークを1つのルートにまとめる技術である。
これにより、ルーティングテーブルのエントリ数を削減できる。
例 : 複数のネットワークの集約
以下の4つの連続したネットワークを集約する。
- 各ネットワークを2進数に変換
- 共通する最上位ビットを特定
- 最初の22ビットが共通:
- 集約されたネットワーク
- これは、192.168.0.0 から 192.168.3.255 までの1024個のアドレスをカバーする
例 : 集約可能性の判定
以下のネットワークは集約可能か?
- 各ネットワークの第3オクテットを2進数に変換
- 共通部分を確認
- 最初の6ビットが共通:
- 集約結果
- (172.16.8.0 - 172.16.11.255)
ネットワーク計算例
例題1 : IPアドレスの所属判定
問題: IPアドレス は、ネットワーク に含まれるか?
解答:
- ネットワークアドレスを確認
- サブネットマスク: /19 =
- ネットワークの範囲を計算
- ホスト部: 32 - 19 = 13ビット
- アドレス数:
- 最終アドレス: まで
- 第3オクテットを2進数で確認
- /19のマスク (第3オクテット):
- ブロードキャストアドレスを計算
- ホスト部を全て1にする
- 第3オクテット:
- 第4オクテット:
- ブロードキャストアドレス:
- 判定
- ネットワーク範囲:
- は範囲内に含まれる
- 結果
- 含まれる
例題2 : 最適なサブネットマスクの選択
問題: 200台のホストを収容する最小のサブネットマスクは?
解答:
- 必要なホスト数
- 200台
- ホスト部のビット数を計算
- (不足)
- (十分)
- ホスト部: 8ビット
- サブネットマスクを計算
- ネットワーク部: 32 - 8 = 24ビット
- サブネットマスク: /24 =
- 結果
- /24 が最適
- 利用可能ホスト数: 254台
例題3 : ネットワークの分割数
問題: 172.30.0.0/16 を /24 のサブネットに分割すると、いくつのサブネットができるか?
解答:
- 元のネットワーク
- /16 (ネットワーク部: 16ビット)
- 分割後のネットワーク
- /24 (ネットワーク部: 24ビット)
- サブネット用のビット数
- 24 - 16 = 8ビット
- サブネット数を計算
- 個
- 結果
- 256個 のサブネット
- 各サブネットは254台のホストを収容可能
例題4 : アドレス範囲の重複確認
問題: 以下の2つのネットワークは重複しているか? * ネットワークA : 192.168.50.0/24 * ネットワークB : 192.168.50.128/25
解答:
- ネットワークAの範囲
- ネットワークアドレス:
- ブロードキャストアドレス:
- 範囲:
- ネットワークBの範囲
- ネットワークアドレス:
- ブロードキャストアドレス:
- 範囲:
- 判定
- ネットワークBの範囲は、完全にネットワークAの範囲内に含まれる
- 結果
- 重複している (ネットワークBはネットワークAのサブネット)
例題5 : ポイント・ツー・ポイント接続
問題: 2台のルータ間を接続する場合、最も効率的なサブネットマスクは?
解答:
- 必要なホスト数
- 2台 (ルータA、ルータB)
- ホスト部のビット数
- サブネットマスク
- ネットワーク部: 32 - 2 = 30ビット
- サブネットマスク: /30 =
- アドレス割り当て例
- ネットワークアドレス:
- ルータA:
- ルータB:
- ブロードキャストアドレス:
- 結果
- /30 が最適
- 無駄なアドレスを最小限に抑えられる
特殊な計算
ワイルドカードマスク
ワイルドカードマスクは、主にCiscoルータのアクセスコントロールリスト (ACL) で使用される。
サブネットマスクの反転 (ビット反転) である。
- サブネットマスク: ネットワーク部が1、ホスト部が0
- ワイルドカードマスク: ネットワーク部が0、ホスト部が1
変換方法:
各オクテットについて、
例 : サブネットマスクからワイルドカードマスクへの変換
サブネットマスク: 255.255.255.0
各オクテットを変換:
- 第1オクテット:
- 第2オクテット:
- 第3オクテット:
- 第4オクテット:
ワイルドカードマスク:
サブネットマスク: (/20)
各オクテットを変換:
- 第1オクテット:
- 第2オクテット:
- 第3オクテット:
- 第4オクテット:
ワイルドカードマスク:
/31ネットワーク (RFC 3021)
従来、/31 (サブネットマスク: ) は、ホスト部が1ビットしかないため、使用できないと考えられていた。
- 2つのアドレス: ネットワークアドレスとブロードキャストアドレス
- 利用可能ホスト:
しかし、RFC 3021により、ポイント・ツー・ポイント接続に限り /31 の使用が許可された。
/31の使用例:
ネットワーク:
- : ルータA
- : ルータB
この場合、ネットワークアドレスとブロードキャストアドレスの概念は適用されない。
/32ネットワーク (ホスト指定)
/32は、単一のホストを指定する際に使用される。
サブネットマスク:
利用例:
- ルーティングテーブルでの特定ホストルート
- ループバックアドレスの指定
- ホストルート (静的ルート) の設定
例: は、192.168.1.100 というホスト1台だけを指す。
IPv4アドレス枯渇対策
プライベートIPアドレスとNAT
IPv4アドレスの枯渇問題を緩和するため、プライベートIPアドレスとNAT (Network Address Translation) が広く使用されている。
NAT (Network Address Translation)
- プライベートIPアドレスをグローバルIPアドレスに変換する技術
- 複数のプライベートIPアドレスを1つのグローバルIPアドレスで共有可能 (NAPT/PAT)
- インターネット接続に必要なグローバルIPアドレス数を大幅に削減
IPv6への移行
IPv4アドレスの完全な枯渇問題を解決するため、IPv6への移行が進められている。
IPv6の特徴:
- アドレス長: 128ビット
- アドレス数: 約 個
- 表記: 16進数、8つのグループ (例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
- 短縮表記: 先頭のゼロ省略、連続するゼロを :: で省略可能