ネットワーク

ネットワーク研修 IPアドレスとサブネット計算

ネットワークエンジニア研修の教材として、IPアドレスとサブネットの計算をまとめます。CCNA の範囲で最初につまずくのがここで、しかも現場に出てから毎日使う知識です。座学・計算手順・自分のPCでできるハンズオン・演習問題と解答・現場でのつまずき方の順で扱います。

この回で身につくこと

  1. IPアドレスとサブネットマスクを2進数で説明できる
  2. アドレスとプレフィックス長から、ネットワークアドレス・ブロードキャストアドレス・使えるホストの範囲を暗算で出せる
  3. 必要な台数から、割り当てるプレフィックス長を決められる
  4. 2つのアドレスが同じサブネットかどうかを判断できる
  5. 自分のPCの設定を見て、どのサブネットに居るかを説明できる

前提/環境

  • 手を動かす環境: Windows 11 のコマンドプロンプト、または Linux(AlmaLinux 9 など)
  • 特別な機材は不要。自分のPC1台でできる範囲にしています
  • 例に使うアドレス: 192.168.10.0/24、172.16.0.0/16、10.0.0.0/8(すべてプライベートアドレス)

座学

IPアドレスは32bitの数字

IPv4 アドレスは32個の 0 と 1 の並びです。人が読みやすいように8bitずつ4つに区切り、10進数にして「.」でつないだものが、普段見ている表記です。

  192  .  168  .   10  .   50
  ↓       ↓        ↓       ↓
11000000.10101000.00001010.00110010

  8bit    8bit     8bit    8bit   = 32bit

  1オクテット(8bit)で表せるのは 0 〜 255

2進数と10進数の対応は、8bitの各桁の重みを覚えておけば計算できます。

  桁の重み  128  64  32  16   8   4   2   1
            ---------------------------------
  192   =    1   1   0   0    0   0   0   0    → 128 + 64
  168   =    1   0   1   0    1   0   0   0    → 128 + 32 + 8
  10    =    0   0   0   0    1   0   1   0    → 8 + 2
  255   =    1   1   1   1    1   1   1   1    → 全部立っている

サブネットマスクは「どこまでがネットワークか」の線引き

IPアドレスは前半がネットワーク部、後半がホスト部です。その境目を示すのがサブネットマスクで、1 が並んでいるところがネットワーク部です。

  IPアドレス    192.168.10.50
                11000000.10101000.00001010.00110010

  サブネットマスク 255.255.255.0
                11111111.11111111.11111111.00000000
                └────── ネットワーク部 ──────┘└ ホスト部 ┘

  プレフィックス長 = 1 の個数 = 24  → 192.168.10.50/24

「255.255.255.0」と「/24」は同じことを言っています。現場ではどちらの表記も出てくるので、両方読めるようにします。

  プレフィックス  サブネットマスク      ホスト部  使えるホスト数
  ------------------------------------------------------------
  /24             255.255.255.0          8bit         254
  /25             255.255.255.128        7bit         126
  /26             255.255.255.192        6bit          62
  /27             255.255.255.224        5bit          30
  /28             255.255.255.240        4bit          14
  /29             255.255.255.248        3bit           6
  /30             255.255.255.252        2bit           2
  /23             255.255.254.0          9bit         510
  /22             255.255.252.0         10bit        1022
  /16             255.255.0.0           16bit       65534

この表は暗記します。試験でも現場でも、毎回2進数に直していては間に合いません。

ネットワークアドレスとブロードキャストアドレス

1つのサブネットの中で、両端の2つは機器に付けられません。

  192.168.10.0/24 の場合

  192.168.10.0     ネットワークアドレス   ホスト部が全部 0
                   そのネットワーク自体を指す名前。機器には付けない
  192.168.10.1     ┐
       〜          │ 使えるアドレス(254個)
  192.168.10.254   ┘
  192.168.10.255   ブロードキャストアドレス ホスト部が全部 1
                   そのネットワーク全体への同報。機器には付けない

  使えるホスト数 = 2 の(ホスト部bit数)乗 − 2
                 = 2の8乗 − 2 = 254

クラスとCIDR

昔はアドレスの先頭でネットワーク部の長さが決まっていました(クラスフル)。現在はプレフィックス長を自由に決める CIDR が使われますが、用語としてクラスは残っているため覚えておきます。

  クラスは「先頭オクテットの値」で見分ける

  クラスA   先頭オクテット   1 〜 126   既定 /8    ホスト部 24bit
  クラスB   先頭オクテット 128 〜 191   既定 /16   ホスト部 16bit
  クラスC   先頭オクテット 192 〜 223   既定 /24   ホスト部  8bit
  クラスD   先頭オクテット 224 〜 239   マルチキャスト
  クラスE   先頭オクテット 240 〜 255   実験用

  先頭オクテットが 127 のものはループバック(127.0.0.1 は自分自身)

プライベートアドレス

  10.0.0.0    〜 10.255.255.255     10.0.0.0/8
  172.16.0.0  〜 172.31.255.255     172.16.0.0/12   ← 172.16 〜 172.31 まで
  192.168.0.0 〜 192.168.255.255    192.168.0.0/16

  169.254.0.0/16 はリンクローカル。DHCPで取得できなかったときに
  自分で付けるアドレスなので、これが付いていたらDHCPを疑う

計算のやり方

手順1: ブロックの大きさを出す

2進数のAND演算をしなくても、ブロック単位で考えれば暗算できます。

  ブロックの大きさ = 256 − サブネットマスクの該当オクテットの値

  例: /26 → マスクは 255.255.255.192 → 256 − 192 = 64
      → 第4オクテットが 0, 64, 128, 192 で区切られる

  例: /28 → マスクは 255.255.255.240 → 256 − 240 = 16
      → 0, 16, 32, 48, 64, ... 240 で区切られる

手順2: 対象のアドレスがどのブロックに入るかを見る

  172.16.5.130/26 の場合

  ブロックの大きさ = 64
  区切り            0    64   128   192   (256)
                          ↑    ↑
                     130 はこの間 → 128 のブロック

  ネットワークアドレス      172.16.5.128
  ブロードキャストアドレス  172.16.5.191   (次の区切り 192 の1つ手前)
  使えるホスト              172.16.5.129 〜 172.16.5.190(62個)

手順3: 必要台数からプレフィックスを決める

  必要台数 → 「−2」してもまだ足りるサイズを選ぶ

  50台  → /26(62台)      ※ /27 は30台なので不足
  100台 → /25(126台)
  200台 → /24(254台)     ※ /25 は126台なので不足
  500台 → /23(510台)
  2台(ルータ間リンク) → /30(2台)

  注意: 台数はPCの数ではない。プリンタ、AP、ゲートウェイ、
        将来の増設分を含めて数える

手順4: 同じサブネットかどうかを判断する

2つのアドレスのネットワークアドレスを出して、同じなら同じサブネットです。異なれば、その間にはルータが必要です。

  192.168.100.35/27 と 192.168.100.60/27
    ブロック 32 → 区切りは 0, 32, 64, 96 ...
    35 → 32のブロック、60 → 32のブロック  → 同じサブネット

  192.168.100.35/28 と 192.168.100.60/28
    ブロック 16 → 区切りは 0, 16, 32, 48, 64 ...
    35 → 32のブロック、60 → 48のブロック  → 別のサブネット

ハンズオン

自分のPCがどのサブネットに居るかを読む

C:\> ipconfig /all

イーサネット アダプター イーサネット:
   IPv4 アドレス . . . . . . . . . . . .: 192.168.10.50(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: 192.168.10.1
   DHCP サーバー . . . . . . . . . . . .: 192.168.10.1

この表示から、次を自分で言えるようにします。

  1. プレフィックス長は /24
  2. ネットワークアドレスは 192.168.10.0、ブロードキャストは 192.168.10.255
  3. このサブネットに置ける機器は最大254台
  4. ゲートウェイ 192.168.10.1 は同じサブネットの中に居る(ここが違っていたら設定ミス)
$ ip -br addr
lo               UNKNOWN        127.0.0.1/8
ens192           UP             192.168.10.50/24

$ ip route
default via 192.168.10.1 dev ens192 proto static metric 100
192.168.10.0/24 dev ens192 proto kernel scope link src 192.168.10.50

Windowsの電卓で2進数とAND演算を確認する

計算の答え合わせには、Windows に最初から入っている電卓を使います。追加のインストールは不要です。

  電卓を開く → 左上のメニュー(三本線) → 「プログラマー」を選ぶ

  1) 左側の表示が DEC(10進数)になっていることを確認して 130 と入力
     → BIN の行に 1000 0010 と表示される
        これが 130 の2進数

  2) AND ボタンを押す

  3) 192 と入力して = を押す
     → 128

  つまり 130 AND 192 = 128
  172.16.5.130 を /26(マスク 255.255.255.192)でANDすると
  ネットワークアドレスは 172.16.5.128

この操作は、教科書に出てくる「IPアドレスとサブネットマスクのAND演算」そのものです。ブロック単位の暗算で出した答えと、電卓のAND演算の答えが一致することを、いくつかのアドレスで確かめてください。一致を自分の目で確認しておくと、暗算の手順を安心して使えるようになります。

  練習用(暗算 → 電卓の順で確認する)

  第4オクテット  マスク値   AND の答え   プレフィックス
  ---------------------------------------------------
      100          0            0            /24
      130        192          128            /26
      200        240          192            /28
       60        224           32            /27
      170        128          128            /25

2進数の表示を見ながらAND演算を追うと、「マスクの1が立っている桁だけが残る」という動きが目で見えます。ここが分かれば、サブネットの計算はもう暗記ではなくなります。

Linux を触れる環境があれば ipcalcdnf install -y ipcalc)でも同じ確認ができます。出力の項目名はバージョンによって変わります。

ブラウザで答え合わせをする

演習問題の答え合わせには、当サイトのサブネット計算機が使えます。インストールは不要で、スマートフォンでも動きます。

サブネット計算機を開く

アドレスとプレフィックス長を入れると、ネットワークアドレス・ブロードキャスト・使えるホストの範囲と台数が出ます。2進数の表示ではネットワーク部とホスト部が色分けされ、AND演算の様子もそのまま確認できます。分割やVLSMの割り当ても計算できるので、この先の演習でも使えます。

ただし、最初は必ず自分で計算してから開いてください。答えを見るために使うのではなく、自分の計算が合っているかを確かめるために使う道具です。

同じサブネットかどうかを実際に確かめる

C:\> ping 192.168.10.1
C:\> arp -a
インターフェイス: 192.168.10.50 --- 0x5
  インターネット アドレス      物理アドレス           種類
  192.168.10.1          xx-xx-xx-xx-xx-xx     動的

ARPテーブルに相手のMACアドレスが載るのは、同じサブネットの相手だけです。別サブネットの相手と通信するときに載るのは、ゲートウェイのMACアドレスです。ここが理解できると、L2とL3の役割分担が腑に落ちます。

C:\> tracert 192.168.20.10
  1     1 ms     1 ms     1 ms  192.168.10.1      ← ゲートウェイを経由している
  2     2 ms     1 ms     1 ms  192.168.20.10

演習問題

紙とペンだけで解いてください。解答は次の章です。

  1. 192.168.10.100/24 のネットワークアドレス、ブロードキャストアドレス、使えるホストの範囲は?
  2. 172.16.5.130/26 について同じ3つを答えよ。
  3. 10.1.1.200/28 について同じ3つを答えよ。
  4. サブネットマスク 255.255.255.240 のプレフィックス長と、使えるホスト数は?
  5. /22 のサブネットマスクと、使えるホスト数は?
  6. 200台を収容できる最小のプレフィックス長は?
  7. 192.168.1.0/24 を4等分したときの、4つのネットワークアドレスは?
  8. 192.168.100.35/27192.168.100.60/27 は同じサブネットか? /28 の場合はどうか?
  9. ルータ間の接続に使うプレフィックス長として適切なものは? その理由は?
  10. 【VLSM】192.168.0.0/24 を次の要件で分割せよ。拠点A 100台、拠点B 50台、拠点C 20台、ルータ間リンク3本。

解答と解説

1〜3

  1. 192.168.10.100/24
     ネットワーク      192.168.10.0
     ブロードキャスト  192.168.10.255
     ホスト範囲        192.168.10.1 〜 192.168.10.254(254台)

  2. 172.16.5.130/26   ブロック 64 → 区切り 0/64/128/192
     ネットワーク      172.16.5.128
     ブロードキャスト  172.16.5.191
     ホスト範囲        172.16.5.129 〜 172.16.5.190(62台)

  3. 10.1.1.200/28     ブロック 16 → 区切り ... 192/208
     ネットワーク      10.1.1.192
     ブロードキャスト  10.1.1.207
     ホスト範囲        10.1.1.193 〜 10.1.1.206(14台)

4〜6

  4. 255.255.255.240 → 240 は 11110000 なので 1 が4個
     24 + 4 = /28、ホスト部4bit → 2の4乗 − 2 = 14台

  5. /22 → 第3オクテットに 6bit → 255.255.252.0
     ホスト部 10bit → 2の10乗 − 2 = 1022台

  6. 200台 → /25 は126台で不足、/24 は254台で足りる → /24

7〜9

  7. 4等分 = 2bit 借りる → /24 + 2 = /26、ブロック 64
     192.168.1.0/26   (ホスト 1 〜 62)
     192.168.1.64/26  (ホスト 65 〜 126)
     192.168.1.128/26 (ホスト 129 〜 190)
     192.168.1.192/26 (ホスト 193 〜 254)

  8. /27 → ブロック 32。35 も 60 も 32〜63 の中 → 同じサブネット
     /28 → ブロック 16。35 は 32〜47、60 は 48〜63 → 別サブネット

  9. /30 が基本。使えるホストが2つで、ルータ2台にちょうど足りる。
     /24 を使ってもつながるが、252個のアドレスが無駄になる。
     機器が対応していれば /31 も使える(ネットワークアドレスと
     ブロードキャストアドレスを持たない特別な扱い、RFC 3021)。

10(VLSM)

大きいものから順に割り当てるのが鉄則です。小さいものから割り当てると、あとで大きなブロックが取れなくなります。

  必要数の大きい順に並べる
    拠点A 100台 → /25(126台)
    拠点B  50台 → /26(62台)
    拠点C  20台 → /27(30台)
    リンク  2台 → /30(2台)× 3本

  上から詰めていく
    拠点A       192.168.0.0/25     0   〜 127   ホスト 1 〜 126
    拠点B       192.168.0.128/26   128 〜 191   ホスト 129 〜 190
    拠点C       192.168.0.192/27   192 〜 223   ホスト 193 〜 222
    リンク1     192.168.0.224/30   224 〜 227   ホスト 225, 226
    リンク2     192.168.0.228/30   228 〜 231   ホスト 229, 230
    リンク3     192.168.0.232/30   232 〜 235   ホスト 233, 234
    未使用      192.168.0.236 〜 255(将来の増設用に残る)

現場でのつまずき方

ネットワークアドレスやブロードキャストを機器に付けてしまう

/24 ばかり扱っていると「.0 と .255 は使えない」と暗記してしまい、/26 の環境で 192.168.10.64(ネットワークアドレス)や 192.168.10.127(ブロードキャスト)を機器に割り当ててしまう事故が起きます。使えないのは「.0」と「.255」ではなく、そのサブネットの先頭と末尾です。

ゲートウェイが同じサブネットに居ない

  誤った設定例
    IPアドレス       192.168.10.50/26   → 範囲は 192.168.10.1 〜 62
    デフォルトGW     192.168.10.100     → 範囲外

  症状: 同じサブネット内の機器とは通信できるが、外に出られない

マスクだけを /24 から /26 に変更したときによく起こります。IPアドレスを設定したら、必ずゲートウェイが同じ範囲に入っているかを確認します。

マスク違いの機器を同居させる

  PC-A  192.168.10.10/24    → 相手を同じサブネットだと思っている
  PC-B  192.168.10.200/25   → 相手を別サブネットだと思っている

  結果: A から B へは直接 ARP を出すが、B から A への戻りは
        ゲートウェイへ向かう。片方向だけ通らない、という
        切り分けの難しい状態になる

ワイルドカードマスクと混同する

  サブネットマスク    255.255.255.0    ACLでは使わない
  ワイルドカードマスク  0.0.0.255      ACLやOSPFで使う(0と1が逆)

  Cisco の ACL では 0 の桁が「一致させる」の意味になる

DHCPスコープとサブネットの不一致

サブネットを /25 に分割したのに、DHCPの配布範囲が 192.168.10.1 〜 254 のままになっている、という設定漏れです。範囲の後半を引いた端末だけが通信できないという形で出るため、端末側を疑って時間を使いがちです。「特定の端末だけ繋がらない」ときは、配られたアドレスとサブネットの範囲を突き合わせます。

プライベートアドレスなら安全だと思い込む

プライベートアドレスはインターネットから直接ルーティングされないだけで、それ自体はセキュリティ機能ではありません。社内からの到達性は普通にあります。分離が必要ならVLANとACL、あるいはファイアウォールで区切ります。

設計時に増設分を見ていない

現在の台数ちょうどのサイズで切ると、機器が1台増えた時点で足りなくなります。サブネットの切り直しは、その配下の全機器のアドレス変更を伴う大きな作業です。設計時は、想定台数の2倍程度が入るサイズを目安にします。

-ネットワーク
-, ,