4) クラス・サブネットマスクについて
今回は、ネットワーク上のIPアドレスの範囲を示すクラスとサブネットマスクについてです。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供
サブネットマスク
IPアドレスはネットワークアドレス部とホストアドレス部から構成され、ネットワークアドレスは通信相手となるネットワークを特定し、ホストアドレスは個別のホストを特定します。
サブネットマスクはネットワークアドレスとホストアドレスの境目およびネットワークの範囲を表し、255.255.255.0のようなIPアドレス形式またはビット数 (*1) で表現します。
以上、IPアドレスとサブネットマスクより、ネットワークアドレス・ホストアドレス・ブロードキャストアドレス (*2) を判別する事ができます。
(*1) 2進数で表現したサブネットマスクについて、左から1が何桁並んでいるか示したものがビット数となります。通常、2進数で表現したサブネットマスクは、左から1詰めとなり、右から0詰めとなります。そのため0が現れた後に再度1が現れることはありません。
(*2) ブロードキャストアドレスは、同一ネットワークに接続された全てのホストにパケットを送るために用いられるアドレスを意味します。
IPアドレス表記
IPアドレスはネットワーク上での住所に相当し、通常、例えば「192.168.0.1」のように、0~255の数字4組をドットで繋いだIPv4形式で表記します。
IPv4に基づいたアドレス空間は32ビットで管理されており、2の32乗 (約43億) 通りありますが、近い将来に枯渇するとの予想から、アドレス空間の桁数を増大させたIPv6が1997年に仕様策定されました。IPv6に基づいたアドレス空間は128ビットで管理され、2の128乗 (約340×10億×10億×10億×10億) 通りあります。
IPv6に基づいたIPアドレスは、4桁の16進数 (0~f) の数字 8組をコロンで繋いで表記します。
(例) ffee:ddcc:bbaa:9988:7766:5544:3322:1100
以降、本解説ではIPv4表記とします。
ネットワークアドレス・ホストアドレス・ブロードキャストアドレスの計算方法
IPアドレス「10.120.250.190」、サブネットマスク「255.255.192.0」の場合、ネットワークアドレス・ホストアドレス・ブロードキャストアドレスの計算方法は下記の通りです。
1. IPアドレスを10進数表記から2進数表記に変換します。
2. サブネットマスクを10進数表記から2進数表記に変換します。
3. 2進数表記に変換したサブネットマスクのビット値を反転させます。
| 10進数表記 | 2進数表記 | |
|---|---|---|
| IPアドレス | 10.120.250.190 | (1) 00001010.01111000.11111010.10111110 |
| サブネットマスク | 255.255.192.0 | (2) 11111111.11111111.11000000.00000000 |
| (2) のビット値を 反転させたもの | (3) 00000000.00000000.00111111.11111111 |
※(2) は左から18桁のビット値が1となっているため、サブネットマスク255.255.192.0はビット数で表現すると18ビットとなります。
4. 上記 (1) と (2) の論理積を1桁毎に計算したものがネットワークアドレスとなります。
5. 上記 (1) と (3) の論理積を1桁毎に計算したものがホストアドレスとなります。
6. 上記 (1) と (3) の論理和を1桁毎に計算したものがブロードキャストアドレスとなります。
| 2進数表記 | 10進数表記 | |
|---|---|---|
| (1) と (2) の1桁毎の論理積 (ネットワークアドレス) | 00001010.01111000.11000000.00000000 | 10.120.192.0 |
| (1) と (3) の1桁毎の論理積 (ホストアドレス) | 00000000.00000000.00111010.10111110 | 0.0.58.190 |
| (1) と (3) の1桁毎の論理和 (ブロードキャストアドレス) | 00001010.01111000.11111111.11111111 | 10.120.255.255 |
この時、2進数のIPアドレス「00001010.01111000.11111010.10111110」の赤字部分をネットワークアドレス部、青字部分をホストアドレス部といいます。
また、ネットワークアドレスとホストアドレスはそれぞれ「10.120.192」、「58.190」のように数値0を省略して表記する場合がありますが、本解説では省略せずに表記します。
*別解
論理積の計算をせずに、ネットワークアドレス・ホストアドレス・ブロードキャストアドレスを求める事もできます。
2進数に変換したサブネットマスクよりIPアドレスのネットワークアドレス部・ホストアドレス部が特定でき、IPアドレスのホストアドレス部のビット値を全て0にするとネットワークアドレス、ネットワークアドレス部のビット値を全て0にするとホストアドレス、ホストアドレス部のビット値を全て1にするとブロードキャストアドレスとなります。
| 2進数表記 | 備考 | |
|---|---|---|
| サブネットマスク | 11111111.11111111.11000000.00000000 | サブネットマスクのビット値は、左から1詰めとなり、右から0詰めとなっています。それらの境目が何桁目かを調査します。 左記は18桁目と19桁目の間が境目となっています。 |
| IPアドレス | 00001010.01111000.11111010.10111110 | サブネットマスクの0と1の境目と同じ部分が、IPアドレスのネットワークアドレス部とホストアドレス部の境目となっています。 左記はネットワークアドレス部を赤、ホストアドレス部を青で表示しています。 |
| ネットワークアドレス | 00001010.01111000.11000000.00000000 | IPアドレスのホストアドレス部を0で埋めると、ネットワークアドレスとなります。 |
| ホストアドレス | 00000000.00000000.00111010.10111110 | IPアドレスのネットワークアドレス部を0で埋めると、ホストアドレスとなります。 |
| ブロードキャストアドレス | 00001010.01111000.11111111.11111111 | IPアドレスのホストアドレス部を1で埋めると、ブロードキャストアドレスとなります。 |
ネットワーク表記
ネットワークは「ネットワークアドレス/サブネットマスク」の形式で表記します。サブネットマスクはIPアドレスとビット値のどちらを用いても構いません。
下記のようにネットワークの範囲を表現することができます。
| ネットワーク範囲 | ネットワーク表記 |
|---|---|
| 12.34.56.0~12.34.56.255 | 12.34.56.0/24または12.34.56.0/255.255.255.0 |
| 12.34.0.0~12.34.255.255 | 12.34.0.0/16または12.34.0.0/255.255.0.0 |
よく使用されるサブネットマスクは下記となります。
| ネットワーク表記 | ネットワーク範囲 | ネットワークに含まれるIPアドレスの個数 |
|---|---|---|
| 12.34.56.64/26 | 12.34.56.64~12.34.56.127 | 64 |
| 12.34.56.0/24 | 12.34.56.0~12.34.56.255 | 256 |
| 12.34.0.0/16 | 12.34.0.0~12.34.255.255 | 65,536 |
| 12.0.0.0/8 | 12.0.0.0~12.255.255.255 | 16,777,216 |
クラスについて
IPアドレスはA~Eまでのいずれかのクラスに分類されており、IPアドレスを2進数に変換した際の先頭のビット値から、ネットワークアドレスに割り当てる標準のサブネットマスクが判明するようになっており、それぞれ下記の通りです。
| IPアドレス範囲 | 標準のサブネットマスク | 2進数の先頭ビット値 | |
|---|---|---|---|
| クラスA | 0.0.0.0~127.255.255.255 | 8ビット | 0 |
| クラスB | 128.0.0.0~191.255.255.255 | 16ビット | 10 |
| クラスC | 192.0.0.0~223.255.255.255 | 24ビット | 110 |
| クラスD | 224.0.0.0~239.255.255.255 | 1110 | |
| クラスE | 240.0.0.0~255.255.255.255 | 1111 |
実際にホストやルーターなどに設定されるIPアドレスは、クラスA、クラスB、クラスCのアドレスです。クラスDはIPマルチキャスト (*3) 専用として、クラスEは実験用として予約されており、通常の運用では使用しません。
クラスAはネットワークアドレス毎のホストアドレス数 (約1677万) が非常に多いため、多くのIPアドレスを必要とする大企業やインターネットサービスプロバイダー (ISP) などの大規模ネットワークに割り当てるのに適しています。
逆にクラスCはネットワークアドレス毎のホストアドレス数 (256) が少ないため、小規模ネットワークへの割り当てに適しています。
しかし実運用ではホスト数が10台以下のネットワークも多く、クラスの枠組みをそのまま適用すると、実際に使用されないIPアドレスが多くなり、IPアドレスの枯渇につながります。
そのため近年では、これを解決するために、クラスの概念により規定されるネットワークをさらに小さな複数のネットワークに分割 (*4) するようサブネットマスクが設定可能となっているので、クラスの概念は希薄なものとなりつつあります。
(*3) 複数の特定ユーザーに同一情報を同報通信で送信する技術または方式。
(*4) クラスの概念により規定されるネットワークを、さらに小さな複数のネットワークに分割することを、サブネット化といいます。また、この分割されたネットワークをサブネットといいます。サブネット化は、1985年、RFC950によって標準化されました。
次回は、IPアドレスのスコープ (通信可能な範囲) と、特殊用途のIPアドレスなどを示すIPアドレスの種類についてです。


