クラスフルアドレッシングとは?IPv4のA/B/C/D/Eの違いと問題点、CIDRへの移行をわかりやすく解説
クラスフルアドレッシングとは何か
クラスフルアドレッシング(classful addressing)は、IPv4アドレス空間を事前に定められた「クラス」に基づいて分割・割り当てする古い方式です。アドレスの先頭ビット(最上位ビットパターン)によりA〜Eの5つのクラスに分類し、それぞれにデフォルトのネットワーク長(ネットマスク)を持たせることで、ネットワーク部とホスト部を決めていました。1980年代〜1990年代前半に広く用いられましたが、アドレス資源の非効率な消費とルーティングテーブルの肥大化を招いたため、現在はクラスレス(CIDR)が主流です。
クラスの分類と特徴
クラスA:先頭ビットが0。先頭オクテットは1〜126(0と127は特殊扱い)。デフォルトマスクは255.0.0.0(/8)。1ネットワークあたりのホスト数は2^24−2=16,777,214(ネットワークアドレスとブロードキャストアドレスを除く)。クラスAのネットワーク数は126。
クラスB:先頭ビットが10。先頭オクテットは128〜191。デフォルトマスクは255.255.0.0(/16)。1ネットワークあたりのホスト数は2^16−2=65,534。クラスBのネットワーク数は16,384(64×256)。
クラスC:先頭ビットが110。先頭オクテットは192〜223。デフォルトマスクは255.255.255.0(/24)。1ネットワークあたりのホスト数は2^8−2=254。クラスCのネットワーク数は2,097,152(32×256×256)。
クラスD(マルチキャスト):先頭ビットが1110。先頭オクテットは224〜239。ユニキャストではなくマルチキャスト用途に予約されています。
クラスE(実験/将来用):先頭ビットが1111。先頭オクテットは240〜255。将来用途または実験用に予約されており、通常の割り当てやユニキャスト通信には使用されません。
なぜ「クラスフル」は問題だったのか(欠点の深掘り)
クラスフル方式には、設計時には簡便性という利点がありましたが、次のような問題点が顕在化しました。
アドレスの浪費(切り詰めと過剰割り当て)
組織が必要とするアドレス数は千単位、数万単位など様々ですが、クラスフルは1ネットワーク単位での配布(/8、/16、/24)であったため、例えば数千ホスト必要な組織に対してはクラスB(/16、約65,534ホスト)を割り当てるなどして多くの未使用アドレスが生まれました。この断片化がIPv4枯渇の一因となりました。ルーティングテーブルの肥大化
小さな組織にクラスCを多数割り当てるような運用が続くと、インターネットのルーティングテーブルに数百万の個別ルートが登録され、ルータのメモリ・CPU負荷が増大しました。集約(summarization)できないルートの増加はスケーラビリティを阻害しました。プロトコルの互換性問題(クラスフルルーティング)
RIPv1などの古いルーティングプロトコルはルートにネットマスクを含めず、受け取ったアドレスのクラスからマスクを推定するクラスフルな振る舞いをしていました。これにより、サブネット化されたネットワーク間でルーティングの誤認識が発生することがありました。
クラスフル時代のサブネット化と「固定長」概念
クラスフル方式でも、ネットワーク内でさらに小さなサブネットに分割する「サブネット化」は可能でした。これはデフォルトマスクよりも多くのビットをネットワーク部に割り当てることで実現します(例:クラスBで /20 など)。ただし、クラスフルの運用は「ネットワーククラスを基準に管理する」という前提があり、サブネットワーク情報がルーティング情報に含まれないプロトコルと組み合わせると問題が生じました。
可変長サブネットマスク(VLSM:Variable Length Subnet Mask)を活用するには、ルーティングがクラスレスであること(マスク情報を持つこと)が前提になります。これが可能になったことで、より細かい、効率的なアドレス利用が可能になりました。
CIDR(クラスレス)への移行と歴史的背景
上記の問題に対処するため、1993年にCIDR(Classless Inter-Domain Routing)が導入されました(RFC 1519)。CIDRはネットワークを「任意の長さのプレフィックス(/n)」で表現し、クラスという固定概念を廃止しました。これにより:
- アドレス割当てとルート集約が柔軟になり、ルーティングテーブルの肥大化を抑制できた。
- VLSMの利用が促進され、必要な分だけを割り当てることでアドレス資源を効率化できた。
実際にルーティングプロトコル面でも、RIPv2、BGP、OSPFなどがマスク情報を扱うようになり、クラスフル前提のプロトコルは段階的に置き換えられました。
実務で覚えておくべき「クラスフル」のポイント(チェックリスト)
- 最上位オクテットでクラスを判定できる(1〜126:A、128〜191:B、192〜223:C、224〜239:D、240〜255:E)。ただし0と127は特殊。
- デフォルトマスク:A=/8、B=/16、C=/24。
- ホスト数計算:ホストビット数をnとすると理論値は2^n、通常ネットワークアドレスとブロードキャストを除くため2^n−2。ただし特殊なケース(/31のポイントツーポイントなど)は例外が存在)。
- プライベートアドレス(RFC 1918):10.0.0.0/8(クラスAサイズ)、172.16.0.0/12(172.16〜172.31、かつ元来はB帯に近い割り当て範囲)、192.168.0.0/16(クラスCサイズ帯の集合)などはインターネット上でルーティングされない。
計算例:具体的な数値で理解する
例1:IPアドレス 10.20.30.40 はクラスAか?
最上位ビットは0、先頭オクテットは10 → クラスA。デフォルトマスク255.0.0.0(/8)。このネットワークのサイズは約1,677万ホスト。
例2:IPアドレス 192.168.1.100 はクラスCか?
先頭オクテット192はクラスC範囲(192〜223)なのでクラスC。デフォルトマスク255.255.255.0(/24)。ホスト数は254。
特殊アドレスと注意点
- 0.0.0.0/8:特殊("this network"等)
- 127.0.0.0/8:ループバック(127.0.0.1など)
- 169.254.0.0/16:リンクローカル(APIPA、自動プライベートIP)
- マルチキャスト(224.0.0.0/4)や将来予約(240.0.0.0/4)など、クラスD/Eはユニキャスト割当対象外
- RFC 1918で定義されたプライベートアドレス群は、インターネット上でルーティングされないためNATなどと組み合わせて利用される
現在の実務でのクラスフルの位置づけ
現代のネットワーク設計・運用では、CIDRとVLSMがデフォルトであり、クラスフルは歴史的概念として理解しておくべきものです。ただし、クラスフルの考え方(/8、/16、/24といった「自然な」境界)は日常的な説明や小規模ネットワークの設計で参照されることが多く、理解しておくと以下の点で役立ちます:
- 既存の古い機器やプロトコル(極稀に残るRIPv1等)を扱う際の互換性理解
- IPアドレスの範囲感覚(どの程度の規模がA/B/Cで表されるか)
- 歴史的背景を理解することで、なぜCIDRやNATが出てきたのかを説明できる
まとめ
クラスフルアドレッシングは、IPv4アドレス空間を容易に管理するために生まれたが、アドレス配分の非効率性とルーティングスケーラビリティの問題を抱えていた方式です。これらの問題を解決するためにCIDRとVLSMが導入され、現代のインターネットではクラスレスが標準となっています。とはいえ、クラスフルの概念はネットワーク教育や歴史的理解として重要であり、デフォルトマスクやクラス判定の基本は今でも知っておくべき基礎知識です。
参考文献
- RFC 791 - Internet Protocol (IPv4)
- RFC 950 - Internet Standard Subnetting Procedure
- RFC 1519 - Classless Inter-Domain Routing (CIDR)
- RFC 1918 - Address Allocation for Private Internets
- IANA — IPv4 Special-Purpose Address Registry


