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)は RFC 1918 のプライベートアドレスに相当する IPv6 の仕組みで、自分のネットワーク内部ではルーティングできるものの、公衆インターネットに運ばれることはありません。RFC 4193 はこの目的で fc00::/7 を予約し、2 つに分割しています。一般利用向けに定義されているのは 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 の候補から本当にランダムに選べば、2 つのサイトが衝突する確率は無視できます。
このジェネレーターはブラウザの暗号論的乱数源から 40 ビットを取得するため、値は予測不能であなた固有のものになります。なおアドレス自体は秘密ではありません。乱数性の目的は衝突回避であり、何かを隠すことではありません。
16 ビットのサブネット ID は 65,536 個の /64 ネットワークを与えます。IPv6 では /64 が単一 LAN セグメントの標準サイズであり、それ以上細分化すべきではありません。SLAAC やプライバシーアドレスなど複数の仕組みがホスト部 64 ビットを前提としています。ここで節約しようとしないでください。IPv6 の空間は十分に広く、サブネット ID を VLAN ごと、拠点ごと、環境ごとといった意味のある単位に対応づけるほうが、決して枯渇しない空間を節約するよりはるかに価値があります。
最後に、ULA はグローバルアドレスの代替ではありません。一般的な設計ではグローバルにルーティング可能なアドレスと併用し、ISP から割り当てられたプレフィックスが変わっても内部サービスの番号付けが安定するようにします。