サブネットマスクが分かればサブネット内のIP数は既に分かっている
情報試験などで最初からサブネットマスクの値が与えられている場合、
その時点でそのサブネットマスクで構成される、
1サブネットワーク内のIPアドレス数(ステップ数)は、
単純な引き算で簡単に求められます。
サブネットマスクが分かればサブネット内のIP数は瞬殺
サブネットマスクとは、
ネットワーク内のネットワーク部とホスト部を任意のビット位置で分割し、
サブネットワークを構成するために利用される、
「255.255.255.0」などの形式の値です。
このサブネットマスクが問題などで出てきたら、
結構重要なヒントを与えてくれることになります。
これが分かっていると、
構成される1つのサブネットに含まれるIPアドレスの総数(*1)が分かるためです。
*1)厳密にはオクテットの位置によって、
総数ではなくIPアドレスのネットワーク分割のステップ数が分かります。
まずサブネットマスクの第四オクテット部分が、
0~255までの場合のIP数を一覧で見てみます。
※「1-3」は前半の3オクテットを示します。
※「4」は最後の第四オクテットを示します。
1-3 | 4 | サブネット内IP数 | ビットパターン |
---|---|---|---|
255.255.255. | 0 | 256 | 00000000 |
255.255.255. | 128 | 128 | 10000000 |
255.255.255. | 192 | 64 | 11000000 |
255.255.255. | 224 | 32 | 11100000 |
255.255.255. | 240 | 16 | 11110000 |
255.255.255. | 248 | 8 | 11111000 |
255.255.255. | 252 | 4 | 11111100 |
255.255.255. | 254 | 2 | 11111110 |
255.255.255. | 255 | 0 | 11111111 |
上記の表は別に珍しいものでもないでしょう。
では、以下の式で見てみましょう。
※「総IP数」は0~255までのIP数を示します。
※「第四オクテット値」はサブネットマスクの第四オクテットの値を示します。
総IP数 | 第四オクテット値 | サブネット内IP数 |
---|---|---|
256- | 0 | = 256 |
256- | 128 | = 128 |
256- | 192 | = 64 |
256- | 224 | = 32 |
256- | 240 | = 16 |
256- | 248 | = 8 |
256- | 252 | = 4 |
256- | 254 | = 2 |
256- | 255 | = 1 (*2) |
(*2)ここは本来0ですが2の0乗が1になる為ここでは1になっていますが、
「255」の場合は「ホストなしの0」です。
どのサブネットマスクも、256からサブネットマスクの値を引くと、
その値が、そのサブネットマスクで構成される、
1つのサブネットワーク内に存在するIPに一致します。
検証となぜそうなるのか?
どうしてそうなるのか?という部分ですが、
それはサブネットマスクのビットパターンを見るとわかります。
00000000 (0)
10000000 (128)
11000000 (192)
11100000 (224)
11110000 (240)
11111000 (248)
11111100 (252)
11111110 (254)
11111111 (255)
分かりきったビットパターンかと思います。
しかし、この後半に0が続くビットパターンに何か気づきませんか?
ネットワークIPアドレスのビットパターンと同じです。
(ホスト部がすべて0である)
サブネットマスクの(1オクテット内の)値は、
そのオクテットをサブネットワークに分割した際の、
最後のサブネットワークのネットワークIPアドレスの値に一致する
ということです。
検証
例として以下の例を考えます。
IPアドレス:192.168.0.0
サブネットマスク:255.255.255.240
この条件から構成されるネットワークをCIDRにすると、
192.168.0.0/28ですが、
このネットワークは、192.168.0.0/24のサブネットワークの1つです。
そこで、他のサブネットワークを確認します。
CIDRからその他のサブネットワークを確認するには以下が利用できます。
以下が192.168.0.0/24を「255.255.255.240(/28)」で、
サブネットワーク分割した際のサブネットワーク一覧です。
サブネットワークの場合でもルールは一緒で、
各CIDRのビットパターンは28桁目以降(ホスト部)は、
すべて「0」になっています。(後述)
ここで、着眼して欲しい点としては16行目です。
192.168.0.240/28「240」が出てきていますね。
そして、その最後の16個目のサブネットワークの、
IPアドレスの範囲は192.168.0.240 - 192.168.0.255になっています。
240~255(240を含む)で16個です。
これが「256-240=16」で、
1つのサブネットワークのIP数(ステップ数)が求まる理由です。
※第三オクテットなどではIP数にはなりません。
この場合IPのステップ数と解釈できます。
サブネットマスクのルールから見た場合
192.168.0.0/24をサブネットマスクを255.255.255.240で、
サブネットワーク化した場合の各ビットパターンを比較します。
赤は「/24」のネットワーク部
ピンクは255.255.255.240によってサブネット分割されたビット部
青は各サブネットワークのホストビット部
11000000.10101000.00000000.00000000(192.168.0.0)
11000000.10101000.00000000.00010000(192.168.0.16)
11000000.10101000.00000000.00100000(192.168.0.32)
11000000.10101000.00000000.00110000(192.168.0.48)
11000000.10101000.00000000.01000000(192.168.0.64)
11000000.10101000.00000000.01010000(192.168.0.80)
11000000.10101000.00000000.01100000(192.168.0.96)
11000000.10101000.00000000.01110000(192.168.0.112)
11000000.10101000.00000000.10000000(192.168.0.128)
11000000.10101000.00000000.10010000(192.168.0.144)
11000000.10101000.00000000.10100000(192.168.0.160)
11000000.10101000.00000000.10110000(192.168.0.176)
11000000.10101000.00000000.11000000(192.168.0.192)
11000000.10101000.00000000.11010000(192.168.0.208)
11000000.10101000.00000000.11100000(192.168.0.224)
11000000.10101000.00000000.11110000(192.168.0.240)
これはすべて「ネットワークIP」ですので、
ホストビット部はすべて0になっています。
各サブネットワーク内でホストIPを表現できる数は、
「0000」の4ビットです。
4ビットは、2の4乗の数を表現することができます。
2の4乗=16
結果、表現できるIP数が16個になります。
これまで求めた値と、一致しています。
そして、最下部の16行目の「192.168.0.240」は、
ビットパターンが「11110000」となっており、
サブネットワーク部のマスクビットが「1111」になった、
「ネットワークIPアドレス」になっています。
サブネットマスクの最後の値は、
そのオクテットで分割されたサブネットワークのうち、
最後のサブネットワークの「ネットワークIPアドレス」になります。
ですから、
256-240=16
で、サブネットワーク内のIP数が求まるということです。
さいごに
試験問題でサブネットマスクの値が「255」以外だと、
計算が面倒くさそうと、ちょっと気分が下がることもあるかもしれません。
しかし、サブネットマスクの値が出ていると、
むしろCIDR表記よりも直感的に計算がしやすくなります。
おまけですが、これが求まるということは、
任意のIPアドレスからの、
「ネットワークIPアドレス」の値が単純計算で求まります。
IPアドレス:192.168.0.56
サブネットマスク:192.168.0.240 のとき、
ネットワークIPアドレスを求めなさい。
そんな問題結構目にしますよね。
これも実は、瞬殺です。
本サイトで公開しているツールについては、
十分にテストは行っておりますが個人で作成している為、
潜在的なバグがないとは言い切れません。
その為、ツールを用いた結果については十分検証の上ご利用ください。
当サイトおよび、管理人は如何なる損害もその責を負いません。
当サイト内のコンテンツおよび画像において、
出典・引用の外部著作権者の明記がないものは、
すべて管理人による著作物です。
当サイトでご紹介しておりますコンテンツの著作権の放棄は致しません。
サイト内コンテンツを引用される際にはご連絡は不要です。
ただし、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
公開日:
最終更新日:2019/06/20