【IPアドレスとは その3】クラスフル・クラスレス IPアドレスのクラス分け解説

about-ip-address-part3

この記事のポイント
  • 頭のbitによってクラスA~Eまでクラス分けされている

  • クラスの概念をそのまま取り入れた考えがクラスフル

  • クラスをサブネット化する考え方がクラスレス

IPアドレスってどれくらいの数あるの?たくさんあるのは何となく分かるけどどう使っても良いのかしら?

チャーチルさん

ポン先生

実際にはいくつかの種類に分けられている。今日はそのあたりを説明するよ。

本記事ではIPアドレス第3弾としてIPアドレスのクラスについて解説します。この記事を読むことで、クラスやサブネットの概念を理解することができます。

IPアドレスのクラス

IPアドレスのクラス

IPアドレスのクラス

IPアドレスは現実的に利用可能か否かは一旦置いておき、範囲としては0.0.0.0~255.255.255.255となります。これらはいくつかのグループに分けられており、このグループのことをクラスと言います。普段はそこまで意識する事は少ないかもしれませんが、古からある概念ですし、古い設計のネットワークの場合はクラスの考え方をベースに作成されていることもあるので知識としては把握しておきましょう。

クラスはIPアドレスの頭のbitによって以下のようにクラスA~Eに分類されます。

IPアドレスのクラス

クラスA~Cは通常通り利用できるアドレス帯です。

クラスDはマルチキャストで利用されるアドレス帯となり、PCやネットワーク機器自体に設定するIPアドレスとしては通常利用しません。

▼マルチキャストとは
【IPアドレスとは その2】ユニキャスト・マルチキャスト・ブロードキャスト 通信方式解説

また、クラスEは開発当初の実験目的で予約されているアドレス帯であり、こちらも実際に利用される事は有りません。

そのため実際の設計等で考えるのはクラスA~Cがメインとなります。

クラスとネットワークの大きさ

それでは各クラスはそれぞれどの程度の大きさ(IPアドレスが何個使える)か見てみましょう。

クラス毎に予めネットワーク部の範囲が決まっており、利用可能なIPアドレス数も決まっています。具体的には以下の通りです。 ※()内は実際に利用出来るアドレス数です。

クラスアドレス範囲ネットワーク数ホスト数ネットマスク
クラスA0.0.0.0~
127.255.255.255
(1.0.0.0~
126.0.0.0)
128
(126)
16,777,216
(16,777,214)
255.0.0.0
クラスB128.0.0.0~
191.255.0.0
16,38465,536
(65,534)
255.255.0.0
クラスC192.0.0.0~
223.255.255.0
2,097,152256
(254)
255.255.255.0

クラスAのネットワーク部については00000000~01111111、つまり0~127で128個ありますが「0.0.0.0」と「127.0.0.0」は使用しないため126個となります。

「0.0.0.0」は全てのネットワークを表す特別なアドレスとして扱われるため通常利用しません。また、「127.0.0.1」は、ループバックアドレスと言い、コンピュータ自身を表すIPアドレスです。動作検証等で使用されます。

またホスト部について、計算上のIPアドレス数から2引いた数が、端末が利用可能なIPアドレス数となります。

これは各セグメントには必ずネットワークアドレスとブロードキャストアドレスが存在するためです。

▼ネットワークアドレスとは
【IPアドレスとは】ネットワーク上の住所です

クラスフルとクラスレス

IPアドレスのクラスは分かったけど、クラスによってはIPアドレス数がすごく多いわね。何だか無駄が多いような気がしてしまうけど?

チャーチルさん

ポン先生

良いところに気がついたね。このルール通りに設計しようとすると非効率的なので実際は工夫する必要があるんだよ。

例えばクラスAのネットワークを作った際は、約1600万個ものIPアドレスが利用可能になります。しかし普通に考えてこの数のIPアドレスを1つの企業、一つの場所で使う事はまず無いでしょう。

そこで通常は、ネットワークを細分化して利用します。例えば以下のような要件を考えて見ましょう。

  • 元々あるネットワーク:172.16.0.0/16(クラスB、ホスト部:65,534個)
  • 1部門あたりのPC接続台数:200台
  • 部門数:8
  • 要件:部門ごとにネットワークを分けたい

PC台数の合計は1600台なので元々の172.16.0.0/16で全て収容できますが、部門ごとにネットワークを分ける必要があるので要件を満たしていません。

となれば他のネットワークをあと7個用意する必要があります。全てクラスBのネットワークである場合は1ネットワークあたり、65,534 - 200 = 65,334個ものIPアドレスが無駄になります。

そこで元々の172.16.0.0/16を細分化し割り当てます。具体的には以下の通り/24のネットワークずつ細切れにしていくイメージです。

サブネット分割(表)

上記の通り、172.16.0.0/24、172.16.1.0/24、・・・、172.16.7.0/24の8ネットワーク分切り出してそれぞれの部門へ割り当てます。/24とした理由は/25だと利用できるIPアドレスが126個で足りず、/24だと254個なのでPC200台の要件を満たせるためです。

どうでしょう?1ネットワークあたり65,334個IPアドレスが無駄になるところでしたが/24に分割したことで54個の余りで済みます。

一般的には将来的な端末の増加等考慮して多少の余裕は持たせるものなので、この程度の余り個数であれば許容範囲です。かなり効率的な採番が出来るようになり、別のネットワークが必要になった際にも今回利用しなかった範囲から新たに払い出すことも可能です。

このように各クラスフルネットワークを細分化し適切なレンジで利用することを「サブネット化」と言います。また、元々のクラスの考え方に基づくアドレス帯を「クラスフル」、クラスフルネットワークをサブネット化したものを「クラスレス」と言います。

  • クラスフル・・・予めネットワーク部の範囲が決まっているIPアドレスのグループ(IPアドレスの無駄が多い)
  • クラスレス・・・クラスフルネットワークをサブネット化したネットワーク(最適な個数のネットワークを作ることが出来る)

一応、余りのネットワークについてもまとめます。表だけだとイメージしにくいかもしれないので下図はイメージです。

サブネット分割

上図は全体で元々の172.16.0.0/16のネットワークです。そこから/24×8個を切り出して使いました。余った範囲の表現は以下の通りです。

  • 172.16.8.0/21
  • 172.16.16.0/20
  • 172.16.32.0/19
  • 172.16.64.0/18
  • 172.16.128.0/17

1行で表現できないのか?と思うところですが、残念ながらIPアドレスの表現上こうなります。(2進数的な意味で)キリの良いところからスタートすればxx.xx.xx.xx/yの形式で簡単に表現できます。例えば172.16.0.0~172.16.31.255の範囲であれば以下1行です。

172.16.0.0/19

一方、172.16.8.0~172.16.31.255の範囲であれば1行でキリ良く/yで表現出来る数字が無いので、以下のように分割して表現する必要があります。

172.16.8.0/21
172.16.16.0/20

これは再度上記のイメージ図と照らし合わせてよく確認しましょう。

また、こうしてイメージ図を見るとクラスフルの場合、いかにIPアドレスが無駄になるかが良く分かるでしょう。直接的な実害は有りませんが、適切なサイジング(規模感の設計)が必要であるという良い事例でもあります。

まとめ
  • 頭のbitによってクラスA~Eまでクラス分けされている

    • 実際端末で利用するのはクラスA~C
  • クラスの概念をそのまま取り入れた考えがクラスフル

    • アドレス数的に効率が悪い
  • クラスをサブネット化する考え方がクラスレス

    • 必要なアドレス数に応じたネットワークを作れる

今回は主にクラスの概念について解説しました。最近のネットワークであればほぼクラスレスの考え方がスタンダードです(クラスフルのメリットもかなり薄いので・・・)。とは言え背景や対になるものを知る事でより深く理解できますし、場合によってはクラスフルの知識が環境なネットワーク環境もあるので必ず覚えておきましょう。