什麼是子網路數量計算器?
當你把現有的 IPv4 網路切割成多個較小的網路時,會從位址的主機部分「借用」位元,用來標示子網路的識別碼。這個計算器能精準告訴你:當你把網路的前綴長度(CIDR 表示法,例如 /24)改成更長的前綴(例如 /28)時,總共會產生多少個子網路。它支援 /0 到 /32 之間的任何 IPv4 前綴。
使用方式
輸入網路的原始前綴長度(例如遮罩為 255.255.255.0 時填 24),再輸入你想切割到的新前綴長度(例如 28)。計算器會回傳子網路數量、借用的位元數、每個新子網路的位址總數,以及每個子網路可用的主機位址數。
公式解析
子網路數量其實就是 2 的「借用位元數」次方:
$$\text{借用位元數} = \text{新前綴} - \text{原始前綴}$$$$\text{子網路數} = 2^{\text{借用位元數}}$$
每多借一個位元,可用的子網路數量就會加倍。每個子網路的主機數則由剩餘的主機位元決定:\(2^{(32 - \text{新前綴})}\),再扣除 2(保留給網路位址與廣播位址)。
實例演練
假設你有一個 /24 網路,想切割成 /28。借用位元數為 \(28 - 24 = 4\),因此子網路數量為 \(2^4 = 16\) 個。每個 /28 子網路有 \(2^{(32-28)} = 2^4 = 16\) 個位址,扣掉 2 個後,每個子網路可用主機為 \(16 - 2 = 14\) 個。
常見問題
為什麼主機數要減 2?因為其中一個位址保留作為網路(子網路)位址,另一個作為廣播位址,這兩個都無法指派給主機使用。
如果新前綴比原始前綴還小怎麼辦?那其實是「超網路」(合併多個網路),所以本工具會把產生的子網路數顯示為 0——這個計算器只計算切割(細分)的情況。
/31 有可用主機嗎?依照傳統規則,/31 的可用主機數為 0(\(2 - 2\));不過 RFC 3021 允許點對點的 /31 連線同時使用這兩個位址。