IPv6 子網路是由一個 128 位元地址與一個 0 到 128 之間的整數前綴長度所組成的配對來識別的,因此要找出一個 IPv6 子網路,需要將地址轉換為單一整數,套用該前綴長度的位元遮罩,然後回報產生的網路值以及它所涵蓋的第一個與最後一個數值地址。任何 IPv6 子網路解答中一定會出現的兩個數字是網路前綴(將所有主機位元清除後的輸入值)以及數值上限(將所有主機位元設為 1 後的網路值)。子網路中的地址數量恰好為 2^(128−prefix),因此一個 /64 包含 2⁶⁴ 個數值,而一個 /128 恰好包含一個。用手動方式計算很容易出錯,因為每個地址都有八個 16 位元的十六進位欄位,且計數可能會超出 IEEE-754 倍精度浮點數的精度;使用 BigInt 算術的本機瀏覽器工具則能在不捨入的情況下回傳精確的值。
對於一般的工程工作——例如為設定檔確認一個範圍、記錄一筆配置,或對同事的前綴計算做健全性檢查——只要理解輸入值與位元排列,該操作就是機械化的。本指南聚焦於這個搜尋背後的確切工作:將一個字面意義的 IPv6 地址與所選擇的前綴,轉換為標準網路、數值邊界以及精確的地址數量。

「找出 IPv6 子網路」實際上會回傳什麼
在 IPv6 中,「子網路」並不像 IPv4 那樣是一個獨立的點分十進位遮罩。它是一個地址搭配一個整數前綴長度的組合。根據 RFC 4291,地址由八個 16 位元的十六進位欄位組成,總計 128 位元,而前綴長度則是一個用來辨識網路部分的前導位元計數。剩下的位元稱為主機位元,用來辨識該前綴內部的個別地址。
當 IPv6 子網路計算工具處理一筆輸入時,它會回傳六項可供稽核的資訊:輸入文字的標準形式、網路前綴(將主機位元清除後的輸入值)、主機位元的數量、範圍中第一個數值地址、範圍中最後一個數值地址,以及範圍內地址的精確數量。以 RFC 4291 的範例地址 2001:0DB8:0:CD30:123:4567:89AB:CDEF 搭配前綴 60 來說,其網路為 2001:db8:0:cd30::/60,而最後一個地址為 2001:db8:0:cd3f:ffff:ffff:ffff:ffff。這個工具每次都遵循相同的演算法:解析文字、建立 128 位元整數、為網路清除主機位元、為上限設定主機位元,然後計算數量。
IPv6 子網路計算工具接受的輸入
只需要兩個輸入,不多不少。第一個是採用其慣用文字形式的 IPv6 地址。RFC 4291 允許兩種樣式:
- 完整展開式:八個十六進位欄位,每欄一至四個十六進位數字,以單冒號分隔,例如 2001:0DB8:0000:CD30:0123:4567:89AB:CDEF。
- 壓縮式:連續的全零欄位可以合併為單一個 ::,例如產生 2001:DB8:0:CD30:123:4567:89AB:CDEF。在同一段文字中只允許出現一次 ::。
第二個輸入是前綴長度,一個介於 0 到 128 之間(含頭尾)的整數。超出範圍的值會被拒絕。該工具不接受區域識別符號(例如 %eth0)或嵌入 IPv4 的點分十進位形式(例如 ::ffff:192.0.2.1);這兩種格式都需要額外的介面或混合地址上下文,因此會被拒絕而非被靜默解讀。方括號、埠號以及 URL 後綴必須在貼上地址之前先行去除。
如何逐步找出 IPv6 子網路範圍
與 IPv6 子網路計算工具 的互動刻意設計得很簡短。其結果可供稽核,讓你可以直接貼進操作手冊或提交訊息中而無需再做轉換。
- 貼上地址,可以採用完整展開式(八個欄位)或帶有一段 :: 的壓縮式。貼上之前,請先去除任何括號、埠號後綴或區域識別符號。
- 輸入前綴長度,一個介於 0 到 128 之間的整數。使用你實際想要計算子網路的前綴——例如 /48、/56、/64,或該範圍內的任何其他值。
- 選擇「計算子網路」。該頁面會在瀏覽器中本地執行解析、展開、遮罩與計數等運算。
- 比對標準輸入與你貼上的來源文字。這就是 RFC 5952 所規定的形式——小寫十六進位、每個欄位內部抑制前置零,以及將兩個或以上連續全零欄位中最長的一段替換為 ::。
- 讀取網路前綴、第一個數值地址、最後一個數值地址,以及精確的地址數量。複製你的文件或設定所需要的欄位。
- 獨立驗證結果,再將其套用至實際運作的系統。對於文件與規劃用途來說,標準文字加上範圍已經足夠。對於生產環境的變更,請在網路平台所支援的工具中再次核對該範圍。
解讀輸出:標準形式、網路、第一個、最後一個與數量
輸出的排版方式可讓每一列進行交叉核對。標準輸入是套用 RFC 5952 規則後你所貼上文字的樣貌:十六進位字母為小寫、每個 16 位元欄位內部的前置零被移除,而兩個或以上連續全零欄位中最長的一段會被壓縮為 ::。當兩個全零段長度相同時,以先出現者優先。單一的全零欄位永遠不會被壓縮,因為 RFC 建議僅壓縮兩個或以上的連續段。透過查看這一行,你可以確認剖析器正確讀取了你的輸入,再來信賴這些數字。
網路前綴是將主機位元——也就是前綴長度之後的所有位元——設為零後的標準地址。第一個數值地址等於網路前綴。最後一個數值地址則是將每個主機位元設為 1 後的網路前綴。地址數量恰好為主機位元數的 2 的冪次,會以瀏覽器 BigInt 計算出的十進位整數顯示,因此即使是最大的前綴也不會失去精度。
「第一個」與「最後一個」的標籤刻意採用數值。IPv6 並未像 IPv4 那樣定義廣播地址,因此這個上限並不會被標示為廣播,也不應被視為廣播。它就是該前綴所涵蓋的封閉式範圍的頂端。
前綴長度比較:/0、/64、/128 以及介於其間的數值
有三個前綴長度涵蓋了最常被引用的參考點,值得熟記。產品合約明確定義了它們,因此表格中的數值是來自該工具自身定義的行為,而非另行以試算表計算所得。
| 前綴長度 | 主機位元 | 地址數量 | 用途 |
|---|---|---|---|
| /0 | 128 | 2¹²⁸(完整的 128 位元空間) | 預設路由的網羅;不用於實際配置 |
| /64 | 64 | 2⁶⁴ = 18,446,744,073,709,551,616 | 單一 LAN 區段與 SLAAC 的標準大小 |
| /128 | 0 | 1 | 單一主機路由、迴圈位址或任播地址 |
其他常見的長度則介於這些端點之間。/48 前綴廣泛用於站點配置,/56 在許多業者的政策中用於住宅客戶配置,而 /127 則用於僅需要兩個地址的點對點連結。對於任何前綴 p 而言,其數量恰好為 2^(128−p);如果你需要表格中未列出長度的對應數值,請以相同的地址搭配新的前綴執行 IPv6 子網路計算工具,並直接讀取「數量」那一行。
若讀者希望從前綴長度的角度取得相同計算的逐步示範,可以參考 如何找出 IPv6 前綴長度與範圍大小,從另一個面向切入。
純數值的子網路計算無法告訴你的事
前綴計算能告訴你的是給定地址與前綴長度所描述的數值範圍。它無法告訴你該前綴是否實際在使用、由誰擁有,或流量將如何流向它。RFC 5942 明確地將概念上的區分講清楚:地址配置與鏈路上前綴是兩回事。路由器、路由器公告中的前綴資訊選項、配置政策、業者規則、防火牆設定以及地址管理計畫,全都會決定運作行為,而這些都不是計算工具的輸入。
基於同樣的理由,本頁面並不會判定一個前綴是全域配置、保留、多播、任播或適合用於 SLAAC;它不會執行 WHOIS、DNS、BGP 或地理位置查詢;也不會聯繫裝置上的任何介面。這使得它適合用於文件範例、RFC 3849 文件前綴以及私人的規劃用途,但無法用來確認擁有權或可達性。請將其結果視為一項數值包含檢查,而非網路設定的建議。如果生產環境的變更依賴該輸出,請在網路平台所支援的工具中獨立驗證,並保留目前的設定以便回復。
關於本文所參考的根本性地址定址架構,請參閱 RFC 4291;關於上文所討論的鏈路上對比配置模型,請參閱 RFC 5942。