サブネットマスクによるネットワークの分割

本来のクラスの考えに沿っていれば、わざわざサブネットマスクの表記をしなくてもアドレスを見た段階でクラスが分かり、ネットワーク部が決まりますが、ネットワーク部のビット数を自由に決められるとなるとそうはいきません。

下の例で、クラスBのネットワーク「172.16.0.0」をサブネットマスクでネットワーク部を+8ビット拡張した場合を見てみましょう。

  • 図7:172.16.0.0 のネットワーク部を8ビット拡張

    図7:172.16.0.0 のネットワーク部を8ビット拡張

ネットワーク部は、サブネット部と合わせると24ビットになります。第3オクテット(※)の8ビット分もネットワーク部としてみなされるため、1つのクラスBのネットワークがクラスCと同じ大きさのネットワークに分割できます。図8の「分割されたネットワーク」の表を見てください。

(※):オクテット:IPアドレスやサブネットマスクの先頭から8ビットまでのかたまりのことを第1オクテットといいます。次の8ビットのかたまりを第2オクテットといいます。続けて第3オクテット、第4オクテットといいます。

  • 図8:分割されたネットワーク

    図8:分割されたネットワーク

ネットワークアドレスの172.16は固定ですが、第3オクテットの0から255までがネットワーク部となり、256個のネットワークに分割できました。

このように、サブネットマスクにより、本来1つの大きなネットワークとして割り当てなければならなかったアドレス空間を規模に応じて分割し、複数に割り当てることができるようになります。これにより、IPアドレスの空間を効率よく利用することが可能です。

サブネット分けされたネットワークの割り当て

ネットワークの規模に応じたサブネットマスクによるネットワークの分割について、他の例を使って説明します。次の要件の下で考えてみましょう。

要件:300台のホストが接続するネットワークを4つ用意したい。クラス「C」では254台までしかホストを接続できないので、クラス「B」のアドレスが必要。アドレスは「157.0.0.0/16」が使えるが、クラス「B」に300台ではホストに割り当てないアドレスが多くなり、またクラス「B」のアドレスが追加取得できるとは限らない。

このような環境で「クラスレス」の考え方を用い、サブネットマスクを活用してみましょう。先頭から23ビットでネットワークを分割(残り9ビットをホスト部として使用)すると、1つのネットワークにおよそ500台の機器が割り当てできます。図9を参照してください。

  • 図9:ホスト部9ビットのネットワークのホスト部範囲。ホスト部が9ビットとなることから、2の9乗(512)から例外の2を引いて510個のアドレスを割り当てることが出来るようになります

    図9:ホスト部9ビットのネットワークのホスト部範囲。ホスト部が9ビットとなることから、2の9乗(512)から例外の2を引いて510個のアドレスを割り当てることができるようになります

  • 図10:『クラスレス』の考え方に沿ったアドレス割り当ての例。23ビットマスクのネットワークを複数割り当てている様子をイメージし

    図10:『クラスレス』の考え方に沿ったアドレス割り当ての例。23ビットマスクのネットワークを複数割り当てている様子をイメージする

同じクラスBのアドレス「157.0.0.0」を使いながら、第3オクテットについては7ビット分もネットワーク部となり、別々のネットワークとして使えます。

そして、第3オクテットの8ビット目はホスト部として利用できるため、クラスCのネットワーク2つ分のアドレス空間を持てます。未使用分は少々ありますが、クラスBをそのまま使用するときよりも少なくて済みます。

要件のとおり、300台のホストが参加できるネットワークを4つ(157.0.0.0/23、157.0.2.0/23、157.0.4.0/23、157.0.6.0/23)割り当てることができ、クラスBの追加取得も必要なくなります。

サブネットによるネットワークの拡大

ここまでは、クラスレスの考え方により、従来のクラスのネットワークを分割できるということを見てきました。次に、ネットワークを結合可能である例を紹介します。要件は次の通りです。

要件:「10万台分のアドレスを割り当てるネットワークを1つ調達したい」と相談を受けたISP(Internet Service Provider:インターネット接続サービスを提供する事業者)が、ユーザーに割り当てを考えるものとする。

「クラス」の考え方では、クラスBのアドレス範囲1つで割り当てできるホスト数が不足しているため、クラスAを選択することになります。しかし、10万台を参加させたいネットワークに、1600万台分のアドレスを割り当てるネットワーク範囲を渡してしまっては、無駄が多くなってしまいます。ここでも「クラスレス」の考え方で、サブネットマスクを活用してみましょう。

図11は、この要件とISPのIPアドレスの在庫状況を示しています。

  • 図11:ISPの持っているアドレスの在庫とユーザの要求

    図11:ISPの持っているアドレスの在庫とユーザーの要求

ISPはクラスAのアドレス在庫を持っていないという想定です。そのため、確保するにはJPNIC(JAPAN Network Information Center:日本におけるアドレスの管理組織)という上位のアドレス管理組織から新しくアドレス範囲をもらう必要があります。しかし、ISPではクラスBの在庫があるため、それを組み合わせて1つのネットワークにすれば、クラスAをもらう必要はありません。

「クラスレス」の考えで、クラスBのネットワークの先頭から15ビットを使用してネットワーク部とすると、ホスト部が17ビットとなり、1つのネットワークにおよそ13万台の機器が割り当てられるようになります。図12ではどのようにクラスBのネットワークをまとめているのかを示しています。

  • 図12:クラスBの2つのネットワークをまとめて一つにする

    図12:クラスBの2つのネットワークをまとめて1つにする

この例では、 180.0.0.0/16 と 180.1.0.0/16 のネットワークを1つにまとめ、180.0.0.0/15 のネットワークとしています。10万台分必要ですが、約13万のアドレス空間が提供できるので、3万は余ります。しかし、クラスAを渡して、1590万台分のアドレスが使い切れなくなる事態は避けられます。

このように、必要な台数を参加させる最適なネットワークの規模をサブネットマスクで指定することにより、使い切れないアドレスを減らし、有効活用できます。1つのネットワークに必要なホスト数に応じて、ホスト部を何ビット用意すればよいのかを計算できます。図13に、サブネットマスクのビット数と割り当て可能なホスト数の一部を表にまとめたので、参考にしてください。

  • 図13:サブネットマスクのビット数と、1ネットワーク内のホストアドレス数

    図13:サブネットマスクのビット数と、1ネットワーク内のホストアドレス数

ホスト部のビット数をnとすると、32-nがネットワーク部のビット数となります。また、(2のn乗-2)が1ネットワーク内に割り当てできるホスト数となりますので、(2のn乗-2≧必要なホスト数)となるnがわかれば、サブネットマスクによるネットワークのビット数も決まります。 

クラスレスのテクニックは、現在多くのネットワーク上で利用されています。しかし、クラスレスを用いただけではIPアドレス不足の問題は解決できません。このことについては次回に紹介します。

まとめ

・インターネットの発展に伴い、クラスの考えによるアドレスの割り当てには限界があることが予想されるようになった

・クラスレスの考えにより、クラスよりも自由にネットワーク部とホスト部のビット数を調整でき、ネットワークを分割することも、まとめることもできる

・クラスレスで調整したアドレスがいくつ利用可能になるかは、2のn乗(nはビット数)で計算することができる

・クラスレスの機能を利用するには、アドレスに対して調整したサブネットマスクの情報を明示しなければならない

・サブネットマスクの表記は、IPアドレスと同じスタイルの10進表記と、"/"を用いたプレフィックス長の表記の2通りある

次回は、IPアドレスの枯渇問題と延命対策について紹介します。

著者プロフィール


髙橋 真樹 (たかはし まさき)


ネットワンシステムズ株式会社
1995 年ネットワンシステムズ入社。前職ではシステム開発に携わっていたが、入社後はネットワークインフラの構築業務を経て現在の技術インストラクター業務に就く。長年ネットワークエンジニアの育成を担当しており、シスコシステムズ社の認定インストラクターとして CCSI Excellence Award および Contribution Award の受賞経験あり。近年はネットワークに加え、IoT や仮想化、自動化などのカリキュラム設計も担当している。