子網路遮罩(Netmask)

IP 是每台機器的地址。IPv4(Internet Protocol version 4)由 32 位元(4 x 8)的二進位數字(0 或 1)組成,如:11000000.10101000.11111111.00000000。為方便讀取,IP 常被轉換成十進位的方式表示,如:192.168.255.0。

IPv4 能產生近 43 億種組合,但仍不敷使用,而子網遮罩就是其中一種解方,方便我們可以切分出更多 IP 重複使用。

以 172.16.17.0/24 為例,其轉成二進位為:

10101100.00010000.00010001.00000000/24

💡
十進位轉成二進位的方式,以 172 為例:
172/2= 86,餘數為 0
86/2= 43,餘數為 0
43/2= 21,餘數為 1
21/2= 10,餘數為 1
10/2= 5,餘數為 0
5/2= 2,餘數為 1
2/2= 1,餘數為 0
1/2= 0,餘數為 1
由最下面的餘數往上讀,所以 172 的二進位表示是 10101100

後面的「/24」表示第 1-24 位都被遮住,第 25 位開始才可以有 0 和 1 的變化。

範例 IP / 子網路遮罩 /24

沒有被遮住的第 25-32 位,每個位數都可以有 0 或 1 的變化,

如此一來會有 2*2*2*2*2*2*2*2 = 256 種組合。

從 0 開始(含)計算,表示可以用的 IP 是 172.16.17.0 - 172.16.17.255。

範例 IP / 子網路遮罩 /24 的最小和最大值
💡
二進位轉成十進位的方式,以 11111111 為例:
1*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20
= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= 255

進階題一

172.16.17.16/30 可以用的 IP 有哪些呢?

先將 172.16.17.16/30 轉換成二進位 10101100.00010000.00010001.00010000/30。

/30 表示第 1-30 位都被遮住,第 31 位開始才可以有 0 和 1 的變化。

進階題一 IP / 子網路遮罩 /30

沒有被遮住的第 31-32 位,每個位數都可以有 0 或 1 的變化,

如此一來會有 2*2 = 4 種組合。

從 16 開始(含)計算,表示可以用的 IP 是 172.16.17.16 - 172.16.17.19。

進階題一 IP / 子網路遮罩 /30 的最小和最大值

進階題二

192.168.16.0/20 可以用的 IP 是 192.168.16.0/24 的幾倍?

先將 192.168.16.0/20 轉換成二進位 11000000.10101000.00010000.00000000/20。

/20 表示第 1-20 位都被遮住,第 21 位開始才可以有 0 和 1 的變化。

進階題二 IP / 子網路遮罩 /20

再看到 192.168.16.0/24,

/24 表示第 1-24 位都被遮住,第 25 位開始才可以有 0 和 1 的變化。

進階題一 IP / 子網路遮罩 /24

兩者差在第 21-24 位,/20 可以有 0 和 1 的變化,/24 則否,所以 /20 可用的 IP 是 /24 的 2*2*2*2 = 16 倍。