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 包含 1 個。
由於位元並非在每種情況下都對齊 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 前綴,地址數量恰好為 1。對於 /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 明確區分此點:位址指派與鏈路上前綴 (on-link prefix) 是不同的概念。路由器、前綴資訊選項、配置政策、提供者規則、防火牆設定以及位址管理計畫,都會決定實際運作行為。計算機並不會判定某個前綴是否為鏈路上、可路由、全域指派、保留、多點傳送或任一傳送。它也不會判定 /64 是否適用於 SLAAC、/128 是否適合作為回環,或 RFC 3849 中的文件前綴是否應在邊界進行過濾。這些決策屬於網路設計範疇,而非位元運算。
不會傳送或查詢任何位址。此頁面不會向 WHOIS、DNS、BGP、地理位置、濫用資料來源或裝置上的任何介面發出查詢。這使得該工具適合用於文件範例與私下規劃(包括文件前綴),但無法確認所有權、可達性或路由意圖。請將輸出視為一個乾淨的數值範圍,並另行使用權威來源得出任何營運上的結論。
套用結果前的驗證檢查清單
為了在正式作業中可靠使用,請在不附加方括號、連接埠或後綴的情況下貼上地址,並單獨輸入前綴。計算完成後,將規範化位址與來源進行比對:任何差異都代表輸入中含有被解析器以不同方式解讀的欄位。檢視網路那一行,確認其結尾為預期的零序列壓縮。檢視尾地址那一行,確認其後綴符合所選前綴長度下預期的邊界。若實際作業變更依賴此結果,請在網路平台支援的工具中另行獨立驗證,保留目前的設定以供回復,並將規範化字串與原始輸入一併記錄,以便留下稽核軌跡。希望了解對應於前綴長度的明確子網路遮罩的讀者,可參考 如何逐步計算 IPv6 子網路遮罩 的相關教學,該文從遮罩的角度說明同一計算機。
延伸閱讀:如何為測試資料與固件產生 MAC 位址。