以前の記事で、IPアドレスについて紹介させて頂きました。
当記事ではIPアドレスの考え方の1つであるサブネットワークについてご紹介いたします。
サブネットワーク
クラスフルアドレスでは、ホスト部のビットを無駄にしてしまうという問題点があります。
例えばクラスCのアドレスでは、ネットワーク部に24ビット、ホスト部に8ビットが定義されていますが、これは1つのネットワークに、最大で254台のホストが所属することができることになります。
では、クラスCのアドレス192.168.1.0/24が割り当てられたネットワークで、30台以下のホスト(ルータ等含む)しか存在しないセグメントに分割したいとしたら、どのようにすればよいでしょうか。
これは、クラスフルネットワークをサブネットワークに分割(サブネット化)することで、要件を満たすことができるようになります。
例えば、192.168.1.1~192.168.1.30という30台のホストを1つのセグメントに所属させるとすると、下図のようにホスト部に8ビット定義されていても、実際には1つのセグメントではホスト部として5ビットあれば、ホスト30台分のアドレスをまかなうことができます。
そこで、ホスト部の残り上位3ビットを使用してサブネット化し、別セグメントを作ることができるようになります。
1つのネットワークをサブネット化し複数のネットワークを定義するには、ホスト部の上位未使用ビットを利用します。
上図のようにホスト部の上位3ビットをネットワーク部として定義した場合、下図のように8個のサブネットワークを作成することができます。
これまでのサブネット化を図で表現すると下図のようになります。
ここで注意しなければならないのは、サブネットワークまたはホストともに、すべてのビットが「0」であるものは「ネットワークアドレス」であり、すべてのビットが「1」であるアドレスは「ブロードキャストアドレス」であるため、使用することができないということです。 なお、すべてのビットが「0」のサブネットワークを、「サブネットゼロ」や「ゼロサブネット」と呼ぶことがあります。
ただし、現在ではアドレスの無駄をなくすため、これらのサブネットワークも利用可能となっていることがほとんどです。
サブネットの計算方法
「2^n-2」の式を使用することで、サブネット化の結果、分割されるサブネット数と、各サブネット内で使用可能なホスト数の算出をすることができます。
分割されるサブネット数を算出するには、「n」にホスト部からネットワーク部に移行したビット数を代入します。
各サブネット内で使用可能なホスト数を算出するには、「n」にホスト部に残っているビット数を代入します。
例えば、クラスCの192.168.1.0ネットワークにおいて、ホスト部上位3ビットをネットワーク部に移行してサブネットを作成した場合、いくつのサブネットが作成でき、それぞれのサブネットで何台のホストを定義することができるかは上記のようになります。
ここで、どちらも「-2」しているのは、ホスト部から移行したビット、またはホスト部のビットがすべて「0」、またはビットがすべて「1」となるアドレスは使用できないためです。
VLSM(可変長サブネットマスク)
これまで見てきたサブネット化は、同一のサブネットマスク長でネットワークを分割するものでした。
そのため、接続するホスト数に関係なく、全てのサブネットに対して同じ数だけIPアドレスを割り当てることになります。
しかし、下図のような専用線を使用しているネットワークでは、対向する2つのIPアドレスしか必要がなく、それ以外のアドレスは使用しないため、無駄が生じることになります。
VLSMは、ネットワークに接続されるホスト数に応じてサブネットを更に分割し、1つのクラスフルアドレスに対してサブネットマスク長の異なるネットワークを構築する方法です。
例えば、192.168.1.0/24というネットワークをVLSMで分割すると、下図のようになります。
ホスト部から更に3ビット借りた場合の組み合わせは、下図のようになります。サブネットマスク長はホスト部より、更に3ビット借りて延長されているので30ビットとなります。
上図の第4オクテットの2進数を10進数に変換すると、下図のネットワークアドレスが算出されます。これで「192.168.1.192/27」が更に8つのサブネットに分割されたことになります。
VLSMにより、192.168.1.0/24のネットワークは「/27のサブネットワークが5つ」と「/30のサブネットワークが8つ」に分割されたことになります。
VLSMでは、このようにしてサブネットを更に分割することで、IPアドレスをより有効に活用することを実現しています。
サブネットワークの考え方はIPアドレスを学ぶ上で必須な知識です。
ぜひお勉強の際にお役立て下さい。