サブネットマスク・サブネットの計算、こうやって乗り越えた【CCNA】計算編

CCNA学習

サブネットマスク・サブネットの計算、こうやって乗り越えた【計算編】

CCNAの学習を始めてから、いちばん長く足止めを食らったのがサブネットマスクとサブネットの計算でした。
ping-tの問題は解けるのに、「なぜこの数字になるのか」が自分の中で説明できない。答え合わせで正解していても、モヤモヤが残る状態がしばらく続きました。

こんにちは、ハチイチです。

この記事は、40代からネットワーク学習のためにCCNA資格取得をめざす学習ブログです。初心者の目線で、学習で学んだ「つまずき」や「気づき」を書いています。

結論:ブロックサイズさえ覚えれば、暗算でできる

先に結論を書きます。この記事を読み終える頃には、次のことができるようになります。

  • ブロックサイズを使って、暗算でサブネットの範囲を求められる
  • ネットワークアドレスとブロードキャストアドレスが存在する理由を、自分の言葉で説明できるようになる
  • 計算問題を、暗記ではなく仕組みから解けるようになる

一言でまとめると、サブネットの計算は 2 進数を毎回書かなくても、「ブロックサイズ」という数字を 1 つ覚えておくだけで暗算できるようになる、ということです。

私はこれに気づくまで、問題を見るたびに2進数に変換して、1ビットずつ数えていました。
時間もかかりますし、桁を数え間違えてしまうこともよくありました。ですが仕組みさえ理解してしまえば、足し算だけで解けることが分かり、一気に楽になります。

なぜ機器に設定できないIPがある?3種類のアドレスの役割分担

具体的な計算方法に入る前に、まず整理しておきたいことがあります。

1つのサブネットの中には、必ず次の3種類のアドレスが存在します。

種類役割端末に割り当てられる?
ネットワークアドレスそのサブネット全体の”名前”できない
ホストアドレスPCやルータなど、実際の機器に割り当てるIPできる
ブロードキャストアドレスそのサブネット内の全員宛ての送信先できない

私は最初、「なぜわざわざ”名前”のためだけにアドレスを1つ潰すのか」が納得できませんでした。ですが、ルータの動き方を知って、すんなり理解できました。
ルータは1台ずつのIPアドレスを覚えているわけではなく、「このサブネットはこの範囲です」という単位でルーティングしています。

配線工事をしていた頃も、電柱や設備には必ず管理番号が振られていました。
1本1本のケーブルの行き先とは別に、「このエリア全体」を指す番号が必要になる場面があるのと、考え方はよく似ています。

ネットワークアドレスは、まさにその”エリア全体の名前”にあたるものです。
逆に「このエリアの全員に一斉送信したいとき」に使うのがブロードキャストアドレスで、どちらも実際の機器には設定できませんが、区画を管理するためには欠かせない存在です。

プレフィックスが変わっても共通!ホスト部のビットが示す絶対ルール

ネットワークアドレスとブロードキャストアドレスは、2進数で見るとルールがはっきりします。
ここでいうホスト部とは、プレフィックス(ネットワーク部の長さ)で区切られた残りのビットのことで、機器の番号として使える部分です。

  • ホスト部が全部「0」→ ネットワークアドレス
  • ホスト部が全部「1」→ ブロードキャストアドレス

例えば、192.168.1.0/26 というサブネットを2進数で見るとこうなります。

ネットワークアドレス(ホスト部6ビットが全部0)
11000000.10101000.00000001.00|000000 (= 192.168.1.0)

ブロードキャストアドレス(ホスト部6ビットが全部1)
11000000.10101000.00000001.00|111111 (= 192.168.1.63)

/26 は第4オクテットの中で「上位2ビットがネットワーク部」「下位6ビットがホスト部」に分かれます。

ホスト部の6ビットが全部「000000」ならネットワークアドレス、全部「111111」ならブロードキャストアドレスになります。

このルールは、/24でも/27でも/30でも、プレフィックス(「/n」の部分)が何であっても変わりません。ホスト部のビット数が変わるだけで、考え方はすべて共通です。

道路の区画整理と同じ!「1区画の幅(ブロックサイズ)」で境界線を引く

とはいえ、毎回2進数を書き出すのは現実的ではありません。私が実際に使うようになったのは、「ブロックサイズ」という数字を使う方法です。

ブロックサイズとは、1つのサブネットが持つIPアドレスの個数のことです。

道路の区画整理をイメージすると分かりやすく、ブロックサイズは「1区画の幅」にあたります。
幅が32番地なら、0〜31番地、32〜63番地……というように、同じ幅で敷地が区切られていくイメージです。
この数字さえ分かれば、0から順にその数字を足していくだけで、すべてのサブネットの境目が分かります。

プレフィックスホスト部のビット数ブロックサイズ
/257ビット128
/266ビット64
/275ビット32
/284ビット16
/293ビット8
/302ビット4

ブロックサイズは「256 − サブネットマスクの値」でも求められます。
例えば/26なら、サブネットマスクの最後のオクテットが255.255.255.192なので、
256−192=64、という具合です。

実践!192.168.1.77/27の範囲を3つの手順でサクッと計算

ここからは、192.168.1.77/27という数字を例に、計算の流れを整理します。

手順は次の3つです。

  1. ブロックサイズ分だけ、0から数字を足していく
  2. ターゲットの数字がどの範囲に入るかを確認する
  3. その範囲の最初がネットワークアドレス、最後がブロードキャストアドレス

/27のブロックサイズは32なので、「0→32→64→96……」と32番地ずつ足していくことで区切り線が生成され、第4オクテットはこう区切られます。

サブネット番号ネットワークアドレスブロードキャストアドレスホスト範囲
0.0.31.1〜.30
1.32.63.33〜.62
2.64.95.65〜.94
3.96.127.97〜.126

「77」という数字は、64〜95の範囲に入ります。つまり、

  • ネットワークアドレス:192.168.1.64
  • ブロードキャストアドレス:192.168.1.95
  • 実際に機器に設定できる範囲:192.168.1.65〜192.168.1.94

になります。10進数だけ見ると「77」は大きな数字に見えますが、中身は「64というグループ+13という枠内の位置」が足し合わされているだけで、ネットワーク部を壊しているわけではありません。

消えたわけではない!ブロックごとにネットワークアドレスが変わる仕組み

ここで、私が一番混乱したポイントを書いておきます。

/24までは、ネットワークアドレスはずっと192.168.1.0で固定されていて、変わるのは第4オクテットの数字だけでした。
だから「ネットワークアドレス=いつも同じ、見えたまま」という感覚がありました。

ところが/27のようにサブネット化すると、この感覚が崩れます。/27ではネットワーク部が第4オクテット(8ビット)の中まで食い込んでくるため、ブロックが変わるたびにネットワークアドレスそのものが変わるからです。

実際に、8つのブロックすべてのネットワークアドレスを10進数と2進数で並べてみると、こうなります。

上位3ビット(ネットワーク部)が000〜111まで1つずつ増えるごとに、10進数のネットワークアドレスも0→32→64→…と32ずつ増えていきます。
下位5ビット(ホスト部)は、どのブロックのネットワークアドレスでも常に「00000」で共通です。

つまり、ネットワークアドレスが「消えた」わけではなく、「ブロックごとに違うネットワークアドレスを持つようになった」というのが正しい理解でした。

192.168.1.77は、この一覧の中の「.64〜.95」のブロックに属していて、そのネットワークアドレスが192.168.1.64になります。

つまずきポイント

ホスト数の「−2」を忘れる

サブネット内で実際に使える台数(ホスト数)を求めるとき、私は最初「32個ぜんぶ使える」と思い込んで間違えました。

正しくは、ホスト部のビット数をnとすると「2のn乗 − 2」です。先頭(ネットワークアドレス)と末尾(ブロードキャストアドレス)の2つは機器に割り当てられないので、必ず引く必要があります。/27の場合は、2の5乗−2=30台です。

「ゼロサブネット」の話は、今は気にしなくていい

学習を進める中で、「サブネット番号が0や最大値のものは、昔は使えなかった」という話を目にしました。
RFC(インターネットの技術仕様を定めた文書)では、今はどちらも使ってよいと明確にされていて、CCNAの計算でも「使える前提」で進めて問題ありません。

「昔そういう時代があった」という歴史として知っておく程度で十分そうです。

まとめ

サブネットの計算は、2進数を書かなくても「ブロックサイズ」を覚えるだけで暗算できます。

  • アドレスは必ず3種類ある
    • ネットワークアドレス:エリア全体の名前(ホスト部が全部0)
    • ホストアドレス:実際の機器に割り当てるIP
    • ブロードキャストアドレス:全員宛ての送信先(ホスト部が全部1)
  • ブロックサイズで境目が分かる
    • /26なら64、/27なら32などの数字を0から足していくだけで、サブネットの境目が決まる
  • ホスト数の計算は「−2」をする
    • 実際に使えるホスト数は「2のn乗 − 2」
    • ネットワークアドレスとブロードキャストアドレスは機器に設定できないため

次回(応用編)は、この計算がクラスA・B・Cとどう関係するのか、特に「クラスBをサブネット化すると、なぜ第3オクテットまで触れるようになるのか」を解説します。

タイトルとURLをコピーしました