IP位址與子網路計算工具

輸入IP位址與前綴長度(或子網路遮罩),即可一次算出網路位址、廣播位址、可分配給主機的範圍與數量,以及萬用字元遮罩。位址與遮罩會以二進位並列,並以不同顏色區分網路部與主機部,方便確認以AND求出網路位址的原理。也能列出把網路分割為更小子網路時的清單、由所需主機數求出最小的子網路,並判斷私有位址等位址類型,適合在手算子網路計算題之後用來核對答案。

輸入

結果

CIDR表示法
–
網路位址
–
廣播位址
–
第一個主機位址
–
最後一個主機位址
–
可分配的主機數
–
位址總數
–
子網路遮罩
–
萬用字元遮罩
–
位址類型
–
類別(參考)
–

以二進位檢視

網路部 主機部

子網路分割

由所需主機數求子網路

–

僅支援IPv4,可分配的主機數為扣除網路位址與廣播位址後的數量(/31 與 /32 例外)。

網路位址與廣播位址的求法

IPv4位址的32位元,分為開頭由前綴長度決定的 n 位元網路部,以及其餘的主機部。子網路遮罩是把網路部設為1、主機部設為0的值,將IP位址與子網路遮罩做逐位元AND,就能得到主機部為0的網路位址。以預設值 192.168.10.77/27 為例,第4個八位元組的77(0100 1101)與224(1110 0000)做AND得到64(0100 0000),因此網路位址為 192.168.10.64。把主機部的5個位元全部設為1,得到 64 + 31 = 95,廣播位址為 192.168.10.95。兩者之間的 192.168.10.65~192.168.10.94 共30個,是可分配給主機的位址;二進位顯示中以不同顏色區分網路部與主機部。

可分配的主機數,以及 /31 與 /32

前綴長度為 n 的子網路有 2^(32 − n) 個位址。其中主機部全為0的網路位址與全為1的廣播位址不能分配給設備,因此可用於主機的是 2^(32 − n) − 2 個:/27 為 2^5 − 2 = 30,/24 為 2^8 − 2 = 254。然而 /31 只有2個位址,依這個規則可用的位址會變成0個。RFC 3021規定,僅限於以一對一方式連接路由器的點對點線路,/31 的2個位址都可分配給主機,本工具也將 /31 的主機數計為2。/32 只表示1個位址,用於路由器的回送介面,或通往特定一台主機的路由(主機路由)。

子網路分割,以及由所需主機數選擇前綴長度

把前綴長度增加 k 位元,一個網路就會分為 2^k 個子網路,每個子網路的位址數變為原來的 1/2^k。例如把 192.168.10.0/24 分割為 /26,會得到從 .0、.64、.128、.192 開始的 2^2 = 4 個子網路,每個可容納 2^6 − 2 = 62 台主機。將IP位址設為 192.168.10.0、前綴長度設為 /24、分割後的前綴長度設為 /26,就能以清單確認4個子網路的主機範圍與廣播位址。反過來由所需主機數選擇時,要找出 2^(32 − n) − 2 不小於所需數量的最長前綴。若需要500台,/24(254台)不夠,/23(2^9 − 2 = 510台,遮罩 255.255.254.0)是最小的選擇。/23 從第3個八位元組為偶數的位置開始,例如 10.0.2.0/23 的範圍是 10.0.2.0~10.0.3.255。

私有位址與特殊用途的位址

RFC 1918的私有位址 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 可在家庭或組織內自由使用,要與網際網路通訊時,由路由器的NAT(NAPT)轉換為全球位址。100.64.0.0/10 是電信業者在電信級NAT(CGN)內側使用的共用位址空間(RFC 6598)。此外還規定了表示自己本身的回送位址(127.0.0.0/8)、部分作業系統在無法由DHCP取得位址時自行設定的連結本機位址(169.254.0.0/16)、群播(224.0.0.0/4),以及書籍與文件中作為範例使用的位址(192.0.2.0/24、198.51.100.0/24、203.0.113.0/24)等範圍。本工具顯示的 A~E 類別,是過去以開頭位元決定網路部長度之有類別(classful)方式的區分;現在以CIDR自由決定前綴長度,因此僅供參考。例如 192.168.10.77 屬於C類,但這裡是以 /27 而非 /24 來使用。

萬用字元遮罩

萬用字元遮罩(又稱反遮罩)是把子網路遮罩的0與1反轉後的值,可用255減去每個八位元組求得。/27 的遮罩 255.255.255.224,其萬用字元遮罩為 0.0.0.31。Cisco等廠牌的路由器在ACL(存取控制清單)與OSPF的設定中使用萬用字元遮罩,位元為1表示「不比對」,位元為0表示「必須相符」。例如寫成 192.168.10.64 0.0.0.31,就會比對 192.168.10.64~192.168.10.95 共32個位址。與子網路遮罩不同,ACL的萬用字元遮罩中的1不必連續,也能用來只比對偶數位址。

練習網路題目

在 192.168.5.0/26 的網路中,可以分配給主機(終端或路由器介面)的IP位址有幾個?

  1. A64個
  2. B30個
  3. C62個
查看答案與解析

正確答案:C. 62個

/26 表示網路部為26位元,因此主機部為 32 − 26 = 6 位元,位址共有 2^6 = 64 個。其中主機部全為0的網路位址(192.168.5.0)與全為1的廣播位址(192.168.5.63)不能分配給主機,因此為 64 − 2 = 62 個。一般而言,前綴長度為 n 時,可分配的數量為 2^(32 − n) − 2。/26 的子網路遮罩為 255.255.255.192。

某終端的IP位址為 192.168.10.77/27。它所屬子網路的廣播位址是下列何者?

  1. A192.168.10.95
  2. B192.168.10.127
  3. C192.168.10.255
查看答案與解析

正確答案:A. 192.168.10.95

/27 的主機部為 32 − 27 = 5 位元,因此一個子網路有 2^5 = 32 個位址,第4個八位元組以 0、32、64、96… 為區隔開始。77 位於 64~95 的範圍,因此網路位址為 192.168.10.64,主機部全為1的廣播位址為 64 + 32 − 1 = 95,即 192.168.10.95。可分配給主機的是 .65~.94 共30個。/27 的子網路遮罩為 255.255.255.224。

想在一個子網路中容納500台主機。能滿足此需求的子網路中,最小的(前綴長度最長的)是下列何者?

  1. A/24
  2. B/22
  3. C/23
查看答案與解析

正確答案:C. /23

前綴長度為 n 的子網路可容納的主機數為 2^(32 − n) − 2。/24 的主機部為8位元,2^8 − 2 = 254 台,不夠用。/23 的主機部為9位元,2^9 − 2 = 510 台,可以容納500台。/22 為 2^10 − 2 = 1022 台,雖然也能容納,但會用掉約需求兩倍的位址。/23 的子網路遮罩為 255.255.254.0,例如 10.0.2.0/23 的範圍是 10.0.2.0~10.0.3.255。

常見問題

要如何手算網路位址?

遮罩為255的八位元組維持原值,遮罩為0的八位元組設為0,只需處理兩者之間的那個八位元組。該八位元組的區塊大小為 256 −(遮罩的值),不超過IP位址該值的最大區塊倍數就是網路位址。以 192.168.10.77/27 為例,遮罩224的區塊大小為32,不超過77的最大32倍數是64,因此網路位址為 192.168.10.64,廣播位址為 64 + 32 − 1 = 95,即 192.168.10.95。

計算主機數時,為什麼要減2?

主機部全為0的位址是代表網路本身的網路位址,全為1的位址則作為送給子網路內所有設備的廣播位址,因此都不能分配給設備。所以 /24 可容納 256 − 2 = 254 台主機。此外,作為預設閘道的路由器位址,也是使用這254個中的一個。

子網路遮罩與CIDR表示法有什麼不同?

兩者都表示網路部的長度,內容相同。子網路遮罩像 255.255.255.224 這樣把32位元寫成4個十進位數字,CIDR表示法則像 /27 這樣只寫出1的個數。遮罩中的1一定從上位連續排列,因此兩者可以互相轉換,本工具的輸入也接受這兩種寫法。

/31 用在什麼地方?

用於以一對一方式連接兩台路由器的點對點線路。對方只有一台,因此不需要廣播位址,RFC 3021允許把2個位址都分配給介面。與使用 /30(4個位址、2台主機)相比,可以節省一半的位址。

也能計算IPv6位址嗎?

本工具僅支援IPv4。IPv6的位址為128位元,不使用子網路遮罩的寫法,而是像 2001:db8::/64 這樣以前綴長度表示。區域網路的子網路一般使用 /64,下位64位元作為介面識別碼,位址自動設定(SLAAC)也以這個 /64 為前提。此外,IPv6沒有廣播位址,由群播負責這個角色。

相關名詞

子網路遮罩 CIDR NAT(網路位址轉譯) 預設閘道 ARP DHCP VLAN OSI參考模型

相關計算工具

半導體、電子電路與資訊計算工具 →