IPv6 ULA 產生器
技術細節
IPv6 ULA 產生器的運作方式
工具功能說明
IPv6 ULA 產生器會依據 RFC 4193 §3.2.2 的演算法產生一個 /48 的 Unique Local Address 前綴,與其他站點發生衝突的機率很低。提供一個 MAC 位址(或讓工具隨機挑選),它會以 EUI-64 與目前的 NTP 時間戳記串接後做 SHA-1,導出 40 位元的 Global ID。輸出包含 /48 前綴、Global ID 與 Subnet ID,以及一個範例 /64 主機位址。
常見的開發者使用情境
網路管理員使用 ULA 來建置不依賴全球可路由位址空間的私有 IPv6 網路。實驗室與家用實驗室的使用者會在每個站點只選一次 ULA 前綴,之後在所有內部 VLAN 與覆疊網路中重複使用。它們也適用於雲端 VPC、容器網路與隔離環境(air-gapped),在這些情境下全球 IPv6 不可用或不希望使用。
資料格式、型別或變體
ULA 位於 fc00::/7 區塊。當本地指派(L)位元設為 1 時,實務上的前綴會變成 fd00::/8。完整的 /48 版面配置為:8 位元前綴(fd)+ 40 位元 Global ID + 16 位元 Subnet ID + 64 位元 Interface ID。Global ID 是對 EUI-64 ‖ NTP 時間戳記做 SHA-1 後的最低 40 位元;此工具會在提供的 MAC 中插入 FFFE 並翻轉 universal/local 位元以導出 EUI-64。
常見陷阱與邊界情況
不要選擇 fd00:0:0::/48 或其他過於簡單的前綴——重點在於隨機化以降低衝突機率。fc00::/8 的那一半(L 位元 = 0)是保留的,現今不應使用。ULA 無法在公網上路由;若需要可在網際網路上路由的 IPv6,請向你的 ISP 或 RIR 申請 Global Unicast 前綴。
何時使用此工具 vs 程式碼
在建立新站點時使用瀏覽器工具,挑選一個一次性的前綴並永久重用。在程式碼中,Python 的 ipaddress、Go 的 net/netip 或 Rust 的 ipnet 等函式庫,可在一致的錯誤處理下,產生或驗證 ULA 與 Global Unicast 位址。