インターネットや社内ネットワークなどのIPネットワークにおいて、個々のデバイスを識別するために欠かせないのがIPアドレスです。
このIPアドレス(特にIPv4)を効率的に管理し、割り当てるために考案された仕組みの一つが「アドレスクラス」と呼ばれる分類手法です。
ネットワークの規模に応じて最適な数のIPアドレスを割り当てるという考え方は、現代のネットワーク技術の基礎となっており、エンジニアにとって必須の知識といえます。
本記事では、アドレスクラスの定義から各クラスの具体的な範囲、そして現代における役割までを詳しく解説します。
アドレスクラスの基本概念と仕組み
アドレスクラスとは、32ビットで構成されるIPv4アドレスを、ネットワークの規模に合わせて5つのグループに分類したものを指します。
IPv4アドレスは、ネットワーク自体を識別するための「ネットワーク部」と、そのネットワーク内の個々の機器を識別するための「ホスト部」の2つの階層で構成されています。
アドレスクラスという概念が登場する前は、IPアドレスをどのように区切るかが固定されていなかったため、管理が非常に複雑でした。
そこで、IPアドレスの先頭ビットの値を見るだけで、どこまでがネットワーク部でどこからがホスト部かを判別できるようにしたのがアドレスクラスの仕組みです。
この仕組みにより、ルーターなどのネットワーク機器は複雑な計算をすることなく、パケットを適切な目的地へ転送することが可能になりました。
このように、ネットワーク部とホスト部の境界をクラス(階層)ごとに固定する方式を「クラスフルアドレッシング」と呼びます。
ネットワーク部とホスト部の役割
ネットワーク部は、そのIPアドレスがどの組織やグループのネットワークに属しているかを示す、いわば「住所の市区町村」のような役割を果たします。
一方のホスト部は、そのネットワーク内にある特定のコンピュータやサーバー、プリンターなどを指し示す「番地」のような役割を担います。
アドレスクラスによってこの境界線が変わるため、割り当て可能なネットワークの数と、1つのネットワーク内に収容できるホストの数が変動します。
大きな組織にはホスト部が広いクラスを割り当て、小さな組織にはホスト部が狭いクラスを割り当てることで、IPアドレスの無駄を防ぐ狙いがありました。
5つのアドレスクラス:AからEまでの特徴
IPv4のアドレスクラスは、クラスAからクラスEまでの5種類に定義されています。
一般的に私たちが目にするのはクラスA、クラスB、クラスCの3種類であり、これらが実際の通信に使用されます。
以下の表は、各クラスの範囲とデフォルトのサブネットマスク、ネットワーク部・ホスト部のビット構成をまとめたものです。
| クラス | 先頭ビット | アドレス範囲 | デフォルトサブネットマスク | 最大ホスト数 |
|---|---|---|---|---|
| クラスA | 0 | 0.0.0.0 ~ 127.255.255.255 | 255.0.0.0 | 16,777,214 |
| クラスB | 10 | 128.0.0.0 ~ 191.255.255.255 | 255.255.0.0 | 65,534 |
| クラスC | 110 | 192.0.0.0 ~ 223.255.255.255 | 255.255.255.0 | 254 |
| クラスD | 1110 | 224.0.0.0 ~ 239.255.255.255 | 定義なし | マルチキャスト用 |
| クラスE | 1111 | 240.0.0.0 ~ 255.255.255.255 | 定義なし | 研究・予約用 |
このように、アドレスの第1オクテット(最初の8ビット)を確認するだけで、そのアドレスがどのクラスに属しているかを即座に判断できます。
クラスA:大規模ネットワーク向け
クラスAは、非常に大規模なネットワークを構築するために設計されたクラスです。
先頭の1ビットが「0」で始まるアドレスがクラスAに該当し、第1オクテットのみがネットワーク部となります。
残りの24ビットがすべてホスト部に割り当てられるため、1つのネットワーク内で約1,677万台ものホストを管理することが可能です。
このクラスは、巨大な多国籍企業や政府機関、一部のインターネットサービスプロバイダーなどに割り当てられてきました。
ただし、第1オクテットが「127」で始まるアドレス(127.0.0.1など)は、「ループバックアドレス」として自分自身を指すために予約されているため、通常のネットワーク割り当てには使用されません。
クラスAのデフォルトサブネットマスクは 255.0.0.0 であり、CIDR表記では /8 と表されます。
クラスB:中規模ネットワーク向け
クラスBは、中規模から大規模な組織に適したクラスです。
先頭の2ビットが「10」で始まるアドレスがクラスBとなり、第2オクテットまでがネットワーク部として扱われます。
ホスト部には16ビットが割り当てられており、1つのネットワークにつき最大で65,534台のホストを接続できます。
大学のキャンパスネットワークや大企業の拠点ネットワークなどでよく利用されてきました。
クラスBの範囲は 128.0.0.0 から 191.255.255.255 までとなっており、ネットワーク数は16,384個存在します。
デフォルトサブネットマスクは 255.255.0.0 で、CIDR表記では /16 となります。
クラスC:小規模ネットワーク向け
クラスCは、小規模な組織や家庭内LANで最も一般的に利用されるクラスです。
先頭の3ビットが「110」で始まるアドレスがクラスCに該当し、第3オクテットまでがネットワーク部となります。
ホスト部に割り当てられるのは最後の8ビットのみであるため、接続できるホスト数は最大で254台に限られます。
256から2を引く理由は、ホスト部がすべて「0」のアドレスが「ネットワークアドレス」、すべて「1」のアドレスが「ブロードキャストアドレス」として予約されているためです。
私たちが家庭用のWi-Fiルーターなどでよく目にする 192.168.x.x というアドレスも、このクラスCの範囲に含まれるプライベートIPアドレスです。
デフォルトサブネットマスクは 255.255.255.0 であり、CIDR表記では /24 と記述されます。
クラスDとクラスE:特殊な用途
クラスDとクラスEは、通常のコンピュータに1対1で割り当てるためのアドレスではありません。
クラスDは「マルチキャスト」と呼ばれる通信方式のために予約されています。
マルチキャストとは、特定のグループに属する複数のホストに対して、一度の送信で同じデータを届ける仕組みのことです。
動画配信やルーティングプロトコルの情報交換などで活用されており、特定のサーバーや端末を指すものではありません。
クラスEは、将来的な技術開発や実験的な目的のために予約されている範囲です。
一般のインターネット通信やビジネスネットワークで使用されることはなく、通常のOSやルーターでも利用できないように制限されていることがほとんどです。
プライベートIPアドレスとアドレスクラスの関係
IPアドレスには、世界中で重複してはならない「グローバルIPアドレス」と、特定の組織内だけで自由に使える「プライベートIPアドレス」があります。
プライベートIPアドレスも、アドレスクラスの考え方に基づいて各クラスから一定の範囲が確保されています。
以下の範囲が、RFC 1918で規定されているプライベートIPアドレスの領域です。
- クラスA:
10.0.0.0~10.255.255.255 - クラスB:
172.16.0.0~172.31.255.255 - クラスC:
192.168.0.0~192.168.255.255
企業ネットワークを構築する際、数千台のPCがあるならクラスAやクラスBのプライベートアドレス範囲を使用し、小規模なオフィスならクラスCを使用するのが一般的です。
このように、アドレスクラスの概念はプライベートネットワークの設計指針としても今なお受け継がれています。
クラスフルからクラスレス(CIDR)への移行
かつてのアドレスクラスという仕組みには、柔軟性に欠けるという大きな課題がありました。
例えば、500台の端末がある組織の場合、クラスC(254台)では足りず、クラスB(約6.5万台)を割り当てるしかありませんでした。
これでは、クラスBを割り当てたとしても約6.4万個のアドレスが未使用のまま放置されることになり、IPアドレス資源が急速に枯渇する原因となりました。
この問題を解決するために導入されたのが、「CIDR(Classless Inter-Domain Routing)」というクラスレスなアドレッシング方式です。
CIDRでは、クラスの枠組みにとらわれず、ビット単位で自由にネットワーク部とホスト部の境界を設定できます。
現代のインターネットでは、このCIDRと「サブネットマスク」を組み合わせることで、1台単位や10台単位といった細かな単位でアドレスを切り出して利用しています。
しかし、CIDRが主流となった現在でも、デフォルトの境界線として「クラス」の概念は残っており、ルーターの設定時などに意識されることがあります。
サブネットマスクによる細分化
クラスの境界をさらに細かく分割する技術を「サブネッティング」と呼びます。
例えば、クラスCの 192.168.1.0/24 をさらに半分に分け、/25 のネットワークを2つ作るような操作です。
これにより、部門ごとにネットワークを分離してセキュリティを高めたり、通信トラフィックを制御したりすることが可能になります。
プログラムや設定ファイルにおいて、どのようにサブネットが定義されているかを確認することは、トラブルシューティングにおいても重要です。
# LinuxやmacOSで現在のIPアドレスとサブネットマスクを確認するコマンド例
ip addr show
# または
ifconfig
inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
# この場合、netmask 0xffffff00 は 255.255.255.0 つまりクラスCの標準マスクを意味します。
まとめ
アドレスクラスは、IPv4アドレスをネットワーク規模に応じて5つに分類する歴史的かつ基礎的な仕組みです。
クラスA、B、Cという分類により、ネットワーク部とホスト部の境界を明確にし、効率的なルーティングを実現してきました。
現在はCIDRによるクラスレスな運用が主流ですが、プライベートIPアドレスの範囲定義や、デフォルトの動作を理解する上で、アドレスクラスの知識は今でも欠かせません。
特に、第1オクテットの数値を見ただけで「これはクラスBのアドレスだ」と判断できるスキルは、ネットワークエンジニアとしての基礎体力となります。
IPアドレスの枯渇問題やIPv6への移行が進む現代においても、これまでのネットワークがどのように構築されてきたかを知るために、アドレスクラスの概念を正しく理解しておきましょう。
