サブネットマスクの計算方法|ネットワークアドレスと範囲の求め方

  • URLをコピーしました!
目次

はじめに

ネットワークの学習で最初につまずきやすいのが、サブネットマスクの計算です。「IP アドレスを 2 進数に変換して論理積(AND)をとる」といった解説で手が止まってしまうケースは少なくありません。

ただ、実務で必要なのは複雑な計算をその場で暗算することではなく、「IP アドレスとサブネットマスクがどういう関係なのか」というイメージと、必要なときに範囲を素早く求める手順を押さえておくことです。

この記事でわかること
  • IP アドレスとサブネットマスクの役割(住所と区画のイメージ)
  • 「/24」などの CIDR 表記の意味
  • ネットワークアドレス・ブロードキャストアドレス・使えるホスト範囲の求め方(2 進数を使わない手計算)
  • 必要なホスト数からサブネットを設計する手順
  • よく使うサブネットマスク早見表

IP アドレスは「住所」、サブネットマスクはその住所を「どこまでが共通エリアか」で区切る線にあたります。CIDR 表記(/24 など)は、その区切り位置を先頭からのビット数で表したものです。計算自体はツールに任せられますが、仕組みと求め方を理解しておくと、ネットワーク設計や障害の切り分けが速くなります。

まず、こちらのサブネット計算機を操作してみてください。スライダーを動かすと、ネットワークの範囲がどう変化するかを視覚的に確認できます。

サブネット計算機について

CIDR 対応の IP アドレス・サブネットマスク計算機です。スライダー操作で、ネットワークアドレス、ブロードキャストアドレス、ホスト範囲をリアルタイムに計算します。

/24/25 に動かすと、使えるホストの数が半分になります。「数字が変わるとネットワークの広さが変わる」という感覚をつかんでおくと、以降の理解がスムーズです。本記事では、このツールの裏側で起きている仕組みを、難しい数式を使わずに解説します。

IP アドレスは「住所」、サブネットマスクは「区画の広さ」

IP アドレスとサブネットマスクの関係は、よく「住所」に例えられます。まずはこのイメージで、それぞれの役割を整理します。

IP アドレスの正体(ネットワーク部とホスト部)

IP アドレス(例: 192.168.1.10)は、単なる数字の羅列ではありません。一つのアドレスの中で「グループを表す部分」と「個体を表す部分」の 2 つに分かれています。

ネットワーク部(グループ)は、現実世界でいう「〇〇県〇〇市」にあたる部分です。同じネットワークに所属するコンピューター同士は、この部分がすべて同じ数字になります。

ホスト部(個体)は、現実世界でいう「〇〇番地」にあたる部分です。そのネットワーク内で、個々のコンピューターを識別するための固有の番号です。

つまり IP アドレスとは、「どのエリア(ネットワーク部)の、何番目の場所(ホスト部)か」を表す情報といえます。

どこで区切るかを決めるのが「サブネットマスク」

では、192.168.1.10 という数字の、どこまでが「市(ネットワーク部)」で、どこからが「番地(ホスト部)」なのでしょうか。IP アドレスの数字を見ただけでは、その区切り位置はわかりません。

そこで登場するのが、区切り位置を指定するための値、サブネットマスクです。サブネットマスク(例: 255.255.255.0)は、次のルールを持っています。

  • 255 の部分: ここまでがネットワーク部(変更しない部分)
  • 0 の部分: ここからがホスト部(自由に使える部分)

例えばサブネットマスクが 255.255.255.0 の場合、IP アドレスの前半 3 つ(192.168.1)までがネットワーク部となり、最後の 1 つ(.10)がホスト部として扱われます。この区切り線の位置を変えることで、ネットワークの大きさ(収容できるホスト数)を調整するのが、サブネット設計の基本です。

「/24」や「CIDR」とは何か

ネットワークの設定画面や設計書で、192.168.1.1/24 のような表記を見かけることがあります。この末尾の /24 について解説します。

255…と書く代わりに「/(スラッシュ)」を使う

サブネットマスクを毎回 255.255.255.0 と書くのは、長いうえに読み間違いの原因にもなります。そこで使われるのが、CIDR(サイダー)表記と呼ばれる短縮記法です。

これは、「先頭から何ビット目までがネットワーク部(共通部分)か」を数字で表したものです。255.255.255.0 は、コンピューターの内部では「先頭から 24 個のビットが 1(有効)」という意味になります。そこで「先頭から 24 個分がネットワーク部」という意味で、IP アドレスの後ろに /24 と付けます。

255.255.255.0 と /24 は、表記が違うだけで同じ意味です。実務では、短く書ける /24 のほうが多く使われます。

数字が増えると「部屋」が減る

/24/25 に増えると、ネットワークも広くなるように見えますが、実際は逆です。CIDR の数字は、区切り線(壁)の位置を表していると考えてください。

数字が増える(/24/25)と、区切り線が右にずれます。ネットワーク部(変更不可のエリア)が広がり、その分ホスト部(自由に使える部屋)が狭くなります。

数字が減る(/24/23)と、区切り線が左にずれます。ホスト部が広がり、より多くのコンピューターを接続できます。

代表的な例は次のとおりです。

  • /24(標準): 最も一般的。254 個のホストが使えます。
  • /25(分割): 部屋を半分に区切った状態。126 個のホストが使えます。
  • /30(最小): 壁が限界まで迫った状態。使えるのは 2 個(ルーター同士の接続など)です。

数字が大きくなるほど、使える部屋(ホスト)は狭くなると覚えておくと整理しやすくなります。

サブネットマスクの計算方法(ネットワークアドレスと範囲の求め方)

ネットワークアドレス・ブロードキャストアドレス・使えるホスト範囲は、2 進数に変換しなくても求められます。ここでは現場でも試験対策でも使われるマジックナンバー法(ブロックサイズ法)を紹介します。

参考: PacketMentor — Subnetting “The network address and broadcast address cannot be assigned to a device.” (ネットワークアドレスとブロードキャストアドレスは、端末に割り当てられない) https://packetmentor.com/topics/subnetting/

マジックナンバー法の手順

次の 5 ステップで求められます。

  1. サブネットマスクを 10 進数(255.255.255.192 など)にする。
  2. 「区切りオクテット」を見つける。マスクの中で 255 でも 0 でもない最初のオクテットが該当する。
  3. ブロック幅を計算する。ブロック幅 = 256 −(区切りオクテットの値)
  4. 0 から始めてブロック幅の倍数を並べ、対象 IP が入るブロックの先頭値を求める。これがネットワークアドレス
  5. 次のブロック先頭から 1 を引いた値がブロードキャストアドレス。その 2 つに挟まれた範囲が、端末に割り当てられるホスト範囲。

計算例 1: 192.168.1.10/26(区切りが第 4 オクテット)

/26 はサブネットマスク 255.255.255.192 です。区切りオクテットは第 4 オクテットの 192 なので、ブロック幅は 256 − 192 = 64 になります。第 4 オクテットを 64 刻みで区切ると、次のようになります。

ブロック先頭アドレス範囲ブロードキャスト
0.0 〜 .63.63
64.64 〜 .127.127
128.128 〜 .191.191
192.192 〜 .255.255

192.168.1.10 の第 4 オクテットは 10 なので、先頭ブロック(0 〜 63)に入ります。結果は次のとおりです。

  • ネットワークアドレス: 192.168.1.0
  • ブロードキャストアドレス: 192.168.1.63
  • 使えるホスト範囲: 192.168.1.1 〜 192.168.1.62(62 個)

計算例 2: 172.16.45.200/21(オクテットをまたぐケース)

/21 はサブネットマスク 255.255.248.0 です。区切りオクテットは第 3 オクテットの 248 なので、ブロック幅は 256 − 248 = 8 になります。第 3 オクテットを 8 刻みで区切ると、0、8、16、24、32、40、48… と並びます。

172.16.45.200 の第 3 オクテットは 45 なので、40 〜 47 のブロックに入ります。結果は次のとおりです。

  • ネットワークアドレス: 172.16.40.0
  • ブロードキャストアドレス: 172.16.47.255
  • 使えるホスト範囲: 172.16.40.1 〜 172.16.47.254(2,046 個)

区切りが第 3 オクテットにある場合、その下の第 4 オクテットは 0 〜 255 をフルに使います。マスクが何オクテット目で区切れていても、手順そのものは同じです。

ホスト数の求め方

そのサブネットに収容できるホスト数は、ホスト部のビット数から計算します。

使えるホスト数 = 2 の(ホストビット数)乗 − 2

/26 ならホストビットは 32 − 26 = 6 ビットなので、2 の 6 乗 − 2 = 62 個です。末尾で 2 を引くのは、ネットワークアドレスとブロードキャストアドレスの 2 つが予約され、端末に割り当てられないためです(この -2 の例外となる /31/32 は後述します)。

補足: 論理積(AND)で何が起きているか

マジックナンバー法は、内部的には IP アドレスとサブネットマスクの論理積(AND 演算)を簡略化したものです。AND 演算では、両方のビットが 1 のときだけ結果が 1 になります。

例えば 192.168.1.10 の第 4 オクテット(10)と、/26 マスクの第 4 オクテット(192)を AND すると、次のようになります。

  00001010  (10)
& 11000000  (192)
-----------
  00000000  (0)

結果は 0 となり、ネットワークアドレスの第 4 オクテットが 0、つまり 192.168.1.0 と求まります。2 進数で計算しても、マジックナンバー法で求めても、得られる答えは同じです。仕組みを理解したうえで、実務では速いマジックナンバー法を使うのが現実的です。

よく使うサブネットマスク早見表

実務で頻出するパターンは、計算せずに表で確認できると設計や会話がスムーズになります。/31 は RFC 3021 にもとづき、ルーター間の P2P 接続で両アドレスをホストとして使える点が /30 との違いです。

CIDRサブネットマスクホスト数主な用途・備考
/32255.255.255.2551ループバック、特定ホスト指定(ホストルート)
/31255.255.255.2542ルーター間 P2P 接続(RFC 3021、両アドレス利用可)
/30255.255.255.2522ルーター間 P2P 接続(従来方式)
/29255.255.255.2486小規模な公開サーバーセグメントなど
/28255.255.255.24014部門ごとの小規模 LAN
/27255.255.255.22430部署単位のネットワーク
/26255.255.255.19262中規模なフロア LAN
/25255.255.255.128126/24 を半分に分割する場合
/24255.255.255.0254最も一般的な LAN 環境
/16255.255.0.065,534大規模な拠点・VPC など
/8255.0.0.0約 1,677 万クラス A プライベートネットワーク

/31/32 は、ホスト数の計算で -2 が当てはまらない特殊なケースです。/32 は単一ホストの指定に、/31 は P2P リンクに使われます。

サブネットマスクの制約と注意点

設計や障害対応で判断を誤らないために、サブネットマスクの制約を整理します。

参考: RFC 1918 — Address Allocation for Private Internets “172.16.0.0 – 172.31.255.255 (172.16/12 prefix)” (プライベート範囲は 172.16.0.0 〜 172.31.255.255 まで。172.168.x.x は含まれない) https://www.rfc-editor.org/rfc/rfc1918.html

ネットワークアドレスとブロードキャストアドレスは割り当てられない

各サブネットの先頭アドレス(ネットワークアドレス)と末尾アドレス(ブロードキャストアドレス)は、特定の役割のために予約されており、端末には割り当てられません。ホスト数の計算で -2 するのはこのためです。例えば /24 は 256 個のアドレスを持ちますが、端末に使えるのは 254 個になります。

サブネットマスクは連続した 1 でなければならない

サブネットマスクは、2 進数で見ると左から連続した 1 のあとに連続した 0 が続く並びでなければなりません。途中で 1 と 0 が入り混じる値は無効です。

このため、各オクテットに使える値は 0、128、192、224、240、248、252、254、255 の 9 種類に限られます。255.255.255.160(第 4 オクテットが 10100000)のような飛び飛びの値や中途半端な数値が出てこないのは、この制約があるためです。

/31 と /32 は特殊なケース

ホスト数の計算で -2 が当てはまらないのが /31/32 です。/32 は単一のホストを指す表記で、ループバックアドレスやホストルートの指定に使われます。/31 は RFC 3021 にもとづき、ルーター間の P2P リンクで 2 つのアドレスを両方ともホストとして使えます。

参考: RFC 3021 — Using 31-Bit Prefixes on IPv4 Point-to-Point Links “the two addresses above MUST be interpreted as host addresses” (上記の 2 アドレスは、ホストアドレスとして解釈しなければならない) https://www.rfc-editor.org/rfc/rfc3021

プライベート IP アドレスの範囲と「172」の落とし穴

社内ネットワークや VPC で使うプライベート IP アドレスは、RFC 1918 で次の 3 範囲が定められています。

範囲アドレス備考
10.0.0.0/810.0.0.0 〜 10.255.255.255大規模ネットワーク、クラウド VPC
172.16.0.0/12172.16.0.0 〜 172.31.255.255中規模、コンテナネットワーク等
192.168.0.0/16192.168.0.0 〜 192.168.255.255家庭用ルーター、小規模 LAN

注意したいのが 172 系の範囲です。プライベートなのは 172.16.0.0 〜 172.31.255.255 までで、172.168.x.x のようなアドレスはこの範囲外、つまり公開アドレス空間になります。192.168 との混同で 172.168 を私用と思い込むと、設計時の落とし穴になります。

また、拠点間 VPN を張る際に両側で同じ範囲(例: 192.168.1.0/24)を使っているとルーティングが曖昧になります。アドレス設計は接続する全ネットワークをまたいで重複しないよう計画することをおすすめします。

必要なホスト数からサブネットを設計する

実務では「この部署に端末が何台あるか」からサブネットの大きさを決めます。必要ホスト数から CIDR を逆算する手順は次のとおりです。

  1. 必要なホスト数に 2 を足す(ネットワークアドレスとブロードキャストアドレスの分)。
  2. その値以上になる最小の「2 の累乗」を求める。
  3. その累乗の指数がホストビット数となり、CIDR = 32 −(ホストビット数) で求まる。

具体例は次のとおりです。

  • 端末 50 台: 50 + 2 = 52 ≤ 64(2 の 6 乗)。ホストビットは 6、/26(利用可能 62 個)。
  • 端末 15 台: 15 + 2 = 17 ≤ 32(2 の 5 乗)。ホストビットは 5、/27(利用可能 30 個)。/28 は 14 個で不足します。
  • 端末 100 台: 100 + 2 = 102 ≤ 128(2 の 7 乗)。ホストビットは 7、/25(利用可能 126 個)。

将来の増設を見込み、必要数に 20〜30% 程度の余裕を持たせて設計しておくと、後からの再設計を避けやすくなります。VLAN ごとに 1 つのサブネットを割り当てる設計でも、この逆算がそのまま使えます。

サブネットマスクの不一致によるトラブル

同一セグメントに接続しているのにサブネットマスクが食い違っていると、互いを別ネットワークと誤認し、通信できない、あるいは片方向だけ届くといった症状が出ます。

例えば、ホスト A が 192.168.1.10/24、ホスト B が 192.168.1.130/25 だとします。A から見れば B は同じ 192.168.1.0/24 に属しますが、B から見ると自分の所属は 192.168.1.128/25 で、A(.10)は範囲外の別ネットワーク扱いになります。この食い違いにより、戻りの通信が成立しません。

通信不良の切り分けでは、IP アドレスだけでなくサブネットマスクの一致も確認することをおすすめします。Windows では ipconfig、Linux では ip addr で実際に設定されているマスクを突き合わせられます。

まとめ

IP アドレスは住所、サブネットマスクはその住所を区切る線にあたります。仕組みを押さえたうえでマジックナンバー法を使えば、ネットワークアドレスや範囲は 2 進数の計算なしで求められます。本記事の要点は次のとおりです。

  • IP アドレスは住所、サブネットマスクはその区切り線を示す。
  • CIDR 表記は先頭から数えたネットワーク部のビット数
  • ネットワークアドレスと範囲はマジックナンバー法で求める。
  • 使えるホスト数は 2 のホストビット乗から 2 を引いた値
  • サブネットマスクは左から連続した 1 で構成する必要がある。
  • プライベート範囲は 172.16〜172.31 まで、172.168 は対象外
  • マスクの不一致は同一セグメント内の通信不良の主因

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次