IPv6 ULA 生成器
生成唯一的本地 IPv6 地址(fd00::/8),帶隨機 40 位全域性 ID,並檢視站點的 /48 字首。
無需公網也能有私有 IPv6。 在 fd00::/8 範圍內建立唯一本地地址。隨機的 40 位全域性 ID 保證各站點字首不衝突,再用 64 位介面 ID 補足。本地使用密碼學隨機生成。
生成唯一的本地 IPv6 地址(fd00::/8),帶隨機 40 位全域性 ID,並檢視站點的 /48 字首。
無需公網也能有私有 IPv6。 在 fd00::/8 範圍內建立唯一本地地址。隨機的 40 位全域性 ID 保證各站點字首不衝突,再用 64 位介面 ID 補足。本地使用密碼學隨機生成。
唯一本地地址(ULA)是 IPv6 版的 RFC 1918 私有地址:可以在自己網路內部路由,但沒有任何運營商會把它轉發到公網。RFC 4193 為此保留了 fc00::/7,並劃分為兩半。目前只有 fd00::/8 被定義為通用用途,其中 40 位全域性 ID 由需要該字首的人自行隨機選取。另一半 fc00::/8 原本預留給某個集中分配機構,但該序號產生器構從未建立,因此實際見到的 ULA 都以 fd 開頭。
結構是固定的:8 位 fd,接 40 位全域性 ID,再接 16 位子網 ID,最後是 64 位介面識別符號。前 48 位合起來就是你這個站點擁有的字首,這也是 ULA 生成器給出的是一個 /48 而不是單個地址的原因。
那 40 個隨機位是防止衝突的全部機制。如果你挑一個好記的字首,比如 fd00:1:: 或 fd12:3456:789a::,那麼別人同樣會覺得它好記——一旦你需要合併網路、與合作方建立 VPN,或者併購一家公司,衝突風險就不再是理論問題。在 2^40 種可能中做一次真正隨機的選擇,兩個站點撞車的機率可以忽略不計。
本生成器的 40 位來自瀏覽器的密碼學隨機源,因此結果不可預測且屬於你自己。注意地址本身並不是秘密——隨機性的目的是避免衝突,而不是隱藏什麼。
16 位子網 ID 給你 65536 個 /64 網路。在 IPv6 中,/64 是單個區域網段的標準尺寸,不應再往下細分;SLAAC、隱私地址等多種機制都假定主機位是 64 位。這裡不要試圖省著用。IPv6 的地址空間足夠充裕,把子網 ID 對映到有意義的維度上——每個 VLAN 一個、每個站點一個、每個環境一個——遠比節省一輩子也用不完的地址空間更有價值。
最後,ULA 並不能取代全域性地址。通行做法是讓它與全域性可路由地址並存,這樣即使 ISP 分配的字首發生變化,內部服務的編址依然穩定。