ネットワーク - アドレス計算

提供: MochiuWiki : SUSE, EC, PCB

概要

ネットワーク計算とは、IPアドレス、サブネットマスク、ネットワークアドレス、ブロードキャストアドレスなどを計算するための技術である。
これらの計算は、ネットワークの設計、管理、トラブルシューティングに不可欠である。

IPアドレスは、ネットワーク上のデバイスを一意に識別するための数値であり、32ビット (IPv4) または128ビット (IPv6) で表現される。
本ドキュメントでは、IPv4アドレスを中心に説明する。

サブネットマスクは、IPアドレスをネットワーク部分とホスト部分に分割するためのビットマスクである。
これにより、ネットワークの論理的な分割が可能になる。

主な計算項目を以下に示す。

  • ネットワークアドレスの計算 (IPアドレス および サブネットマスク)
  • ブロードキャストアドレスの計算 (ホスト部を全て1にする)
  • 利用可能なホスト数の計算 (2n2)
  • サブネット分割 (必要なホスト数 / サブネット数からビット数を計算)
  • CIDR / スーパーネット化 (ルート集約)



IPアドレスの基礎

IPアドレスの構造

IPv4アドレスは、32ビットで構成され、8ビットずつ4つのオクテット (バイト) に分割される。
各オクテットは、0から255までの10進数で表現される。

例: 192.168.1.100

この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ビットがネットワーク部を表す。

  1. 32ビット中、最初の23ビットを1、残りの9ビットを0にする
    11111111.11111111.11111110.00000000(2)
  2. 各オクテットを10進数に変換する
    第1オクテット: 11111111(2)=255(10)
    第2オクテット: 11111111(2)=255(10)
    第3オクテット: 11111110(2)=254(10)
    第4オクテット: 00000000(2)=0(10)
  3. 結果
    255.255.254.0


例: 255.255.240.0をCIDR表記に変換
  1. 各オクテットを2進数に変換する
    第1オクテット: 255(10)=11111111(2)
    第2オクテット: 255(10)=11111111(2)
    第3オクテット: 240(10)=11110000(2)
    第4オクテット: 0(10)=00000000(2)
  2. 2進数を連結する
    11111111.11111111.11110000.00000000(2)
  3. 1のビット数を数える
    1が20個連続している
  4. 結果
    /20



ネットワーク計算

ネットワークアドレスの計算

ネットワークアドレスは、ネットワーク全体を識別するアドレスであり、ホスト部が全て0のアドレスである。
IPアドレスとサブネットマスクのビット単位のAND演算により求められる。

例 : IPアドレス 192.168.1.100、サブネットマスク 255.255.255.0 (/24)
  1. IPアドレスを2進数に変換
    192.168.1.100(10)=11000000.10101000.00000001.01100100(2)
  2. サブネットマスクを2進数に変換
    255.255.255.0(10)=11111111.11111111.11111111.00000000(2)
  3. AND演算を実行
       11000000.10101000.00000001.01100100  (IP)
     & 11111111.11111111.11111111.00000000  (マスク)
     = 11000000.10101000.00000001.00000000  (ネットワーク)
    
  4. 10進数に変換
    11000000.10101000.00000001.00000000(2)=192.168.1.0(10)
  5. 結果
    ネットワークアドレス: 192.168.1.0


例 : IPアドレス 172.16.45.200、サブネットマスク /20
  1. サブネットマスクをドット付き10進数に変換
    /20=255.255.240.0
  2. IPアドレスを2進数に変換
    172.16.45.200(10)=10101100.00010000.00101101.11001000(2)
  3. サブネットマスクを2進数に変換
    255.255.240.0(10)=11111111.11111111.11110000.00000000(2)
  4. AND演算を実行
       10101100.00010000.00101101.11001000  (IP)
     & 11111111.11111111.11110000.00000000  (マスク)
     = 10101100.00010000.00100000.00000000  (ネットワーク)
    
  5. 10進数に変換
    第3オクテット: 00101101(2)&11110000(2)=00100000(2)=32(10)
    10101100.00010000.00100000.00000000(2)=172.16.32.0(10)
  6. 結果
    ネットワークアドレス: 172.16.32.0


ブロードキャストアドレスの計算

ブロードキャストアドレスは、ネットワーク内の全てのデバイスにデータを送信するためのアドレスであり、ホスト部が全て1のアドレスである。

計算手順:

  1. ネットワークアドレスを求める
  2. ホスト部のビットを全て1にする


例 : IPアドレス 192.168.2.100、サブネットマスク /23
  1. サブネットマスクの確認
    /23=255.255.254.0
    ネットワーク部: 23ビット
    ホスト部: 32 - 23 = 9ビット
  2. IPアドレスを2進数に変換
    192.168.2.100(10)=11000000.10101000.00000010.01100100(2)
  3. サブネットマスクを2進数に変換
    255.255.254.0(10)=11111111.11111111.11111110.00000000(2)
  4. ネットワークアドレスを求める (AND演算)
       11000000.10101000.00000010.01100100  (IP)
     & 11111111.11111111.11111110.00000000  (マスク)
     = 11000000.10101000.00000010.00000000  (ネットワーク)
    
    ネットワークアドレス: 192.168.2.0
  5. ホスト部 (最後の9ビット) を全て1にする
     11000000.10101000.0000001|0.00000000  (ネットワーク)
                              ↓ ホスト部を全て1に
     11000000.10101000.0000001|1.11111111  (ブロードキャスト)
    
  6. 10進数に変換
    第3オクテット: 00000011(2)=3(10)
    第4オクテット: 11111111(2)=255(10)
    11000000.10101000.00000011.11111111(2)=192.168.3.255(10)
  7. 結果
    ブロードキャストアドレス: 192.168.3.255


例 : IPアドレス 10.50.100.75、サブネットマスク /16
  1. サブネットマスクの確認
    /16=255.255.0.0
    ネットワーク部: 16ビット
    ホスト部: 32 - 16 = 16ビット
  2. IPアドレスを2進数に変換
    10.50.100.75(10)=00001010.00110010.01100100.01001011(2)
  3. ネットワークアドレスを求める
       00001010.00110010.01100100.01001011  (IP)
     & 11111111.11111111.00000000.00000000  (マスク)
     = 00001010.00110010.00000000.00000000  (ネットワーク)
    
    ネットワークアドレス: 10.50.0.0
  4. ホスト部 (最後の16ビット) を全て1にする
     00001010.00110010|.00000000.00000000  (ネットワーク)
                       ↓ ホスト部を全て1に
     00001010.00110010|.11111111.11111111  (ブロードキャスト)
    
  5. 10進数に変換
    00001010.00110010.11111111.11111111(2)=10.50.255.255(10)
  6. 結果
    ブロードキャストアドレス: 10.50.255.255


例 : IPアドレス 203.0.113.45、サブネットマスク /28
  1. サブネットマスクの確認
    /28=255.255.255.240
    ネットワーク部: 28ビット
    ホスト部: 32 - 28 = 4ビット
  2. IPアドレスを2進数に変換
    203.0.113.45(10)=11001011.00000000.01110001.00101101(2)
  3. サブネットマスクを2進数に変換
    255.255.255.240(10)=11111111.11111111.11111111.11110000(2)
  4. ネットワークアドレスを求める
       11001011.00000000.01110001.00101101  (IP)
     & 11111111.11111111.11111111.11110000  (マスク)
     = 11001011.00000000.01110001.00100000  (ネットワーク)
    
    第4オクテット: 00101101(2)&11110000(2)=00100000(2)=32(10)
    ネットワークアドレス: 203.0.113.32
  5. ホスト部 (最後の4ビット) を全て1にする
     11001011.00000000.01110001.0010|0000  (ネットワーク)
                                    ↓ ホスト部を全て1に
     11001011.00000000.01110001.0010|1111  (ブロードキャスト)
    
  6. 10進数に変換
    第4オクテット: 00101111(2)=47(10)
    11001011.00000000.01110001.00101111(2)=203.0.113.47(10)
  7. 結果
    ブロードキャストアドレス: 203.0.113.47


利用可能なホスト数の計算

ネットワーク内で実際にデバイスに割り当てることができるIPアドレスの数は、ホスト部のビット数から計算される。

ホスト数の計算式:
 利 用 可 能 な ホ ス ト 数 =2n2

ここで、n はホスト部のビット数である。
2を減算する理由は、ネットワークアドレスとブロードキャストアドレスはホストに割り当てることができないためである。

例 : /24ネットワークの利用可能なホスト数
  1. ホスト部のビット数を求める
    ホスト部 = 32 - 24 = 8ビット
  2. ホスト数を計算
    282=2562=254
  3. 結果
    利用可能なホスト数: 254


例 : /27ネットワークの利用可能なホスト数
  1. ホスト部のビット数を求める
    ホスト部 = 32 - 27 = 5ビット
  2. ホスト数を計算
    252=322=30
  3. 結果
    利用可能なホスト数: 30


例 : /30ネットワークの利用可能なホスト数

/30ネットワークは、ポイント・ツー・ポイント接続 (2つのルータ間の接続など) でよく使用される。

  1. ホスト部のビット数を求める
    ホスト部 = 32 - 30 = 2ビット
  2. ホスト数を計算
    222=42=2
  3. 結果
    利用可能なホスト数: 2


ホストアドレスの範囲

ネットワーク内で利用可能なホストアドレスの範囲は、以下のように求められる。

  • 最小ホストアドレス = ネットワークアドレス + 1
  • 最大ホストアドレス = ブロードキャストアドレス - 1


例 : 192.168.10.0/24
  1. ネットワークアドレス
    192.168.10.0
  2. ブロードキャストアドレス
    192.168.10.255
  3. ホストアドレスの範囲
    最小: 192.168.10.1
    最大: 192.168.10.254
  4. 利用可能なホスト数
    254


例 : 172.20.0.0/22
  1. ネットワークアドレスを求める
    /22 = 255.255.252.0
    ネットワークアドレス: 172.20.0.0
  2. ブロードキャストアドレスを求める
    ホスト部: 32 - 22 = 10ビット
    ホスト部を全て1にする
    第3オクテット: 00000000(2)00000011(2)=3(10)
    第4オクテット: 00000000(2)11111111(2)=255(10)
    ブロードキャストアドレス: 172.20.3.255
  3. ホストアドレスの範囲
    最小: 172.20.0.1
    最大: 172.20.3.254
  4. 利用可能なホスト数
    2102=10242=1022



サブネット分割

サブネット分割の概要

サブネット分割 (Subnetting) とは、1つの大きなネットワークを複数の小さなサブネットに分割する技術である。
これにより、ネットワークの効率的な利用、セキュリティの向上、ブロードキャストドメインの縮小が可能になる。

サブネット分割の計算

例 : 192.168.1.0/24を4つのサブネットに分割
  1. 必要なサブネット数を確認
    4つのサブネットが必要
  2. サブネット用のビット数を計算
    2n4 を満たす最小の n を求める
    22=4 より、n=2
  3. 新しいサブネットマスクを計算
    元のサブネットマスク: /24
    サブネット用ビット: 2ビット
    新しいサブネットマスク: /24 + 2 = /26
    255.255.255.192
  4. 各サブネットの範囲を計算
    ホスト部: 32 - 26 = 6ビット
    サブネットごとのアドレス数: 26=64

    サブネット1
    • ネットワークアドレス: 192.168.1.0
    • ホスト範囲: 192.168.1.1192.168.1.62
    • ブロードキャストアドレス: 192.168.1.63
    • 利用可能ホスト数: 62

    サブネット2
    • ネットワークアドレス: 192.168.1.64
    • ホスト範囲: 192.168.1.65192.168.1.126
    • ブロードキャストアドレス: 192.168.1.127
    • 利用可能ホスト数: 62

    サブネット3
    • ネットワークアドレス: 192.168.1.128
    • ホスト範囲: 192.168.1.129192.168.1.190
    • ブロードキャストアドレス: 192.168.1.191
    • 利用可能ホスト数: 62

    サブネット4
    • ネットワークアドレス: 192.168.1.192
    • ホスト範囲: 192.168.1.193192.168.1.254
    • ブロードキャストアドレス: 192.168.1.255
    • 利用可能ホスト数: 62


例 : 10.0.0.0/8を、それぞれ500台のホストを収容できるサブネットに分割
  1. 必要なホスト数を確認
    各サブネットに500台のホストが必要
  2. ホスト部のビット数を計算
    2n2500 を満たす最小の n を求める
    292=5122=510 より、n=9
  3. サブネットマスクを計算
    ホスト部: 9ビット
    ネットワーク部: 32 - 9 = 23ビット
    サブネットマスク: /23 = 255.255.254.0
  4. サブネット数を計算
    元のネットワーク: /8 (ネットワーク部8ビット)
    新しいネットワーク: /23 (ネットワーク部23ビット)
    サブネット用ビット: 23 - 8 = 15ビット
    サブネット数: 215=32,768
  5. 各サブネットのアドレス数
    29=512個 (利用可能ホスト: 510個)
  6. 最初のいくつかのサブネット例
    サブネット1: 10.0.0.0/23 (10.0.0.0 - 10.0.1.255)
    サブネット2: 10.0.2.0/23 (10.0.2.0 - 10.0.3.255)
    サブネット3: 10.0.4.0/23 (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台)

  1. ホスト部のビット数
    2n2100
    272=126 より、n=7
  2. サブネットマスク
    ホスト部: 7ビット
    サブネットマスク: /25 = 255.255.255.128
  3. アドレス範囲
    ネットワークアドレス: 192.168.100.0/25
    ホスト範囲: 192.168.100.1192.168.100.126
    ブロードキャストアドレス: 192.168.100.127
    利用可能ホスト数: 126


ステップ2: ネットワークBの設計 (50台)

  1. ホスト部のビット数
    2n250
    262=62 より、n=6
  2. サブネットマスク
    ホスト部: 6ビット
    サブネットマスク: /26 = 255.255.255.192
  3. アドレス範囲 (ネットワークAの次から開始)
    ネットワークアドレス: 192.168.100.128/26
    ホスト範囲: 192.168.100.129192.168.100.190
    ブロードキャストアドレス: 192.168.100.191
    利用可能ホスト数: 62


ステップ3: ネットワークCの設計 (20台)

  1. ホスト部のビット数
    2n220
    252=30 より、n=5
  2. サブネットマスク
    ホスト部: 5ビット
    サブネットマスク: /27 = 255.255.255.224
  3. アドレス範囲 (ネットワークBの次から開始)
    ネットワークアドレス: 192.168.100.192/27
    ホスト範囲: 192.168.100.193192.168.100.222
    ブロードキャストアドレス: 192.168.100.223
    利用可能ホスト数: 30


残りのアドレス空間
192.168.100.224192.168.100.255 (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つの連続したネットワークを集約する。

  • 192.168.0.0/24
  • 192.168.1.0/24
  • 192.168.2.0/24
  • 192.168.3.0/24


  1. 各ネットワークを2進数に変換
    192.168.0.0=11000000.10101000.00000000.00000000
    192.168.1.0=11000000.10101000.00000001.00000000
    192.168.2.0=11000000.10101000.00000010.00000000
    192.168.3.0=11000000.10101000.00000011.00000000
  2. 共通する最上位ビットを特定
    最初の22ビットが共通: 11000000.10101000.000000
  3. 集約されたネットワーク
    192.168.0.0/22
    これは、192.168.0.0 から 192.168.3.255 までの1024個のアドレスをカバーする


例 : 集約可能性の判定

以下のネットワークは集約可能か?

  • 172.16.8.0/24
  • 172.16.9.0/24
  • 172.16.10.0/24
  • 172.16.11.0/24


  1. 各ネットワークの第3オクテットを2進数に変換
    8(10)=00001000(2)
    9(10)=00001001(2)
    10(10)=00001010(2)
    11(10)=00001011(2)
  2. 共通部分を確認
    最初の6ビットが共通: 000010
  3. 集約結果
    172.16.8.0/22
    (172.16.8.0 - 172.16.11.255)



ネットワーク計算例

例題1 : IPアドレスの所属判定

問題:

IPアドレス 10.20.135.78 は、ネットワーク 10.20.128.0/19 に含まれるか?


解答:

  1. ネットワークアドレスを確認
    10.20.128.0/19
    サブネットマスク: /19 = 255.255.224.0
  2. ネットワークの範囲を計算
    ホスト部: 32 - 19 = 13ビット
    アドレス数: 213=8192
    最終アドレス: 10.20.128.0+81921=10.20.135.255 まで
  3. 第3オクテットを2進数で確認
    128(10)=10000000(2)
    135(10)=10000111(2)
    /19のマスク (第3オクテット): 11100000(2)
    10000111&11100000=10000000=128
  4. ブロードキャストアドレスを計算
    ホスト部を全て1にする
    第3オクテット: 1000000010011111=159(10)
    第4オクテット: 0000000011111111=255(10)
    ブロードキャストアドレス: 10.20.159.255
  5. 判定
    ネットワーク範囲: 10.20.128.010.20.159.255
    10.20.135.78 は範囲内に含まれる
  6. 結果
    含まれる


例題2 : 最適なサブネットマスクの選択

問題:

200台のホストを収容する最小のサブネットマスクは?


解答:

  1. 必要なホスト数
    200台
  2. ホスト部のビット数を計算
    2n2200
    272=126 (不足)
    282=254 (十分)
    ホスト部: 8ビット
  3. サブネットマスクを計算
    ネットワーク部: 32 - 8 = 24ビット
    サブネットマスク: /24 = 255.255.255.0
  4. 結果
    /24 が最適
    利用可能ホスト数: 254台


例題3 : ネットワークの分割数

問題:

172.30.0.0/16 を /24 のサブネットに分割すると、いくつのサブネットができるか?


解答:

  1. 元のネットワーク
    /16 (ネットワーク部: 16ビット)
  2. 分割後のネットワーク
    /24 (ネットワーク部: 24ビット)
  3. サブネット用のビット数
    24 - 16 = 8ビット
  4. サブネット数を計算
    28=256
  5. 結果
    256個 のサブネット
    各サブネットは254台のホストを収容可能


例題4 : アドレス範囲の重複確認

問題:

以下の2つのネットワークは重複しているか?
* ネットワークA : 192.168.50.0/24
* ネットワークB : 192.168.50.128/25


解答:

  1. ネットワークAの範囲
    ネットワークアドレス: 192.168.50.0
    ブロードキャストアドレス: 192.168.50.255
    範囲: 192.168.50.0192.168.50.255
  2. ネットワークBの範囲
    ネットワークアドレス: 192.168.50.128
    ブロードキャストアドレス: 192.168.50.255
    範囲: 192.168.50.128192.168.50.255
  3. 判定
    ネットワークBの範囲は、完全にネットワークAの範囲内に含まれる
  4. 結果
    重複している (ネットワークBはネットワークAのサブネット)


例題5 : ポイント・ツー・ポイント接続

問題:

2台のルータ間を接続する場合、最も効率的なサブネットマスクは?


解答:

  1. 必要なホスト数
    2台 (ルータA、ルータB)
  2. ホスト部のビット数
    2n2=2
    n=2
  3. サブネットマスク
    ネットワーク部: 32 - 2 = 30ビット
    サブネットマスク: /30 = 255.255.255.252
  4. アドレス割り当て例
    ネットワークアドレス: 10.1.1.0
    ルータA: 10.1.1.1
    ルータB: 10.1.1.2
    ブロードキャストアドレス: 10.1.1.3
  5. 結果
    /30 が最適
    無駄なアドレスを最小限に抑えられる



特殊な計算

ワイルドカードマスク

ワイルドカードマスクは、主にCiscoルータのアクセスコントロールリスト (ACL) で使用される。
サブネットマスクの反転 (ビット反転) である。

  • サブネットマスク: ネットワーク部が1、ホスト部が0
  • ワイルドカードマスク: ネットワーク部が0、ホスト部が1


変換方法:
各オクテットについて、255サブネットマスク=ワイルドカードマスク

例 : サブネットマスクからワイルドカードマスクへの変換

サブネットマスク: 255.255.255.0

各オクテットを変換:

  • 第1オクテット: 255255=0
  • 第2オクテット: 255255=0
  • 第3オクテット: 255255=0
  • 第4オクテット: 2550=255


ワイルドカードマスク: 0.0.0.255

サブネットマスク: 255.255.240.0 (/20)

各オクテットを変換:

  • 第1オクテット: 255255=0
  • 第2オクテット: 255255=0
  • 第3オクテット: 255240=15
  • 第4オクテット: 2550=255


ワイルドカードマスク: 0.0.15.255

/31ネットワーク (RFC 3021)

従来、/31 (サブネットマスク: 255.255.255.254) は、ホスト部が1ビットしかないため、使用できないと考えられていた。

  • 2つのアドレス: ネットワークアドレスとブロードキャストアドレス
  • 利用可能ホスト: 212=0


しかし、RFC 3021により、ポイント・ツー・ポイント接続に限り /31 の使用が許可された。

/31の使用例:
ネットワーク: 10.1.1.0/31

  • 10.1.1.0: ルータA
  • 10.1.1.1: ルータB


この場合、ネットワークアドレスとブロードキャストアドレスの概念は適用されない。

/32ネットワーク (ホスト指定)

/32は、単一のホストを指定する際に使用される。
サブネットマスク: 255.255.255.255

利用例:

  • ルーティングテーブルでの特定ホストルート
  • ループバックアドレスの指定
  • ホストルート (静的ルート) の設定


例: 192.168.1.100/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ビット
  • アドレス数: 約 3.4×1038
  • 表記: 16進数、8つのグループ (例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
  • 短縮表記: 先頭のゼロ省略、連続するゼロを :: で省略可能