VLSMにおけるサブネットの分割方法
下図のネットワークにおいて、「192.168.1.0/24」ネットワークをサブネット分割してIPアドレスを割り当てる方法を説明していきます。

上図で一番大きなネットワークは、ホスト数が60のネットワークです。
これを単純なサブネット分割で割り当てようとすると、ホスト数60のネットワークをサポートするために「/26」でサブネット分割することとなります。
分割されたサブネット数は、ホスト部から借りたビットが2ビットしかありませんので、22=4つ しかありません。
これでは、4つのLANにサブネットを割り当てるだけで、全てのIPアドレスを使い切ってしまい、ルータ間(WAN)に割り当てるサブネットがなくなってしまいます。
そこで、このネットワークのIPアドレスの割り当て要件を満たすには、VLSMで割り当ての計画を立てる必要があります。

VLSMの手順
「192.168.1.0/24」の範囲の中であれば、サブネットの範囲が重ならなければ、基本的に、どこからでもサブネットを割り当ててもかまいません。
先頭から割り当ててもかまいませんし、真ん中辺りから割り当ててもかまいません、もちろん、最後から割り当てても問題ありません。
ここでは、先頭から大きなサブネットを割り当ててゆく割り当て方を説明していきます。
必要なサブネットのサイズは、以下の通りです。
・60ホストのLAN A ・・・ 「/26」サブネット
・28ホストのLAN B ・・・ 「/27」サブネット
・12ホストのLAN C ・・・ 「/28」サブネット
・12ホストのLAN D ・・・ 「/28」サブネット
・WAN1(2ホスト) ・・・ 「/30」サブネット
・WAN2(2ホスト) ・・・ 「/30」サブネット
・WAN3(2ホスト) ・・・ 「/30」サブネット
第1~第3オクテットまでは、共通の番号なので第4オクテットだけに注目します。
①「/26」サブネットの割り当て
まず、一番大きい60ホストのLAN Aを割り当てます。
ホストビットに6ビット必要なので、先頭が「00」で始まる範囲を割り当てます。
00|000000 00|111111 |
「192.168.1.0/26」のサブネットを割り当てることができます。
範囲としては、「192.168.1.0」~「192.168.1.63」が割り当てられます。
②「/27」サブネットの割り当て
次に、二番目に大きい28ホストのLAN Bを割り当てます。
ホストビットに5ビット必要です。「00111111」の続きに割り当ててゆきます。
先頭が「00」で始まる範囲は、既に「192.168.1.0/26」で使用されています。
そこで、先頭が「010」で始まる範囲を割り当てます。
010|00000 010|11111 |
「192.168.1.64/27」のサブネットを割り当てることができます。
範囲としては、「192.168.1.64」~「192.168.1.95」が割り当てられます。
③「/28」サブネットの割り当て
次に、3番目に大きいLAN C、LAN Dの割り当ててゆきます。
先にLAN Cを割り当ててゆくこととします。
ホストビットに4ビット必要です。「01011111」の続きに割り当てていきます。
先頭が「010」で始まる範囲は、既に「192.168.1.64/27」で使用されています。
そこで、先頭が「0110」で始まる範囲を割り当てます。
0110|0000 0110|1111 |
「192.168.1.96/28」のサブネットを割り当てることができます。
範囲としては、「192.168.1.96」~「192.168.1.111」が割り当てられます。
次に、LAN Dの割り当ててゆきます。
ビットに4ビット必要です。「01101111」の続きに割り当てていきます。
先頭が「0110」で始まる範囲は、既に「192.168.1.96/28」で使用されています。
そこで、先頭が「0111」で始まる範囲を割り当てます。
0111|0000 0111|1111 |
「192.168.1.112/28」のサブネットを割り当てることができます。
範囲としては、「192.168.1.112」~「192.168.1.127」が割り当てられます。
④「/30」サブネットの割り当て
最後にWANリンクを3つ割り当てます。
ホストビットに2ビット必要です。「01111111」の続きに割り当てていきます。
先頭が「0111」で始まる範囲は、既に「192.168.1.112/28」で使用されています。
そこで、先頭が「100000」で始まる範囲を割り当てます。
100000|00 100000|11 |
「192.168.1.128/30」のサブネットを割り当てることができます。
範囲としては、「192.168.1.128」~「192.168.1.131」が割り当てられます。
同様に、残り2つWANリンクを割り当てると「192.168.1.132/30」、「192.168.1.136/30」をそれぞれ割り当てることができます。
⑤予備のサブネット
残りの範囲を重ならないように割り当ててゆくとWANリンクで1つ、LANの予備で3つ割り当てることができます。
・192.168.1.136/30 ・・・ WANの予備
・192.168.1.144/28 ・・・ LANの予備
・192.168.1.160/27 ・・・ LANの予備
・192.168.1.192/26 ・・・ LANの予備
このようにVLSMで割り当てることで、必要最小限のIPアドレスでIPアドレスを割り当てることができ、残りのIPアドレスで、将来の拡張用に残しておくことができます。
VLSMの分割における注意点
VLSMでは、「サブネットのサブネット」、「サブネットのサブネット」のサブネット、さらにまた、そのサブネットと、どんどん分割していくことができます。ただし、「/30」までで、分割をやめる必要があります。
なぜ、「/30」までで、分割をやめる必要があるのかを図を使って説明します。
「192.168.1.0/24」の分割を例に説明してゆきます。
「192.168.1.0/24」を4つにサブネット分割します。
分割してできた「192.168.1.192/26」をさらに8分割します。

そして、分割してできた「192.168.1.248/29」をさらに4分割します。

すると、「/31」サブネットが4つ出来上がりますが、このサブネットは利用できません。
「/31」サブネットの「192.168.1.248/31」は、「192.168.1.248」~「192.168.1.249」の2つのみで構成されることになります。
248(10進数) = 11|111|00|0 (2進数)
249(10進数) = 11|111|00|1 (2進数)
ホストビットが1ビットしか残らないため、「/31」サブネットでは、ホストビットが全て0のアドレスと、全て1のアドレスのみで構成されることになってしまうのです。
「/31」サブネットには、有効なホストアドレスがないことになります。
上記の理由から、VLSMにおけるサブネット分割は、「/30」までの分割に留めておく必要があります。
しかし、この場合も問題がないわけではありません。
例えば、「192.168.1.0/24」を4つにサブネット分割します。
分割してできた「192.168.1.192/26」をさらに4分割します。

そして、分割してできた「192.168.1.240/28」をさらに4分割します。

すると、「/30」サブネットが4つ出来上がります。
その中の例えば、「192.168.1.240/30」は、「192.168.1.240」~「192.168.1.243」の4つで構成されることになります。
240(10進数) = 11|11|00|00 (2進数) 241(10進数) = 11|11|00|01 (2進数) 242(10進数) = 11|11|00|10 (2進数) 243(10進数) = 11|11|00|11 (2進数) |
ホストビットが2ビットしか残らないため、「/30」はサブネットでは、ホストビットが全て0のアドレスと、全て1のアドレスを除くと2つのアドレスしか使用することができません。
つまり、「/30」サブネットでは、ホストアドレスとして利用できるアドレスの半分を失ってしまうこととなります。
もし仮に、「192.168.1.0/24」を全て「/30」のサブネットで分割した場合半分の128個のIPアドレスがホストアドレスとして利用できないことになります。