基本情報のサブネットマスク計算|IPアドレスの範囲と使用可能台数の求め方
「/27」と書かれた瞬間に手が止まる。サブネットの問題だけは、毎回あてずっぽうで選んでいる。
IPアドレスの範囲や台数を聞かれて、どこから計算すればよいのか迷ったことはありませんか?
先に答えをお伝えします。サブネットマスクの計算は、ホスト部が何ビットあるかを数えれば解けます。
ホスト部が n ビットなら、アドレスの数は 2 の n 乗です。そのうち先頭がネットワークアドレス、末尾がブロードキャストアドレスなので、パソコンなどに割り当てられる台数は 2 の n 乗から 2 を引いた数になります。
この記事では、IPアドレスの仕組みから始めて、CIDR表記の読み方、範囲の求め方、使用可能台数の計算までを順に説明します。例題はすべてこの記事のために作ったもので、途中の式も省かずに書きます。
IPアドレスとサブネットマスクの基本¶
IPアドレスとは、ネットワークにつながった機器を区別するための番号です。基本情報で扱うIPv4のアドレスは32ビットで、8ビットずつ4つに区切り、「192.168.1.10」のように10進数で書きます。
ネットワーク部とホスト部¶
32ビットのアドレスは、前半と後半で役割が分かれています。前半はどのネットワークかを表すネットワーク部、後半はそのネットワークの中のどの機器かを表すホスト部です。
住所にたとえると分かりやすくなります。ネットワーク部は「〇〇町3丁目」のような地区の名前で、ホスト部はその地区の中の番地にあたります。
同じ地区に住む人どうしは直接行き来でき、別の地区へ行くときはルータという案内所を通る、という関係です。
ネットワーク部とホスト部の境目を示すのが、サブネットマスクです。サブネットマスクとは、ネットワーク部を1、ホスト部を0で表した32ビットの値のことです。
CIDR表記の読み方¶
サブネットマスクは、2通りの書き方をします。1つは「255.255.255.0」のような10進数の書き方、もう1つは「/24」のようにネットワーク部のビット数を書く方法です。
後者をCIDR(サイダー)表記と呼びます。
「192.168.1.10/24」なら、先頭の24ビットがネットワーク部、残りの8ビットがホスト部という意味です。ホスト部のビット数は、いつでも「32 − スラッシュの後ろの数」で求められます。
よく出てくる長さを、表にまとめておきます。最後の区切り(第4オクテット)だけが変わる範囲です。
オクテットとは、8ビットのまとまり1つのことです。
| CIDR | サブネットマスク | ホスト部のビット数 | アドレスの数 | 使用可能台数 |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 8 | 256 | 254 |
| /25 | 255.255.255.128 | 7 | 128 | 126 |
| /26 | 255.255.255.192 | 6 | 64 | 62 |
| /27 | 255.255.255.224 | 5 | 32 | 30 |
| /28 | 255.255.255.240 | 4 | 16 | 14 |
| /29 | 255.255.255.248 | 3 | 8 | 6 |
| /30 | 255.255.255.252 | 2 | 4 | 2 |
この表は丸暗記しなくても大丈夫です。ホスト部のビット数さえ分かれば、残りの列はすべて計算で出せます。
ネットワークアドレスとブロードキャストアドレス¶
範囲を求める問題では、2つの特別なアドレスが出てきます。どちらも機器には割り当てられないので、台数を数えるときに引く理由もここにあります。
2つの特別なアドレスの意味¶
ネットワークアドレスは、ホスト部がすべて0のアドレスです。そのネットワーク全体を指す名前のような役割で、個々の機器には使いません。
ブロードキャストアドレスは、ホスト部がすべて1のアドレスです。ブロードキャストとは、同じネットワーク内の全員に一度に送ることです。
このアドレスあてに送ると、ネットワーク内のすべての機器に届きます。
2つの違いを表で比べます。
| アドレス | ホスト部 | 役割 | 機器への割当て |
|---|---|---|---|
| ネットワークアドレス | すべて0 | ネットワーク全体を表す | しない |
| ブロードキャストアドレス | すべて1 | ネットワーク内の全員に送る | しない |
| ホストアドレス | 上の2つ以外 | 個々の機器を表す | する |
範囲の先頭がネットワークアドレス、末尾がブロードキャストアドレスです。その間に挟まれたアドレスが、機器に割り当てられる範囲になります。
2進数のANDで求める方法¶
ネットワークアドレスは、IPアドレスとサブネットマスクを1ビットずつAND(論理積)すれば求まります。ANDとは、両方が1のときだけ1になる計算です。
マスクが1の部分はそのまま残り、0の部分は0になります。
「192.168.10.70/27」で試してみましょう。/27のマスクは255.255.255.224です。
最初の3つの区切りはマスクが255(すべて1)なので、192.168.10 がそのまま残ります。計算が必要なのは第4オクテットだけです。
第4オクテットの計算を、ビットごとに並べます。
| 項目 | 10進数 | 2進数 |
|---|---|---|
| IPアドレス | 70 | 0100 0110 |
| サブネットマスク | 224 | 1110 0000 |
| AND の結果 | 64 | 0100 0000 |
70 は 64 + 4 + 2 なので、2進数では 0100 0110 です。マスクの 1 が立っている上位3ビットだけを残すと 0100 0000、つまり 64 になります。
ネットワークアドレスは 192.168.10.64 です。
ブロードキャストアドレスは、ホスト部の5ビットをすべて1にします。0100 0000 の下位5ビットを1にすると 0101 1111 で、10進数では 64 + 31 = 95 です。
ブロードキャストアドレスは 192.168.10.95 になります。
使用可能台数の求め方¶
台数の計算は、ホスト部のビット数から始めます。式は1つだけなので、意味と一緒に覚えましょう。
2のn乗から2を引く理由¶
ホスト部が n ビットあると、0と1の組み合わせは 2 の n 乗通りできます。これがそのネットワークにあるアドレスの総数です。
そのうち、ホスト部がすべて0のネットワークアドレスと、すべて1のブロードキャストアドレスは機器に使えません。だから、使用可能台数は 2 の n 乗 − 2 になります。
/27 の場合、ホスト部は 32 − 27 = 5 ビットです。2 の 5 乗は 32 なので、使用可能台数は 32 − 2 = 30 台です。
先ほどの例でいえば、192.168.10.65 から 192.168.10.94 までの30個が機器に割り当てられます。
ブロック単位で数える近道¶
2進数に直さなくても、範囲を素早く求める方法があります。アドレスの数(2 の n 乗)を1つのブロックと考え、0から順にそのブロックの大きさで区切っていくやり方です。
/27 ならブロックの大きさは32です。第4オクテットは 0〜31、32〜63、64〜95、96〜127…と32ずつ区切られます。
70 は 64〜95 のブロックに入るので、先頭の 64 がネットワークアドレス、末尾の 95 がブロードキャストアドレスです。
ブロックの大きさは「256 − マスクの最後の数」でも求められます。255.255.255.224 なら 256 − 224 = 32 です。
マスクが10進数で書かれている問題では、こちらのほうが速く出せます。
例題で段階的に解いてみる¶
ここからは、自作の例題で手順を確かめます。どの問題も、次の4つの手順で解けます。
| 手順 | やること |
|---|---|
| 1 | ホスト部のビット数を求める(32 − CIDRの数) |
| 2 | ブロックの大きさ(2 のホスト部ビット数乗)を求める |
| 3 | IPアドレスが入るブロックを探し、先頭と末尾を求める |
| 4 | 使用可能台数(ブロックの大きさ − 2)を求める |
例題1:/24 の範囲と台数¶
問題 IPアドレス 192.168.1.10/24 が属するネットワークについて、ネットワークアドレス、ブロードキャストアドレス、使用可能台数を求めなさい。
ホスト部は 32 − 24 = 8 ビットです。第4オクテットがまるごとホスト部なので、ブロックの大きさは 2 の 8 乗 = 256、つまり 0〜255 がひとかたまりです。
ネットワークアドレスは 192.168.1.0、ブロードキャストアドレスは 192.168.1.255 になります。使用可能台数は 256 − 2 = 254 台です。
例題2:/25 で範囲が後半になる場合¶
問題 IPアドレス 172.16.5.130/25 が属するネットワークの範囲と、使用可能台数を求めなさい。
ホスト部は 32 − 25 = 7 ビットで、ブロックの大きさは 2 の 7 乗 = 128 です。第4オクテットは 0〜127 と 128〜255 の2つに分かれます。
130 は 128〜255 のブロックに入ります。ネットワークアドレスは 172.16.5.128、ブロードキャストアドレスは 172.16.5.255 です。
使用可能台数は 128 − 2 = 126 台で、範囲は 172.16.5.129 から 172.16.5.254 までになります。
例題3:必要な台数からマスクを決める¶
問題 1つのネットワークに50台の機器をつなぎたい。台数を満たすもののうち、ホスト部がもっとも短いサブネットマスクをCIDR表記で答えなさい。
今度は逆向きの問題です。2 の n 乗 − 2 が 50 以上になる、いちばん小さい n を探します。
n = 5 のとき、2 の 5 乗 − 2 = 32 − 2 = 30 台で、50台に足りません。n = 6 のとき、2 の 6 乗 − 2 = 64 − 2 = 62 台で、50台を満たします。
ホスト部は6ビット必要なので、ネットワーク部は 32 − 6 = 26 ビットです。答えは /26(255.255.255.192)になります。
ここで「2 を引く」のを忘れると、2 の 6 乗 = 64 だけを見て判断してしまいます。台数がぎりぎりの問題では結論が変わることがあるので、必ず引いてから比べましょう。
例題4:第3オクテットにまたがる場合¶
問題 IPアドレス 10.1.6.200/22 が属するネットワークの範囲と、使用可能台数を求めなさい。
ホスト部は 32 − 22 = 10 ビットです。第4オクテットの8ビットに加えて、第3オクテットの下位2ビットもホスト部になります。
第3オクテットだけを見ると、ホスト部は2ビットなので、ブロックの大きさは 2 の 2 乗 = 4 です。第3オクテットは 0〜3、4〜7、8〜11…と4ずつ区切られ、6 は 4〜7 のブロックに入ります。
ネットワークアドレスは、ホスト部をすべて0にした 10.1.4.0 です。ブロードキャストアドレスは、ホスト部をすべて1にした 10.1.7.255 になります。
使用可能台数は 2 の 10 乗 − 2 = 1024 − 2 = 1022 台です。
つまずきやすいポイントと確かめ方¶
計算の手順が分かっても、試験では細かいところで点を落としがちです。間違えやすい場面を表にまとめます。
| つまずき | 起こること | 確かめ方 |
|---|---|---|
| 2 を引き忘れる | 台数が2台多くなる | 「台数」「割り当てられる数」と聞かれたら必ず −2 |
| アドレスの数と台数を混同する | 32 と 30 を取り違える | 問題文が総数を聞いているか、機器の数を聞いているかを読む |
| ブロックの区切りを1から始める | 範囲が1ずれる | 区切りは必ず 0 から始める |
| 末尾を次のブロックの先頭にする | ブロードキャストが1大きくなる | 末尾は「次のブロックの先頭 − 1」 |
| /22 などで第4オクテットだけ見る | 範囲を小さく見積もる | 32 − CIDR が8を超えたら第3オクテットも見る |
求めた答えが合っているかは、簡単に確かめられます。ネットワークアドレスの最後の区切りが、ブロックの大きさで割り切れるかを見てください。
64 は 32 で割り切れるので /27 のネットワークアドレスとして正しく、70 は割り切れないので正しくありません。
ネットワーク分野の中で、どこにつまずきやすいかをもっと広く知りたい人は、こちらの記事が参考になります。
【関連記事】基本情報のネットワークが難しい人へ|つまずく場所と問題の解き方
サブネットの考え方が、DNSやルーティングとどうつながるのかを知ると、計算の意味がさらにはっきりします。
【関連記事】基本情報のネットワーク分野は実務でどう役立つ?IPアドレス・DNS・ルーティングのつながり
科目Bのセキュリティ問題とのつながり¶
サブネットの計算は科目Aの問題ですが、知識そのものは科目Bの情報セキュリティでも役に立ちます。科目Bでは、社内のネットワーク構成を図で示し、どこで通信を止めるべきかを考える問題が出ます。
たとえば、営業部が 192.168.10.64/27、経理部が 192.168.10.96/27 と書かれていれば、2つは別のネットワークだとすぐに読み取れます。範囲が読めると、ファイアウォールでどの範囲からの通信を許すのか、といった設問の意味も追いやすくなります。
科目Bの情報セキュリティをどう勉強するかは、親記事にまとめています。擬似言語との時間の分け方もあわせて確かめておきましょう。
【関連記事】基本情報 科目Bの情報セキュリティ対策|擬似言語との勉強時間の配分を解説
科目Aの計算問題をほかの分野も含めて見渡したい人には、こちらの記事が向いています。
【関連記事】基本情報の科目A計算問題まとめ|苦手になりやすい8分野と解き方の順番
私たちの Giji Academy のセキュリティ講座では、会社のネットワーク構成をシミュレーターに出しながら、科目Bの情報セキュリティの考え方を学べます。IPアドレスの範囲を読む力を、実際の構成図で試してみたい人はセキュリティ講座をのぞいてみてください。
無料会員でも一部の教材を使えます。
まとめ¶
サブネットマスクは、IPアドレスのネットワーク部とホスト部の境目を示す値です。CIDR表記の「/27」は、先頭27ビットがネットワーク部という意味で、ホスト部は 32 − 27 = 5 ビットになります。
範囲を求めるときは、ブロックの大きさ(2 のホスト部ビット数乗)で0から区切り、IPアドレスが入るブロックの先頭と末尾を探します。先頭がネットワークアドレス、末尾がブロードキャストアドレスで、使用可能台数はブロックの大きさから2を引いた数です。
手順は4つだけなので、何度か手を動かせば迷わなくなります。今日の例題を、答えを隠してもう一度解いてみてください。