Classful networks are an IPv4 addressing architecture that divides the address space into five fixed classes (A through E) based on leading bits, with classes A, B, and C designated for unicast hosts using fixed prefix lengths of /8, /16, and /24 respectively. The rigid allocation scheme forced organizations to choose between undersized class C networks (254 hosts) and oversized class B networks (65,534 hosts), leading to widespread address space waste and inefficiency that prompted the industry to adopt Classless Inter-Domain Routing (CIDR) in the early 1990s. Although classful addressing is now obsolete for modern IPv4 allocation and routing, understanding these historical concepts remains essential because legacy equipment, routing protocols like RIPv1, and residual default behaviors in older systems can still cause operational problems such as automatic summarization at class boundaries, misrouted traffic, and configuration errors on networks that do not align with fixed class assumptions.
クラスフルネットワークの仕組み
クラスフル方式では、IPv4 アドレスの先頭ビットがそのクラスを識別し、クラスによってネットワークに割り当てられるビット数とホストに割り当てられるビット数が決まります。ネットワークの境界を特定するためにサブネットマスクは必要ありません。
- 先頭ビットの読み取り:デバイスは32ビットアドレスの上位ビットを検査します。先頭が0の場合はクラスA、10の場合はクラスB、110の場合はクラスC、1110の場合はクラスD、1111の場合はクラスEを意味します。
- デフォルトの境界を適用します。クラスAは8ビット、クラスBは16ビット、クラスCは24ビットをネットワーク識別子として使用します。残りのビットは、そのネットワーク内のホストを識別するために使用されます。
- ネットワーク部分でのルーティング:ルーターは、暗黙のネットワークプレフィックスを使用してトラフィックを転送します。クラスフルルーティングプロトコルでは、更新情報にマスク情報は含まれていませんでした。
クラスDアドレス(224.0.0.0~239.255.255.255)はマルチキャスト用に、クラスEは実験用途用に予約されていたため、いずれも通常のホストには割り当てられませんでした。 その後、サブネット分割によって組織はクラスフルネットワークを内部で分割できるようになりましたが、外部からは依然としてクラスの境界で区切られているように見えました。
クラスフルネットワークに関するよくある誤解
現代のルーターやホストでは、CIDRと明示的なプレフィックス長が使用されています。クラスA、B、Cの境界はもはやルートのマッチング方法を決定するものではなく、10.0.0.0/24のようなネットワークも完全に有効です。
192で始まるアドレスは/24を使用しているに違いないと、多くの人が思い込んでいます。しかし、最初のオクテットだけでは、現在使用されているマスクについては何も示さないため、設定されたプレフィックス長を常に確認する必要があります。
一部のレガシーなルーティング設定では、クラスの境界で自動的にルーティングが要約されます。連続していないネットワークでは、この自動要約を無効にするまで、ルートが欠落したりブラックホールが発生したりする可能性があります。
クラスDはマルチキャスト用に、クラスEは実験用途用に予約されています。いずれも通常のホストには割り当てられないため、インターフェース上でこれらの範囲のアドレスが検出された場合は、設定エラーを示します。
これらのクラス区分は、ドキュメントや試験、および旧式の機器における一部のデフォルト動作において依然として使用されています。アドレス割り当てがクラスレス化されている現在でも、これらを理解しておくことは、レガシーな設定を解釈する上で役立ちます。