クラスBのサブネット化で第3オクテットが動く理由【CCNA】応用編

CCNA学習

クラスBのサブネット化で第3オクテットが動く理由【応用編】

クラスBの例を考えていたとき、「クラスBのアドレスに/24を適用すると、こうなります」と説明しようとして、うっかり192.168.0.0を例に使ってしまったことがあります。

192.168.0.0はクラスCなので、この説明はそもそも成立しません。

この自分の間違いがきっかけで、「同じプレフィックスでも、クラスによって意味がまったく違う」ということに気づきました。この記事では、その違いを整理していきます。

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

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

この記事で分かること

  • クラスCに/24を適用しても、何も変わらない理由が分かる
  • クラスBのアドレスをサブネット化すると、なぜ第3オクテットまでサブネット部になるのか計算できるようになる
  • /19や/22のような、オクテットの途中で区切られるプレフィックスも、計算編のブロックサイズ法でそのまま計算できるようになる

この記事で整理したいこと

前編で、クラスごとのデフォルトマスク(クラスA=/8、クラスB=/16、クラスC=/24)を整理しました。ここで気になったのが、「同じプレフィックスなのに、クラスによって触れる場所が違うのはなぜか」という点です。

なぜクラスCに「/24」を設定しても変化がないのか?

クラスCのデフォルトマスクは/24です。

つまり、「/24でサブネット化してください」と言われても、第1〜3オクテットが固定、第4オクテットがホスト部という構造は、最初から変わっていません。

クラスBに/24を適用すると、第3オクテットに何が起きるのか

クラスBのデフォルトマスクは/16です。

第1・第2オクテットが固定(ネットワーク部)、第3・第4オクテットがホスト部という構造になっています。

ここに/24を適用すると、デフォルトより右側にある8ビット(第3オクテットまるごと)を、ホスト部からネットワーク部(サブネット部)に借りることになります。

第3オクテットの全8ビットがネットワーク部になるので、サブネット数は2の8乗=256個、各サブネットのホスト数は2の8乗−2=254台になります。

プレフィックスで決まる「触れていい場所」の3つのルール

前編・計算編を通して整理できたルールは、次の3つです。

  • デフォルトのネットワーク部は触れない(固定)
  • デフォルトより右側のビットを借りて、サブネット部にする
  • サブネットマスクで0になっている部分がホスト部

このルールは、クラスA・B・Cのどれでも共通です。クラスが違うのは「デフォルトがどこまでか」だけで、そこから先の考え方は同じでした。

/24の先へ:第3オクテットの途中に仕切り線が入るパターン

/24の計算に慣れてきたところで、参考書や問題集には172.16.0.0/19や/22のような、オクテットの途中で区切られるプレフィックスがよく出てきます。

172.16.x.xは、前編で整理したクラスBのプライベートIP範囲(172.16.0.0/12)としてよく見かけるアドレスです。

最初は「/24のときと勝手が違う」と戸惑いましたが、考え方は同じで、計算編のブロックサイズ法をそのまま第3オクテットに当てはめるだけでした。

実践!172.16.70.0/19の範囲を5つの手順で暗算する

172.16.x.xはクラスBなので、デフォルトは/16です。/19は第3オクテットの中に仕切り線が入るプレフィックスです。

計算の手順は、次の通りです。

  1. 仕切り線があるオクテットを確認する
    /19は、第1・第2オクテット(16ビット)の次、第3オクテットの中に仕切り線がある
  2. ブロックサイズを求める
    /19のサブネットマスクは255.255.224.0なので、256−224=32
  3. 第3オクテットを32ずつ区切る
    0, 32, 64, 96……
  4. ターゲットの数字が入る範囲を確認する
    70は64〜95の範囲に入る
  5. ネットワークアドレスとブロードキャストアドレスを求める
    172.16.64.0〜172.16.95.255

暗算結果をダブルチェック!2進数の重み表で確認する

ブロックサイズの足し算だけでも答えは出ますが、念のため2進数の重み表でも確認してみます。

128  64  32  16  8  4  2  1
 0    1   0   0  0  1  1  0

「1」になっているのは「64」「4」「2」の3つなので、64+4+2=70です。

上位3ビット「010」は10進数で2にあたり、サブネット番号2(64〜95のブロック)に入ることが、この重み表からも確認できます。
ブロックサイズの計算と、答えが一致しました。

まとめると、こうなります。

  • ネットワークアドレス:172.16.64.0
  • ブロードキャストアドレス:172.16.95.255
  • 使用可能なホスト範囲:172.16.64.1〜172.16.95.254(8,190台)

つまずきポイント

クラスBの例のつもりで、クラスCのアドレスを使ってしまった

冒頭で書いた通り、クラスBの説明をするつもりで192.168.0.0を例に出してしまいました。
192.168.x.xは先頭が192〜223の範囲に入るので、クラスCです。

「よく見るプライベートIP」というだけで、クラスを確認せずに例に使ってしまったのが原因でした。
例を出すときは先頭の数字がどのクラスの範囲に入るか、一度確認するようにしています。

なぜ第3オクテットまで触れられるのか、最初はピンとこなかった

「/24なんだから、変更できるのは第4オクテットだけでは」と思い込んでいました。 これは、クラスCの場合はその通りなのですが、クラスBの場合は違います。

「デフォルトより右側だけ触れる」というルールに当てはめると、クラスBのデフォルトは/16なので、/24までの間(第3オクテット)はすべて触れる対象になる、と考えると整理できました。

ホスト数を、第3オクテットの残りビットだけで計算してしまった

/19の例では、変化している第3オクテットに意識が集中してしまい、第4オクテットの存在をうっかり忘れそうになりました。
第3オクテットの残り5ビットだけを見て「2の5乗−2=30台」と計算してしまうミスです。

  • 正しいホスト部のビット数:第3オクテット5ビット+第4オクテット8ビット=13ビット
  • 正しいホスト数:2の13乗−2=8,190台

ホスト部が2つのオクテットにまたがるケースでは、変化しているオクテットだけでなく、後ろのオクテットの8ビットも忘れずに合算する、という意識が必要でした。

プライベートIPでも、同じ考え方が使える

10.x.x.xはクラスA、172.16.x.xはクラスB、192.168.x.xはクラスCと、プライベートIPにも同じクラスの分類がそのまま当てはまります。
だからこそ、普段からよく触るアドレスであっても、基本に立ち返ってクラスを意識することが大切だと実感しました。

まとめ

  • クラスCへの/24適用は、デフォルトがすでに/24なので何も変わらない
  • クラスBへの/24適用は、第3オクテットがまるごとサブネット部になり、256個のサブネットができる
  • /19や/22のように第3オクテットの途中で区切られる場合も、ブロックサイズ法で同じように計算できる
  • 2進数の重み表でも、ブロックサイズの計算と同じ答えを確認できる
  • ホスト部が2つのオクテットにまたがるときは、ビット数を合計してから計算する

これで、サブネットマスク・サブネット・クラスの基礎から計算、応用まで一通り整理できました。

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