2026年6月16日

2026年6月16日

FLSM の設計方法|固定長サブネットで分割する手順と計算例

FLSM(Fixed Length Subnet Mask、固定長サブネットマスク)の設計は、「必要なサブネットの数」と「最も多いサブネットのホスト数」の2つから、借りるビット数を決めるだけで進められます。すべてのサブネットが同じ大きさになるため、計算も運用も単純です。この記事では、FLSM で分割する手順を計算例つきで示し、条件を満たせない場合の判断、検算の方法、FLSM が向く場面と向かない場面を解説します。

FLSM とは

FLSM は、1つのネットワークを、すべて同じプレフィックス長のサブネットに分ける方式です。たとえば 192.168.10.0/24 を8つに分けると、すべて /27(32アドレス、ホスト30台)になります。

これに対して、サブネットごとに大きさを変えるのが VLSM(可変長サブネットマスク)です。VLSM のほうがアドレスの無駄は少なくなりますが、FLSM には次の利点があります。

  • 計算が一度で済み、サブネットの一覧を機械的に作れる
  • どのサブネットも同じ大きさなので、アドレスを見ただけで所属が分かりやすい
  • ファイアウォールや監視のルールを同じ形で書ける
  • サブネットを入れ替えたり追加したりしても、大きさの調整が要らない

部署ごとの VLAN、クラウドでアベイラビリティゾーンごとに作るサブネットなど、各セグメントの規模が近い環境では FLSM がよく合います。

設計の手順

手順1:要件を書き出す

最初に、次の3つを決めます。

  1. 分割元のネットワーク(例: 192.168.10.0/24)
  2. 必要なサブネットの数(将来増える分も含める)
  3. 最も多くのホストが入るサブネットの台数(将来の増加分も含める)

FLSM ではすべてのサブネットを最大の要件に合わせるため、3つ目は一番大きいサブネットだけを見れば足ります。ここで現在の台数だけを使うと、増設のたびに設計し直すことになるので、余裕を持たせた数字を使います。

手順2:借りるビット数を決める

サブネットの数 S を満たすには、ホスト部から n ビットを借りて、2 の n 乗が S 以上になるようにします。

  • 2 → 1ビット
  • 3〜4 → 2ビット
  • 5〜8 → 3ビット
  • 9〜16 → 4ビット

手順3:ホスト数が足りるか確かめる

残ったホスト部のビット数を h とすると、1つのサブネットで使えるホスト数は「2 の h 乗 − 2」です。2を引くのは、ネットワークアドレスとブロードキャストアドレスが使えないためです。この値が手順1の最大ホスト数以上なら、設計が成立します。

足りない場合は、サブネット数とホスト数の両方を同時には満たせません。後述する「条件を満たせないとき」の判断に進みます。

手順4:ブロックサイズからサブネットを並べる

新しいプレフィックス長は「元のプレフィックス長+借りたビット数」です。1つのサブネットのアドレス数(ブロックサイズ)は 2 の h 乗で、先頭から順にこの数ずつ足していくとサブネットの一覧になります。

計算例:6部署・各25台以下

要件は次のとおりとします。

  • 分割元: 192.168.10.0/24
  • 必要なサブネット: 6(部署ごと)
  • 最大ホスト数: 25台

サブネット6つには3ビットを借ります(2の3乗=8)。新しいプレフィックス長は 24+3=27 です。残りのホスト部は5ビットなので、使えるホスト数は 2の5乗−2=30台で、25台の要件を満たします。ブロックサイズは32です。

サブネット ネットワーク ホスト範囲 ブロードキャスト
1 192.168.10.0/27 .1〜.30 .31
2 192.168.10.32/27 .33〜.62 .63
3 192.168.10.64/27 .65〜.94 .95
4 192.168.10.96/27 .97〜.126 .127
5 192.168.10.128/27 .129〜.158 .159
6 192.168.10.160/27 .161〜.190 .191
7 192.168.10.192/27 .193〜.222 .223
8 192.168.10.224/27 .225〜.254 .255

6部署に1〜6を割り当て、7と8は予備として残します。ゲートウェイを各サブネットの先頭(.1、.33、.65…)にするなど、アドレスの使い方の規則も設計時に決めておくと、運用で迷いません。

計算を検算する

手計算の結果は、ツールで検算しておくと安心です。Python の標準ライブラリだけで一覧を出せます。

import ipaddress

base = ipaddress.ip_network("192.168.10.0/24")
for i, net in enumerate(base.subnets(new_prefix=27), start=1):
    hosts = list(net.hosts())
    print(i, net, hosts[0], "-", hosts[-1], "bc:", net.broadcast_address,
          "hosts:", len(hosts))

表と同じ8行が出力されれば、計算は合っています。subnets(prefixlen_diff=3) と書いても同じ結果になり、「何ビット借りるか」で考えたいときはこちらが分かりやすいでしょう。

条件を満たせないとき

要件を「10部署・各20台以下」に変えると、FLSM では /24 に収まりません。サブネット10個には4ビットが必要で /28 になりますが、ホスト部が4ビットしか残らず、使えるのは14台だけです。この場合の選択肢は次のとおりです。

  • 分割元を広げる: 192.168.10.0/23 などに広げれば、/27 を16個作れます。アドレスに余裕があるなら、これが最も単純です。
  • 要件を見直す: 将来分を多めに見込みすぎていないか、2つの部署を1つのサブネットにまとめられないかを確認します。
  • VLSM に切り替える: 部署ごとに台数の差が大きいなら、大きさを変えて切り分けるほうがアドレスを無駄にしません。

アドレス数に余裕がある社内のプライベート空間なら、FLSM の単純さを優先して分割元を広げるのが一般的な判断です。アドレスが限られる場面や、2台だけをつなぐ回線用のサブネットが多い構成では、VLSM のほうが合います。

FLSM 設計でつまずきやすい点

  • サブネットゼロの扱い: 先頭のサブネット(例の 192.168.10.0/27)は、古い機器や古い資料では使用しない前提になっていることがあります。現在の多くの機器では利用できますが、古い機器が混在する環境では仕様を確認します。
  • 将来分の見込み不足: 予備のサブネットを残さず全部を割り当てると、部署が1つ増えただけで再設計になります。
  • ホスト数の数え方: 2を引き忘れると、32台のつもりで設計して2台足りなくなります。クラウドのサブネットでは事業者が予約するアドレスもあり、AWS と Azure ではサブネットごとに5個が予約されると案内されています(2026年10月現在)。
  • 既存環境との重複: 分割元のネットワークが VPN 先や他拠点と重ならないかを、設計の前に確認します。

既存のネットワークを FLSM で切り直す場合は、機器の設定をバックアップし、検証環境で新しいアドレスでの通信を確かめてから、段階的に切り替えてください。

まとめ

  • FLSM はすべてのサブネットを同じ大きさで切る方式で、計算と運用が単純
  • 必要なサブネット数から借りるビット数を決め、残ったビットで最大ホスト数を満たせるかを確かめる
  • ブロックサイズずつ足していけばサブネットの一覧になり、Python の subnets() で検算できる
  • 条件を満たせないときは、分割元を広げる・要件を見直す・VLSM に切り替える、の順で検討する
  • 予備のサブネットとアドレスの使い方の規則を設計時に決めておく

お気軽にご相談ください

お見積りへ お問い合わせへ
▲