旬のトピック、最新ニュースのマピオンニュース。地図の確認も。

IPアドレスとサブネットマスク

2023年06月07日09時00分 / 提供:マイナビニュース


前回は「IPアドレス」について、その表記方法・クラス分け・ネットワークへの割り当て方法について紹介しました。今回は、そのIPアドレスの約束ごとを拡張するために定められた、サブネットマスクとクラスレスの考え方を説明します。
クラス分けによるネットワーク割り当ての限界

IPアドレスのクラス「A」「B」「C」は、ネットワークの規模に合わせて3つの中から選択し、アドレス割り当てを行います。しかし、インターネットの発展とともにIPネットワークが全世界へ広がっていくと、クラスによる割り当ての限界が予想されるようになります。前回に説明したクラス分類について振り返りながら、その理由を考えてみましょう。以下の図1の「クラスとアドレスの範囲」を参照してください。

アドレスの範囲は、ネットワーク部であれば、ネットワーク部のビット数、ホスト部であればホスト部のビット数で決まります。例えば、3ビットの場合は2進数で表すと、000から111となり、これを順番に並べると図2のようになります。

アドレスの個数を調べたい場合、10進数に直すことで、その範囲からいくつあるかを導くことができます。3ビットであれば0~7までの8通り(8個のアドレス)であることが容易にわかります。

しかし、ビット数がもっと増えた場合はどうでしょう。クラスBのネットワーク部は16ビットありますので、00000000 00000000から11111111 11111111までとなり、10進数に直すのに少々手間がかかってしまいます。

そこで、2進数の1桁が0と1の2通りあることから、2を桁数(ビット数)分累乗することで、全部で何通りあるか(0から数えた個数)を計算することが可能になります。2ビットであれば2×2= 4(2の2乗) 、3ビットであれば2×2×2=8(2の3乗)のように計算します。これを踏まえて、各クラスのネットワーク数を確認してみましょう。

クラスAのネットワーク部は8ビットで先頭の1ビットは0固定であるため、その数は2の7乗の128個。 10進数では0~127までの範囲となります。そのうちの先頭(0)と最後(127)のネットワークは例外として割り当てできないことは前回に説明しました。

つまり、「インターネットにおいて、クラスAのネットワークは1から126までの126個しか割り当てできない」ということになります。図3で、クラスAのネットワーク部の範囲を確認してみましょう。

同じように考えると、クラス「B」はネットワーク部16ビットから固定の先頭2ビットを引いて、14ビット分のネットワーク数、2の14乗=16384。そこから先頭と最後のネットワーク2つ分を引いて、1万6382個、クラス「C」については24ビットから固定の先頭3ビットを引いて、21ビット分のネットワーク数、2の21乗=2097152。そこから2を引いて、209万7150個のネットワークを割り当てることができます。

クラス「C」は約200万個あるので、数が多いと考えがちですが、逆にホスト部については2の8乗=256から2を引いて254個しかありません(この引き算する2つ分は、前回説明したホストアドレスの例外分です)。従って、1000人の組織で1人につき1個のアドレスを割り当てる場合、クラス「C」のネットワークを使用すると少なくとも4つ必要になります。

現代のようにインターネットが世界中に普及する環境では、世界の人口や、利用したい企業や世帯、組織の数を想像すると、クラス「A」から「C」まで合わせても約210万個では、足りなくなることが想像できるのではないでしょうか。
「クラスレス」の考え方と「サブネットマスク」

このような、クラスによるネットワークアドレスの割り当てで生じるアドレス不足を解消するために、「ネットワーク部のビット数を自由に決めて、組織の規模に合ったアドレス範囲を割り当てたい」という考えで生まれたのが「クラスレス」です。

例えば、クラス「A」のアドレスをクラス「B」や「C」のようにたくさんのネットワークに分割できれば、もっと多くのネットワークアドレスの割り当てができると考えたわけです。

「クラスレス」の考えを実現するには、先頭のビット列によってクラス、つまりネットワーク部とホスト部の境界が決まる、という考えを捨てる必要があります。そのためには、IPアドレスとは別に、ネットワーク部とホスト部の境界を判断する方法が必要になります。

アドレスのネットワーク部とホスト部のそれぞれを何ビットとするかを表記し、それらの境界を示す方法が「サブネットマスク」です。サブネットマスクは、ネットワーク部のビットに1、ホスト部のビットに0を記載することで境界を表現します。これを、IPアドレスと同じ方法で10進数表記します。

クラスで定義されているネットワーク部とホスト部について、サブネットマスクを使って表してみましょう。図6の「各クラスにおける基本のサブネットマスク」の表を見てください。

クラスの考え方では、クラス「A」の場合は先頭8ビットがネットワーク部と決まっているので、サブネットマスクは 255.0.0.0となります。例えば、10.0.0.0のクラス「A」のネットワークのサブネットマスクは、255.0.0.0、172.16.0.0 のクラス「B」のネットワークのサブネットマスクは、255.255.0.0 になります。

また、サブネットマスクの表記方法にはもうひとつあり、「プレフィックス長表記」といいます。これは、ネットワーク部のビット数を“/"を付けて表すもので、通常IPアドレスに連続させて記述します。上記の例では「10.0.0.0/8」、「172.16.0.0/16」、「192.168.1.0/24」のように使用します。

サブネットマスク表記による指定で、「172.16.0.0/17」や「172.16.0.0/24」、「172.16.0.0/15」のように、ネットワーク部の境界をクラスの定義から前後にずらすことができるようになります。このようなネットワークの割り当てを「クラスレス」と呼びます。


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

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

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

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

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

ネットワークアドレスの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を参照してください。

同じクラス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アドレスの在庫状況を示しています。

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

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

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

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

ホスト部のビット数を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 や仮想化、自動化などのカリキュラム設計も担当している。

続きを読む ]

このエントリーをはてなブックマークに追加

関連記事

ネタ・コラムカテゴリのその他の記事

地図を探す

今すぐ地図を見る

地図サービス

コンテンツ

電話帳

マピオンニュース ページ上部へ戻る