LoginSignup
6
2

More than 1 year has passed since last update.

サブネットマスクの計算

Last updated at Posted at 2022-02-13

192.168.0.1/22

「/22」は 左から22個目までが2進数の「1」

11111111.11111111.11111100.00000000

IPアドレスはネットワーク部とホスト部から構成される
IPアドレスのネットワーク部を表すビット部分が1になり、ホスト部を表すビット部分が0になる。

192.168.0.1を2進数で表すと

11000000.10101000.00000000.00000001

開始IPを求める

開始IPを求めるときは上記2つをANDで計算します。
論理積(AND) 0&0=0,0&1=0,1&0=0,1&1=1

11000000.10101000.00000000.00000001 <-- 192.168.0.1
11111111.11111111.11111100.00000000 <-- /22
------------------------------------
11000000.10101000.00000000.00000000 --> 192.168.0.0

11000000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+64+0+0+0+0+0+0=192
10101000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+0+32+0+8+0+0+0=168
00000000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 0+0+0+0+0+0+0+0=0
00000000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 0+0+0+0+0+0+0+0=0

終了IPを求める

終了IPを求めるときは上記2つをORで計算します。
論理和(OR) 0|0=0,0|1=1,1|0=1,1|1=1
ただし、サブネットマスクを反転させてから計算する必要があります。

11111111.11111111.11111100.00000000
↓
00000000.00000000.00000011.11111111
11000000.10101000.00000000.00000001 <-- 192.168.0.1
00000000.00000000.00000011.11111111 <-- /22の反転
------------------------------------
11000000.10101000.00000011.11111111 --> 192.168.3.255

11000000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+64+0+0+0+0+0+0=192
10101000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+0+32+0+8+0+0+0=168
00000000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 0+0+0+0+0+0+2+1=3
00000000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+64+32+16+8+4+2+1=255

(開始IP)192.168.0.0~(終了IP)192.168.3.255
IPアドレス数は256×4=1024個となります。

210.171.136.0/26

開始IPを求めるときは上記2つをANDで計算します。
論理積(AND) 0&0=0,0&1=0,1&0=0,1&1=1

11010010.10101011.10001000.00000000 <-- 210.171.136.0
11111111.11111111.11111111.11000000 <-- /26
------------------------------------
11010010.10101011.10001000.00000000 --> 210.171.136.0

11010010 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+64+0+16+0+0+2+0=210
10101011 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+0+32+0+8+0+2+1=171
10001000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+0+0+0+8+0+0+0=136
00000000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 0+0+0+0+0+0+0+0=0

終了IPを求めるときは上記2つをORで計算します。
論理和(OR) 0|0=0,0|1=1,1|0=1,1|1=1
ただし、サブネットマスクを反転させてから計算する必要があります。

11010010.10101011.10001000.00000000 <-- 210.171.136.0
00000000.00000000.00000000.00111111 <-- /26の反転
------------------------------------
11010010.10101011.10001000.00111111 --> 210.171.136.0

11010010 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+64+0+16+0+0+2+0=210
10101011 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+0+32+0+8+0+2+1=171
10001000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+0+0+0+8+0+0+0=136
00111111 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 0+0+32+16+8+4+2+1=63

(開始IP)210.171.136.0~(終了IP)210.171.136.63
IPアドレス数は64個となります。

ネットワークアドレスを求る。

IPアドレス:199.32.10.85
サブネットマスク:255.255.255.192

まずそれぞれを2進数に変換する。

IPアドレス:11000111 00100000 00001010 01010101
サブネットマスク:11111111 11111111 11111111 11000000

そしてこれらをAND演算する。
論理積(AND) 0&0=0,0&1=0,1&0=0,1&1=1

11000111 00100000 00001010 01010101 <-- 199.32.10.85
11111111 11111111 11111111 11000000 <-- 255.255.255.192
-------------------------------------
11000111 00100000 00001010 01000000 --> 192.32.10.64/26(ネットワークアドレス)

11000111 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 128+64+0+0+0+4+2+1=199
00100000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 0+0+32+0+0+0+0+0=32
00001010 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 0+0+0+0+8+0+2+0=10
01000000 --> 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 --> 0+64+0+0+0+0+0+0=64

ちなみに、クラスフルアドレスの場合は計算不要で簡単に求めることができる。
例えば、192.168.33.10というIPアドレスがあったとする。
192から始まるので、クラスCのIPアドレスということがわかり、ネットワーク部が24ビット分ということもわかる。ネットワークアドレスはホスト部のビットが全て0になるアドレスなので、192.168.33.0がネットワークアドレスになる。

11000000.10101000.00100001.00001010 <-- 192.168.33.10
11111111 11111111 11111111 00000000 <-- 255.255.255.0
-------------------------------------
11000000 10101000 00100001 00000000 --> 192.168.33.0/24(ネットワークアドレス)

クラス

クラス 先頭ビット列 アドレス範囲(10進数) ネットワークアドレス長 ホストアドレス長 割り当て可能なホスト数 補足
クラスA 0 0.0.0.0 ~ 127.255.255.255 8ビット 24ビット 16777214個 -
クラスB 10 128.0.0.0 ~ 191.255.255.255 16ビット 16ビット 65534個 -
クラスC 110 192.0.0.0 ~ 223.255.255.255 24ビット 8ビット 254個 -
クラスD 1110 224.0.0.0 ~ 239.255.255.255 - - - IPマルチキャスト用途
クラスE 1111 240.0.0.0 ~ 255.255.255.255 - - - 研究用途

クラスA

サブネットマスク IP数
/8 255.0.0.0 16,777,216
/9 255.128.0.0 8,388,608
/10 255.192.0.0 4,194,304
/11 255.224.0.0 2,097,152
/12 255.240.0.0 1,048,576
/13 255.248.0.0 524,288
/14 255.252.0.0 262,144
/15 255.254.0.0 131,072

クラスB

サブネットマスク IP数
/16 255.255.0.0 65,536
/17 255.255.128.0 32,768
/18 255.255.192.0 16,384
/19 255.255.224.0 8,192
/20 255.255.240.0 4,096
/21 255.255.248.0 2,048
/22 255.255.252.0 1,024
/23 255.255.254.0 512

クラスC

サブネットマスク IP数
/24 255.255.255.0 256
/25 255.255.255.128 128
/26 255.255.255.192 64
/27 255.255.255.224 32
/28 255.255.255.240 16
/29 255.255.255.248 8
/30 255.255.255.252 4
/31 255.255.255.254 2
/32 255.255.255.255 1

 参考資料

2進数・10進数・16進数の変換早見表

サブネットマスクの計算ってどうやるんだっけな?

IPアドレスの基礎知識

IPアドレスサブネットマスク早見表

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2