アドレスクラス
IPアドレスはネットワークアドレスとホストアドレスから構成されていますが、32ビットのうちどこまでがネットワークアドレスでどこからがホストアドレスなのかということが固定されていません。IPアドレスによって異なります。この点が、IPアドレスの理解で難しいところでもあります。
ネットワークアドレスとホストアドレスの区切りを考えるため、IPアドレスをクラスに分類しています。クラスによって、32ビットのうちどこまでがネットワークアドレスでどこからがホストアドレスであるかがわかるようになります。クラスは次の5種類あります。
- クラスA
- クラスB
- クラスC
- クラスD
- クラスE
クラスA~Eのうち、ホストのインタフェースに設定するユニキャストアドレスはクラスA~Cです。クラスによってネットワークアドレスとホストアドレスの区切りがわかります。また、クラス自体の識別を行うために先頭のビットパターンが決められています。
クラスによって決まることをまとめると、次の2点です。
- 先頭のビットパターン
- ネットワークアドレスとホストアドレスの区切り
以降では、クラスA~Cについてこの2点を踏まえて見ていきます。
なお、クラスDは、ユニキャストアドレスではなくマルチキャストアドレスを定義しているクラスです。そして、クラスEは実験用途なので、ホストのインタフェースに設定することはありません。
クラスA
クラスAの特徴をまとめると次のようになります。
先頭のビットパターン |
0 |
---|---|
先頭8ビットの10進数表記 | 1~126 |
ネットワークアドレスとホストアドレスの区切り | 8ビット目 |
ネットワークアドレスの数 | 126個 |
ホストアドレスの数 | 約1600万個 |
クラスAのIPアドレスは必ず先頭1ビットが0
です。先頭8ビット分を10進数で考えると1~126の範囲です。つまり、1~126の範囲ではじまるIPアドレスはクラスAのIPアドレスです。そして、ネットワークアドレスとホストアドレスの区切りは8ビット目です。
ネットワークアドレスとして7ビット分使えるので、クラスAのネットワークの数は27-2=126個です。ここで「-2」としているのは、7ビット分のネットワークアドレスのビットがすべて0
とすべて1
の場合を除いているからです。
この126個のクラスAのネットワークそれぞれで、224-2=16,777,214個のホストアドレスを利用することができます。約1600万という非常に多くのホストアドレスを利用できるのがクラスAのネットワークの特徴です。
クラスB
クラスBの特徴をまとめると次のようになります。
先頭のビットパターン |
10 |
---|---|
先頭8ビットの10進数表記 | 128~191 |
ネットワークアドレスとホストアドレスの区切り | 16ビット目 |
ネットワークアドレスの数 | 16,384個 |
ホストアドレスの数 | 65,534個 |
クラスBのIPアドレスは先頭2ビットが10
ではじまります。先頭8ビットを10進数で考えれば、128~191です。
ネットワークアドレスとホストアドレスの区切りは16ビット目にあります。したがって、ネットワークアドレスとして14ビット、ホストアドレスとして16ビット利用できます。ネットワークアドレスは14ビットなので、214-2=16,384個のクラスBのネットワークがあります。各クラスBのネットワークでは、216-2=65,534個のホストアドレスを利用することができます。
クラスC
クラスCの特徴をまとめると次のようになります。
先頭のビットパターン |
110 |
---|---|
先頭8ビットの10進数表記 | 192~223 |
ネットワークアドレスとホストアドレスの区切り | 24ビット目 |
ネットワークアドレスの数 | 2,097,150個 |
ホストアドレスの数 | 254個 |
クラスCのIPアドレスは先頭3ビットが110
ではじまります。先頭の8ビット分を10進数で考えると192~223です。また、ネットワークアドレスとホストアドレスの区切りは24ビット目の所にあります。ネットワークアドレスとして21ビット、ホストアドレスとして8ビット利用できます。
クラスCのネットワークの数は、221-2=2,097,150個あります。クラスCのネットワークそれぞれで、28-2=254個のホストアドレスを利用することができます。
次の表は、クラスA~クラスCのIPアドレスの特徴をまとめたものです。
クラスA | クラスB | クラスC | |
---|---|---|---|
先頭のビット |
0 |
10 |
110 |
先頭8ビットの10進表記 | 1~126 | 128~191 | 192~223 |
区切り | 8ビット | 16ビット | 24ビット |
ネットワーク数 | 126 | 16,382 | 2,097,150 |
ホスト数 | 16,777,214 | 65,534 | 254 |
このようなアドレスクラスに基づいて考えたアドレスをクラスフルアドレスと呼びます。クラスフルアドレスでのネットワークアドレスとホストアドレスの区切りはクラスごとに決まり、基本的に8ビット、16ビット、24ビットと8ビット単位です。また、クラス単位で考えたネットワークアドレスをメジャーネットワークと呼びます。たとえば、IPアドレス「10.1.1.1」のメジャーネットワークは「10.0.0.0」です。10で始まるIPアドレスなのでクラスAです。クラスAはネットワークアドレスとホストアドレスの区切りが8ビット目に位置するためです。同様に、IPアドレス「172.31.100.100」のメジャーネットワークは「172.31.0.0」となります。
IPアドレスの表記は、8ビットずつ10進数で表記します。そのため、こうしたクラスフルアドレスは、8ビット単位でネットワークアドレスとホストアドレスの区切りを考えているのでわかりやすくなります[5]。
クラスフルアドレスではムダが多い
ところが、クラスフルアドレスは非常に無駄が多いアドレスの考え方です。たとえば、クラスAのアドレスを考えます。「1つ」のクラスAのネットワーク内で1600万以上のホストアドレスを利用することができます。どんなに大規模なネットワークであったとしても、現実的に1つのネットワークに1600万以上ものホストを接続することはありえません。そのため、クラスAではたくさんのIPアドレスが利用されずに、IPアドレスの利用効率が悪くなります。
また、クラスCのネットワークアドレスを利用している環境で、1つのネットワークに300台のホストを接続したい場合を考えます。クラスCでは、1つのネットワーク内で利用できるホストアドレスは254個です。そのため、クラスCのアドレスを利用していては、1つのネットワーク内に255台以上のホストを接続することができません[6]。
クラスAではホストアドレスが多すぎます。クラスBでもホストアドレスがかなり多くなっています。クラスAやクラスBでは、ホストアドレスを余らせてしまうことが多いです。一方、クラスCはホストアドレスの数が十分ではないことが起こる可能性があります。このように、クラスフルアドレスはアドレスの利用効率がよくありません。
より効率よくIPアドレスを利用するために、クラスに基づいてIPアドレスを考えるクラスフルアドレスから、クラスレスアドレスへ移行します。クラスレスアドレスは、クラスによる8ビット単位のネットワークアドレスとホストアドレスの区切りにこだわらないようにします。柔軟にネットワークアドレスとホストアドレスの区切りを考えるようにして、アドレスの無駄を少なくする考え方です。その際、ネットワークアドレスとホストアドレスの区切りをきちんと示すために、サブネットマスクが必要になってきます。
注
[5]: 「クラスAは大規模、クラスBは中規模、クラスCは小規模」というように、クラスをネットワークの規模による分類とする説明を多く見かけます。しかし、ネットワークの規模による分類は本質的なものではありません。クラスは、ネットワークアドレスとホストアドレスの区切りをどのように考えているかということです。
[6]: ホストアドレスの数はルータのIPアドレスも含めて考えなければいけません。クラスCでは、ルータも含めて254台のホストを接続できることになります。