IP位址與子網路計算工具
輸入IP位址與前綴長度(或子網路遮罩),即可一次算出網路位址、廣播位址、可分配給主機的範圍與數量,以及萬用字元遮罩。位址與遮罩會以二進位並列,並以不同顏色區分網路部與主機部,方便確認以AND求出網路位址的原理。也能列出把網路分割為更小子網路時的清單、由所需主機數求出最小的子網路,並判斷私有位址等位址類型,適合在手算子網路計算題之後用來核對答案。
結果
- CIDR表示法
- –
- 網路位址
- –
- 廣播位址
- –
- 第一個主機位址
- –
- 最後一個主機位址
- –
- 可分配的主機數
- –
- 位址總數
- –
- 子網路遮罩
- –
- 萬用字元遮罩
- –
- 位址類型
- –
- 類別(參考)
- –
/31 不區分網路位址與廣播位址,2個位址都可分配給主機(RFC 3021,用於連接路由器之間的點對點線路)。/32 只表示1個位址,用於回送介面或主機路由。
以二進位檢視
網路部 主機部
子網路分割
由所需主機數求子網路
–
僅支援IPv4,可分配的主機數為扣除網路位址與廣播位址後的數量(/31 與 /32 例外)。
以圖表檢視
其他輸入維持目前的值,只讓選擇的輸入在目前值的 1/4 到 4 倍之間變化時的結果。紅點是目前的值。
網路位址與廣播位址的求法
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不必連續,也能用來只比對偶數位址。
練習網路題目
- A64個
- B30個
- 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。
- A192.168.10.95
- B192.168.10.127
- 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。
- A/24
- B/22
- 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沒有廣播位址,由群播負責這個角色。