ネットワークエンジニア研修の教材として、IPアドレスとサブネットの計算をまとめます。CCNA の範囲で最初につまずくのがここで、しかも現場に出てから毎日使う知識です。座学・計算手順・自分のPCでできるハンズオン・演習問題と解答・現場でのつまずき方の順で扱います。
この回で身につくこと
- IPアドレスとサブネットマスクを2進数で説明できる
- アドレスとプレフィックス長から、ネットワークアドレス・ブロードキャストアドレス・使えるホストの範囲を暗算で出せる
- 必要な台数から、割り当てるプレフィックス長を決められる
- 2つのアドレスが同じサブネットかどうかを判断できる
- 自分の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
この表示から、次を自分で言えるようにします。
- プレフィックス長は
/24 - ネットワークアドレスは
192.168.10.0、ブロードキャストは192.168.10.255 - このサブネットに置ける機器は最大254台
- ゲートウェイ
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 を触れる環境があれば ipcalc(dnf 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
演習問題
紙とペンだけで解いてください。解答は次の章です。
192.168.10.100/24のネットワークアドレス、ブロードキャストアドレス、使えるホストの範囲は?172.16.5.130/26について同じ3つを答えよ。10.1.1.200/28について同じ3つを答えよ。- サブネットマスク
255.255.255.240のプレフィックス長と、使えるホスト数は? /22のサブネットマスクと、使えるホスト数は?- 200台を収容できる最小のプレフィックス長は?
192.168.1.0/24を4等分したときの、4つのネットワークアドレスは?192.168.100.35/27と192.168.100.60/27は同じサブネットか?/28の場合はどうか?- ルータ間の接続に使うプレフィックス長として適切なものは? その理由は?
- 【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倍程度が入るサイズを目安にします。