IPv6 前綴是 128 位元地址最左側的部分,用來識別該值中屬於網路的區段,以 CIDR 標記法寫成 address/prefix-length 的形式。以 /60 前綴來說,前 60 個位元定義網路,剩下的 68 個位元則供該範圍內的主機定址使用。計算前綴時,先把 IPv6 地址視為一個 128 位元的整數,套用一個位元遮罩,保留網路位元並清除所有主機位元,然後依照 RFC 5952 的標準文字格式輸出結果。你可以使用本機的瀏覽器計算機找出任何地址的 IPv6 前綴:以展開形式或一段雙冒號壓縮形式貼上地址,輸入 0 到 128 之間的前綴長度,工具就會回傳網路前綴、標準化輸入、數值上的第一個與最後一個地址、主機位元數,以及該範圍內精確的地址總數。以參考值 2001:0DB8:0:CD30:123:4567:89AB:CDEF 搭配前綴 60 為例,網路為 2001:db8:0:cd30::/60,數值上限為 2001:db8:0:cd3f:ffff:ffff:ffff:ffff。

IPv6 前綴實際代表的意義
IPv6 地址是一個 128 位元的值,根據 RFC 4291 中定義的定址架構,以八個以冒號分隔的 16 位元十六進位欄位呈現。前綴以位元為單位量測的長度,將該值切分為網路區段與主機區段。/64 是生產環境網路中最常見的界線,它將前 64 位元分配給網路,後 64 位元分配給主機介面識別碼。/128 僅包含一個地址,用來標示單一主機。/0 涵蓋整個 128 位元地址空間,包含所有可能的值。主機位元數永遠是 128 減去前綴長度,因此 /60 留下 68 個主機位元,/56 留下 72 個,/48 留下 80 個。前綴的地址總數是主機位元數的 2 次方,所以 /64 包含 2⁶⁴ 個數值,/128 包含一個。
由於位元並非在所有情況下都對齊 16 位元的欄位界線,前綴可能會切穿某個欄位。以 RFC 的範例來說,前 60 個位元包含前三個完整欄位(48 位元),再加上第四個欄位的前 12 位元。該第四個欄位中剩下的 4 位元,以及第五到第八欄位的全部位元,都屬於主機區段,在網路地址中會被清除為零,在數值上限中則會被設為一。
IPv6 前綴在 CIDR 標記法中的寫法
CIDR 標記法將前綴寫成「地址、一個斜線、前綴長度(以位元為單位)」,例如 2001:db8::/32 或 fe80::1/64。RFC 4291 允許抑制任何欄位中的前導零,並允許將一段兩個以上連續的零欄位以 :: 取代。RFC 5952 進一步規範輸出格式:十六進位字母使用小寫、每個欄位內的前導零必須移除、最長的一段兩個以上全為零的欄位會被壓縮,當兩段長度相同時以最先出現的那一段壓縮。單一零欄位絕不會被壓縮為 ::。計算機會套用這些規則,確保無論輸入如何鍵入,輸出都是穩定的標準化字串。
可接受的輸入形式是刻意加以限制的。解析器接受完全展開形式或僅含一段 :: 壓縮的純 IPv6 十六進位文字。它刻意拒絕區域識別碼(如 %eth0)以及嵌入 IPv4 的點分十進位形式(如 ::ffff:192.0.2.1),因為這些語法需要額外的介面或混合地址脈絡,否則只會被部分解讀。不建議使用像 [2001:db8::1] 這樣的方括號形式或連接埠後綴作為輸入。在不加上方括號、連接埠或後綴的情況下貼上地址,可讓計算過程保持乾淨且可預期。
| 前綴長度 | 主機位元 | 地址總數 | 典型用途 |
|---|---|---|---|
| /0 | 128 | 2¹²⁸ | 完整地址空間參考 |
| /48 | 80 | 2⁸⁰ | 站台分配,常見的 ISP 界線 |
| /56 | 72 | 2⁷² | 用戶委派前綴 |
| /60 | 68 | 2⁶⁸ | /56 之下的子前綴 |
| /64 | 64 | 2⁶⁴ | 標準 LAN 或 SLAAC 區段 |
| /128 | 0 | 1 | 單一主機迴圈或靜態標籤 |
三個步驟找出前綴
- 開啟 IPv6 子網路計算機,輸入完全展開形式(2001:0db8:cd30:0000:0000:0000:0000:0001)或一段雙冒號壓縮形式(2001:db8:cd30::1)的純 IPv6 地址。輸入時請不要加入區域識別碼、連接埠後綴或方括號。
- 輸入 0 到 128 之間的整數前綴長度,然後選擇計算動作。超出此範圍的值會被拒絕,因為在 128 位元地址空間中,短於 0 或長於 128 的前綴並無定義。
- 在使用結果撰寫文件或進行設定之前,請檢視標準化輸入、網路前綴、數值上的第一個與最後一個地址、主機位元數,以及精確的地址總數。將標準化地址與來源比對,確認沒有欄位被遺漏或重新解讀。
解讀標準化輸出
結果的第一行是依據 RFC 5952 規則重新表述的輸入標準化形式。這是你應該貼到設定與文件中的形式,因為它穩定且可重現。第二行是網路前綴:將輸入地址的每個主機位元清除後,以標準化文字重新寫成的結果。第三行與第四行依序是數值上的第一個與最後一個地址。第一個地址等於網路本身,最後一個地址則是將網路中每個主機位元設為一所得的值。第五個值是主機位元數(128 減去前綴長度),最後一個值則是精確的地址總數(主機位元數的 2 次方)。對於 /128 前綴,地址總數正好是一個。對於 /0 前綴,地址總數涵蓋整個 128 位元空間,且整個範圍都能在瀏覽器的 BigInt 算術中運算,不會產生浮點數誤差。
「第一個」與「最後一個」這兩個詞僅描述數值上的邊界。IPv6 並未定義 IPv4 式的廣播地址,最後一個值絕不會被標示為 broadcast。將其視為廣播地址,是從 IPv4 規劃沿襲而來、在 IPv6 的轉送或主機設定中並不適用的常見概念。
以 RFC 參考地址進行的逐步範例
RFC 4291 中的參考值為 2001:0DB8:0:CD30:123:4567:89AB:CDEF。搭配前綴 60,工具會回傳:
- 標準化輸入:2001:db8:cd30:123:4567:89ab:cdef
- 網路前綴:2001:db8:0:cd30::/60
- 第一個數值地址:2001:db8:0:cd30::
- 最後一個數值地址:2001:db8:0:cd3f:ffff:ffff:ffff:ffff
- 主機位元:68
- 地址總數:2⁶⁸
計算過程遵循標準規則。前 60 個位元定義網路。第 1 到 48 位元完整涵蓋第 1、2、3 欄(2001、0db8、0000)。第 49 到 60 位元是第 4 欄的前 12 位元(原始 CD30 中的 110011010011),因此網路第 4 欄的前 12 位元為 1100 1101 0011,尾端的 4 位元被清除為零,得到二進位的 1100 1101 0011 0000,即 0xcd30。最後一個數值地址則將每個主機位元設為一,因此第 4 欄尾端的 4 位元會從 0000 翻轉為 1111(0xcd3f),第 5 到第 8 欄則全部設為 ffff。同一種範圍計算方式適用於任何前綴長度;欄位界線只會依所選的長度而平移。
前綴計算無法告訴你的事
數值前綴是包含關係的計算結果,並非網路設定的建議。RFC 5942 明確指出此區別:位址分配與鏈路上前綴是兩個不同的概念。路由器、前綴資訊選項、分配政策、提供者規則、防火牆設定以及位址管理計畫,都會決定實際運作行為。這個計算機不會判斷一個前綴是否為鏈路上、可路由、全域指派、保留、群播或任播。它不會判斷 /64 是否適合用於 SLAAC,/128 是否適合用於迴圈,或來自 RFC 3849 的文件前綴是否應在邊界處過濾。這些決策屬於網路設計,而不是位元運算的範疇。
不會傳送或查詢任何地址。這個頁面不會查詢 WHOIS、DNS、BGP、地理位置、濫用資料來源或裝置上的介面。這使得該工具適合用於文件範例與私人規劃,包括文件前綴,但它無法確認所有權、可達性或路由意圖。請將其輸出視為乾淨的數值範圍,並就任何運作上的結論另行參考具公信力的來源。
套用結果前的驗證清單
若要在生產環境中可靠地使用,請在不加上方括號、連接埠或後綴的情況下貼上地址,並另外輸入前綴。計算完成後,將標準化地址與來源比對:任何差異都代表輸入中有某個欄位被解析器以與你輸入時不同的方式解讀。檢視網路那一行,確認它以預期的零段壓縮結尾。檢視最後一個地址那一行,確認其後綴符合所選前綴長度下的預期邊界。若生產環境的變更依賴此結果,請在網路平台支援的工具中獨立驗證、保留目前設定以便復原,並將標準化字串與原始輸入一併記錄,以保留稽核軌跡。希望了解對應於某個前綴長度的明確子網路遮罩的讀者,可以參考 如何逐步計算 IPv6 子網路遮罩 的相關教學,該教學從遮罩的角度涵蓋同一個計算機。