Cisco / CCNA 200-301 v2.0

試験項目 1.3 · CCNA-011

Subnet Mask / CIDR Prefix

Subnet Mask, Network Bit, Host Bit, CIDR Prefix, Prefix-Mask Conversion, Contiguous Mask, Mask Mismatch

このページのゴール

Subnet MaskとCIDR Prefix Lengthを解釈・相互変換し、Maskの違いがNetwork/Host部分とSubnet認識へ与える影響を判断できるようにする。

このページで学ぶこと

  • Subnet Maskの役割
  • Network Bit
  • Host Bit
  • CIDR Prefix
  • Prefix / Mask変換
  • 連続Bit Mask
  • Mask Mismatch

Page010では、Cisco IOS インターフェースに設定されているIPv4アドレスとサブネットマスクを確認し、期待値との差を見つける方法を扱いました。

たとえば、

IPv4アドレス
192.0.2.10

サブネットマスク
255.255.255.0

という設定を確認できても、

255.255.255.0は何を意味するのか
/24とは何なのか
IPv4アドレスのどこまでがネットワーク部分なのか
どこからがホスト部分なのか

を理解していなければ、サブネットマスクが違うことで何が起こるのかまでは判断できません。

Page011では、

サブネットマスクとCIDRプレフィックス長を読める・変換できる・違いを解釈できる

状態を目指します。

ここではまだネットワークアドレスやブロードキャストアドレスそのものを計算しません。

まず、

IPv4アドレス
+
サブネットマスク

を見たときに、

どこまでがネットワークビットか
どこからがホストビットか
プレフィックス長はいくつか
マスクが正しい連続ビット構造か

を判断できるようにします。

1. サブネットマスクの役割

IPv4アドレスは32ビットで構成されています。

例:

192.0.2.10

しかしIPv4アドレスだけを見ても、その32ビットのうち、

どこまでをネットワークとして扱うのか
どこからをホストとして扱うのか

は決まりません。

その境界を示すのが、

サブネットマスク

です。

たとえば、

IPv4アドレス
192.0.2.10

サブネットマスク
255.255.255.0

という組み合わせでは、サブネットマスクによって、

ネットワークとして扱うビット
ホストとして扱うビット

が決まります。

つまりサブネットマスクは、

IPv4アドレスの32ビットをネットワーク部分とホスト部分へ分けて解釈するための情報

です。

2. サブネットマスクも32ビット

サブネットマスクもIPv4アドレスと同じく、

32ビット

です。

通常は8 ビットずつ4つのオクテットに分けて、

255.255.255.0

のようなドット付き10進表記形式で表示します。

たとえば、

255.255.255.0

を2進数で表すと、

11111111.11111111.11111111.00000000

です。

ここで、

1
→ ネットワーク側として扱うビット

0
→ ホスト側として扱うビット

と考えます。

したがって、

11111111.11111111.11111111.00000000

なら、

ネットワークビット
24 ビット

ホストビット
8 ビット

です。

3. ネットワークビットとは

サブネットマスクの、

1

になっている部分がネットワークビットです。

たとえば、

255.255.255.0

は、

11111111.11111111.11111111.00000000

なので、左から24 ビットがネットワークビットです。

イメージすると、

11111111.11111111.11111111 | 00000000
<-------- ネットワーク --------->   <- ホスト ->

です。

ネットワークビットがどのIPv4アドレス範囲を示すかについては、Page012でネットワークアドレス計算と組み合わせて扱います。

Page011ではまず、

マスクの1になっている部分がネットワーク側

と判断できれば十分です。

4. ホストビットとは

サブネットマスクの、

0

になっている部分がホストビットです。

先ほどの、

255.255.255.0

なら2進数は、

11111111.11111111.11111111.00000000

なので、

ホストビット
8 ビット

です。

つまり、

ネットワークビット
24

ホストビット
8

合計
32

になります。

IPv4アドレスは常に32ビットなので、

ネットワークビット数
+
ホストビット数
=
32

です。

この関係は、CIDRプレフィックス長を理解するとさらに簡単に扱えます。

5. CIDRプレフィックス長

サブネットマスクを、

/24

のように表す方法があります。

この、

/24

を、

プレフィックス長

と呼びます。

プレフィックス長は、

サブネットマスクで左から連続して1になっているビット数

を表します。

たとえば、

255.255.255.0

は2進数で、

11111111.11111111.11111111.00000000

です。

1が、

8 + 8 + 8
= 24 ビット

あるため、

/24

と表せます。

したがって、

255.255.255.0
=
/24

です。

6. CIDR表記でIPv4アドレスを書く

IPv4アドレスとプレフィックス長は、

192.0.2.10/24

のようにまとめて表すことができます。

これは、

IPv4アドレス
192.0.2.10

サブネットマスク
255.255.255.0

と同じマスク情報を表しています。

つまり、

192.0.2.10
255.255.255.0

と、

192.0.2.10/24

では、サブネットマスクに関して同じ意味になります。

Cisco IOSの出力でも、

Internet address is 192.0.2.10/24

のようにプレフィックス長形式を見ることがあります。

そのためCCNAでは、

ドット付き10進マスク
↕
CIDRプレフィックス長

を相互に読める必要があります。

7. 1 オクテットは8 ビット

プレフィックスとサブネットマスクを変換するためには、

1 オクテット = 8 ビット

を利用します。

サブネットマスクの各オクテットは、

8 ビット

なので、

255

は2進数では、

11111111

です。

つまり、

255
=
ネットワークビット 8個

になります。

したがって、

255.0.0.0

なら、

11111111.00000000.00000000.00000000

で、

/8

です。

同様に、

255.255.0.0

なら、

/16

、

255.255.255.0

なら、

/24

です。

8. オクテット途中で境界が来る場合

プレフィックス長は、

/8
/16
/24

のようにオクテット境界だけで区切られるとは限りません。

たとえば、

/25

では、最初の24 ビットに加えて、第4 オクテットの先頭1 ビットもネットワークビットになります。

2進数では、

11111111.11111111.11111111.10000000

です。

最後のオクテット、

10000000

を10進数にすると、

128

なので、

/25
=
255.255.255.128

です。

このように、プレフィックス長が8の倍数でない場合は、

オクテット内部のビット値

を読む必要があります。

9. オクテット内のビットの重み

8 ビットのオクテットは、左から、

128 64 32 16 8 4 2 1

という値を持っています。

2進数で、

11100000

なら、

128
+ 64
+ 32
= 224

です。

したがって、

11100000
=
224

になります。

サブネットマスクをプレフィックスへ変換するとき、このビットの重みを利用します。

10. サブネットマスクで使う代表的なオクテット値

サブネットマスクではネットワークビットの1が左から連続するため、途中のオクテットに現れる代表的な値は限られます。

ネットワークビット数 2進数 10進数
0 00000000 0
1 10000000 128
2 11000000 192
3 11100000 224
4 11110000 240
5 11111000 248
6 11111100 252
7 11111110 254
8 11111111 255

この対応を理解すると、

/26
/27
/28

なども変換できます。

ただし、ただ表を暗記するだけではなく、

128
64
32
16
8
4
2
1

というビットの重みから再現できるようにしておく方が安全です。

11. /26をサブネットマスクへ変換する

例として、

/26

を考えます。

最初の24 ビットは、

255.255.255

で表せます。

残りは、

26 - 24
= 2 ビット

です。

第4 オクテットで左から2 ビットを1にすると、

11000000

です。

10進数では、

128 + 64
= 192

になります。

したがって、

/26
=
255.255.255.192

です。

このPageでは、ネットワークアドレスまでは求めません。

ここで必要なのは、

プレフィックス長
↓
ネットワークビット数
↓
サブネットマスク

へ変換できることです。

12. /27をサブネットマスクへ変換する

次に、

/27

です。

最初の24 ビットは、

255.255.255

です。

第4 オクテットでネットワークビットは、

27 - 24
= 3 ビット

です。

2進数:

11100000

10進数:

128 + 64 + 32
= 224

したがって、

/27
=
255.255.255.224

です。

13. ドット付き10進マスクからプレフィックスへ変換する

逆方向も必要です。

たとえば、

255.255.255.240

を考えます。

最初の3 オクテットは、

255
255
255

なので、

8 + 8 + 8
= 24 ビット

です。

最後の、

240

は2進数で、

11110000

です。

ネットワークビットが4つなので、

24 + 4
= 28

です。

したがって、

255.255.255.240
=
/28

と判断できます。

14. /20のように第3 オクテットで境界が来る場合

プレフィックス変換では、

第4 オクテットだけを見る

癖を付けてはいけません。

たとえば、

/20

の場合、

最初の16 ビット
=
255.255

です。

残りのネットワークビットは、

20 - 16
= 4 ビット

なので、第3 オクテットは、

11110000
=
240

になります。

第4 オクテットはすべてホストビットなので、

0

です。

したがって、

/20
=
255.255.240.0

です。

プレフィックス長を、

何オクテット分が255になるか
+
次のオクテットで何ビットが1になるか

と考えると変換しやすくなります。

15. 有効なサブネットマスクでは1が左から連続する

通常のIPv4サブネットマスクでは、

ネットワークビットの1

が左から連続し、その後に、

ホストビットの0

が続きます。

例:

11111111.11111111.11111111.11000000

これは、

/26

で、正しい連続構造です。

一方、

11111111.11111111.11111111.10100000

では、

1
↓
0
↓
再び1

となっています。

これは通常のサブネットマスクとして使用する連続ビット構造ではありません。

したがって、サブネットマスクを見るときには、

1が左から連続しているか

も確認します。

16. 255.255.255.127が通常のサブネットマスクにならない理由

次の値を考えます。

255.255.255.127

最後のオクテット、

127

は2進数で、

01111111

です。

サブネットマスク全体では、

11111111.11111111.11111111.01111111

となります。

第4 オクテットで、

0

が現れた後に、

1

が続いています。

つまり、

11111111...11111111
↓
0
↓
1111111

という非連続構造です。

そのため、

255.255.255.127

を、

/何か

という通常のCIDRプレフィックス長へ変換することはできません。

プレフィックス長は、

左から連続する1の個数

だからです。

17. プレフィックス長からホストビット数を求める

IPv4アドレスは32ビットなので、

ホストビット数
=
32 - プレフィックス長

です。

たとえば、

/24

なら、

32 - 24
= 8

なので、

ホストビット
8 ビット

です。

/26なら、

32 - 26
= 6

なので、

ホストビット
6 ビット

です。

/20なら、

32 - 20
= 12

です。

この関係は今後、

ホスト収容数
サブネッティング

を考える基礎になります。

ただし、実際に何台のホストを収容できるかはPage013で扱います。

18. プレフィックスが長くなると何が変わるか

次の2つを比較します。

/24
/26

/24では、

ネットワークビット
24

ホストビット
8

です。

/26では、

ネットワークビット
26

ホストビット
6

です。

つまりプレフィックス長が長くなると、

ネットワークビット
増える

ホストビット
減る

という関係になります。

逆にプレフィックス長が短くなると、

ネットワークビット
減る

ホストビット
増える

ことになります。

Page011ではこの関係まで理解します。

それによって具体的なサブネット境界や収容可能ホスト数がどう変わるかは、後続Pageで扱います。

19. 同じIPv4アドレスでもマスクが違えば解釈が違う

ここがPage011のトラブルシューティングで重要な部分です。

次の2つを比較します。

機器 A

192.0.2.10/24

機器 B

192.0.2.10/25

IPv4アドレス部分は、

192.0.2.10

で同じです。

しかし、

/24

と、

/25

ではネットワークビットとホストビットの境界が異なります。

/24:

ネットワークビット
24

ホストビット
8

/25:

ネットワークビット
25

ホストビット
7

したがって、

IPv4アドレスが同じでもサブネットマスクが違えば、同じアドレス設定とは言えません。

20. マスクは「相手がローカルかリモートか」という判断にも関係する

IP機器は、自分のIPv4アドレスとサブネットマスクを使って、

通信相手を自分と同じサブネットとして扱うか
別のサブネットとして扱うか

を判断します。

概念的には、

自分のIPv4アドレス
+
自分のサブネットマスク
+
宛先IPv4アドレス
        ↓
同一サブネットか
リモートサブネットか

という判断につながります。

ここで機器ごとのマスクが意図せず異なっていると、

機器 A
→ 相手をローカルと判断

機器 B
→ 同じ相手をリモートと判断

のように、サブネットの認識が一致しないことがあります。

これが、

マスク不一致

で起こる重要な問題の1つです。

Page011ではこの原理までを扱います。

具体的にネットワークアドレスを求め、

本当に同一サブネットか

を計算する方法はPage012で扱います。

21. マスク不一致とは

マスク不一致は、同じリンクや本来同じサブネットとして設計された機器間などで、

期待されるサブネットマスク

と、

実際に使用されているサブネットマスク

が一致していない状態です。

たとえば設計上、

機器 A
192.0.2.10/24

機器 B
192.0.2.20/24

であるべきところ、

機器 A
192.0.2.10/24

機器 B
192.0.2.20/25

となっていたとします。

確認すべき差は、

機器 A
/24

機器 B
/25

です。

この時点で、

両機器のサブネット認識条件が一致していない

ことが分かります。

ただし、特定の宛先に対してどちらがローカル / リモートと判断するかを厳密に求めるにはネットワーク計算が必要です。

それはPage012へ分離します。

22. Page010の確認結果をPage011で解釈する

Page010では、たとえば次の設定を読み取りました。

interface GigabitEthernet0/0
 ip address 192.0.2.10 255.255.255.192

Page010で判断できたのは、

IPv4アドレス
192.0.2.10

サブネットマスク
255.255.255.192

です。

Page011では、さらに、

255.255.255.192
=
/26

ネットワークビット
26

ホストビット
6

と解釈できます。

つまりPage010とPage011は、

Page010
値を正確に取得する
        ↓
Page011
そのマスクの意味を読み解く

という関係です。

23. 例 1:プレフィックスからマスクを確認する

Cisco IOSの出力に、

Internet address is 192.0.2.10/27

と表示されたとします。

まず、

/27

なので、

ネットワークビット
27

です。

最初の24 ビットは、

255.255.255

です。

残り3 ビットは、

11100000

なので、

224

です。

したがって、

/27
=
255.255.255.224

と変換できます。

期待値が、

255.255.255.224

ならマスクは一致しています。

期待値が、

255.255.255.0

ならマスクは一致していません。

24. 例 2:マスクからプレフィックスを確認する

設定が、

ip address 198.51.100.10 255.255.248.0

だったとします。

最初の2 オクテット、

255.255

で16 ビットです。

第3 オクテットの、

248

は2進数で、

11111000

です。

1が5 ビットあるため、

16 + 5
= 21

です。

したがって、

255.255.248.0
=
/21

と判断できます。

ホストビット数は、

32 - 21
= 11

です。

ここでは、

ネットワークビット 21
ホストビット 11

まで判断します。

ネットワークアドレスやホスト範囲はまだ計算しません。

25. 例 3:期待プレフィックスとの不一致

設計上の期待値:

192.0.2.10/24

実際の出力:

Internet address is 192.0.2.10/25

IPv4アドレス部分は一致しています。

しかし、

期待値
/24

実際
/25

です。

変換すると、

期待値
255.255.255.0

実際
255.255.255.128

です。

したがって、

IPv4アドレス
一致

サブネットマスク
不一致

と判断できます。

Page010で確認した、

アドレス設定全体を見る

という考え方が、ここで具体的につながります。

26. 例 4:有効なマスクか確認する

次の値を確認したとします。

255.255.255.192

2進数:

11111111.11111111.11111111.11000000

1が左から連続しているため、

/26

として解釈できます。

一方、

255.255.255.127

なら、

11111111.11111111.11111111.01111111

です。

ネットワークビットの1が左から連続していません。

したがって、

通常の連続ビットサブネットマスクとして解釈できない

と判断できます。

単に各オクテットが、

0~255

に入っているだけでは、正しいサブネットマスクとは限りません。

27. よく使うプレフィックス / マスク対応

CCNAでサブネッティングを行う際には、次の対応を素早く読めると便利です。

プレフィックス サブネットマスク
/8 255.0.0.0
/16 255.255.0.0
/20 255.255.240.0
/21 255.255.248.0
/22 255.255.252.0
/23 255.255.254.0
/24 255.255.255.0
/25 255.255.255.128
/26 255.255.255.192
/27 255.255.255.224
/28 255.255.255.240
/29 255.255.255.248
/30 255.255.255.252

ただし、この表だけを暗記するのではなく、

255 = 8 ビット
254 = 7 ビット
252 = 6 ビット
248 = 5 ビット
240 = 4 ビット
224 = 3 ビット
192 = 2 ビット
128 = 1 ビット
0   = 0 ビット

という仕組みを理解しておくと、忘れても再計算できます。

/31や/32を含むプレフィックスの具体的な利用方法やホスト収容上の扱いは、ここでは深掘りしません。

28. プレフィックスを長い・短いで比較する

サブネットマスクを比較するときには、

より長いプレフィックス
より短いプレフィックス

という表現を使います。

例:

/26

は、

/24

よりプレフィックス長が長いマスクです。

これは、

/26
ネットワークビット 26

/24
ネットワークビット 24

だからです。

したがって、

プレフィックスが長い
=
ネットワークビットが多い
=
ホストビットが少ない

です。

逆に、

プレフィックスが短い
=
ネットワークビットが少ない
=
ホストビットが多い

です。

この関係を理解しておくと、後のサブネッティングで、

より細かくサブネットを分割する

という意味につながっていきます。

ただし、その具体的なサブネット数や境界計算はPage014で扱います。

29. トラブルシューティングではマスクだけを単独で見ない

たとえば、

255.255.255.192

というマスク自体は、有効な連続ビットマスクです。

しかし、それだけで、

この設定は正しい

とは言えません。

設計上、

/24

が必要なのに、

/26

になっていれば誤設定候補です。

逆に設計上、

/26

が必要なら、

255.255.255.192

は期待値と一致します。

したがってトラブルシューティングでは、

マスクが形式上有効か

と、

マスクが設計上正しいか

を分けて考えます。

30. Page011の確認フロー

サブネットマスク / CIDRプレフィックスに問題が疑われる場合は、次のように整理できます。

IPv4アドレス設定を確認
        ↓
サブネットマスクまたはプレフィックスを取得
        ↓
ドット付き10進表記か
プレフィックス長か
を確認
        ↓
必要なら相互変換
        ↓
ネットワークビット数を確認
        ↓
ホストビット数を確認
        ↓
1が左から連続する
有効なマスク構造か確認
        ↓
期待されるマスク / プレフィックスと比較
        ↓
一致
または
マスク不一致

ここでまだ、

ネットワークアドレスはいくつか
ブロードキャストアドレスはいくつか
何ホスト使えるか

までは計算しません。

まずマスクそのものを正しく解釈することがPage011の目的です。

31. Page011で判断できること

Page011までの知識で、次を判断できます。

判断1

255.255.255.0

→ /24

判断2

/27

→ 255.255.255.224

判断3

/26

→ ネットワークビット 26 / ホストビット 6

判断4

255.255.255.127

→ ネットワークビットが連続しないため、通常のサブネットマスクとして不正な構造

判断5

期待値 /24
実際 /25

→ マスク不一致

判断6

同じIPv4アドレス
異なるプレフィックス

→ 同じアドレス設定とは言えず、サブネット認識が異なる可能性がある

この6つを判断できれば、後続のネットワーク / ブロードキャスト/サブネッティング計算へ進む準備ができます。

32. Page011でまだ判断しないこと

Page011では、次の内容を主題にしません。

ネットワークアドレスの算出
ブロードキャストアドレスの算出
最初 / 最後のホスト
利用可能ホスト数
サブネット数
ブロックサイズによるサブネット境界
VLSMによるアドレス割り当て
ワイルドカードマスク
ルーティングテーブル上の最長プレフィックス一致(最長プレフィックス一致)

これらまで一度に扱うと、

サブネットマスクそのものを読む

という基礎と、

マスクを使ってアドレス範囲を計算する

という次段階が混ざります。

Page011では、

マスクを見てネットワーク部 / ホスト部のビットの境界を理解し、プレフィックスと相互変換できること

に集中します。

まとめ

サブネットマスクは、IPv4アドレスの32ビットについて、

ネットワークとして扱う部分
ホストとして扱う部分

の境界を示します。

基本は、

サブネットマスクの1
→ ネットワークビット

サブネットマスクの0
→ ホストビット

です。

CIDRプレフィックス長は、

左から連続するネットワークビットの1の個数

を、

/24
/26
/28

のように表します。

したがって、

255.255.255.0
=
/24

であり、

255.255.255.192
=
/26

です。

IPv4は32ビットなので、

ホストビット数
=
32 - プレフィックス長

で求められます。

また、通常のサブネットマスクは、

111111...111000...000

のように、ネットワークビットの1が左から連続します。

トラブルシューティングでは、

形式上有効なマスクか
↓
プレフィックス / マスクを正しく解釈
↓
期待値と比較
↓
マスク不一致があるか

という順序で確認します。

重要なのは、

同じIPv4アドレス
=
同じサブネット認識

とは限らないことです。

サブネットマスクが異なればネットワークビットとホストビットの境界が変わり、機器がどのアドレスを同一サブネットとして扱うかにも影響します。

Page011では、このマスクの意味と相互変換までを確実にします。

次のPage012では、このサブネットマスクを実際にIPv4アドレスへ適用し、

ネットワークアドレス
ブロードキャストアドレス
ホストアドレス範囲

を求める方法へ進みます。

理解確認

このページの内容を11問で確認します。

理解確認11問へ →