Генератор IPv6 ULA

Сгенерируйте уникальный локальный IPv6-адрес (fd00::/8) со случайным 40-битным глобальным идентификатором и увидьте префикс /48 для вашего сайта.

Приватный IPv6 без глобальных адресов. Создайте уникальный локальный адрес в диапазоне fd00::/8. Случайный 40-битный глобальный идентификатор делает префиксы вашего сайта уникальными, а 64-битный идентификатор интерфейса заполняет остальное. Генерируется локально с криптографической случайностью.

Префикс сайта /48

Уникальные локальные адреса на практике

Для чего нужен fd00::/8

Уникальные локальные адреса — это ответ IPv6 на приватные диапазоны RFC 1918: адреса, которые маршрутизируются внутри вашей собственной сети, но которые ни один оператор не пропустит через публичный интернет. RFC 4193 резервирует для этого fc00::/7, разделённый на две половины. Только fd00::/8 определён для общего использования, причём 40-битный глобальный идентификатор выбирается случайно тем, кому нужен префикс. Вторая половина, fc00::/8, была зарезервирована для централизованно назначаемых префиксов в реестре, который так и не был создан, поэтому на практике любой встреченный вами ULA начинается с fd.

Структура фиксирована: 8 бит fd, затем 40-битный глобальный идентификатор, затем 16-битный идентификатор подсети, затем 64-битный идентификатор интерфейса. Первые 48 бит вместе образуют префикс, принадлежащий вашему сайту, именно поэтому генератор ULA выдаёт /48, а не единичный адрес.

Почему глобальный идентификатор должен быть случайным

The 40 random bits are the entire mechanism preventing collisions. Выберите запоминающийся префикс вроде fd00:1:: или fd12:3456:789a:: — и вы выбрали то, что запоминают и все остальные, — риск коллизии перестаёт быть теоретическим, стоит вам объединить сети, поднять VPN к партнёру или поглотить компанию. При 2^40 вариантах и правильном случайном выборе вероятность столкновения двух сайтов ничтожна.

Этот генератор берёт свои 40 бит из криптографического источника случайности браузера, поэтому значение непредсказуемо и уникально для вас. Заметьте, что сам адрес не является секретом — случайность нужна для избежания коллизий, а не для сокрытия чего-либо.

Планирование подсетей внутри вашего /48

The 16-bit subnet ID gives you 65,536 networks /64. /64 — это стандартный размер для одного LAN-сегмента в IPv6, и его не следует делить дальше; SLAAC, приватная адресация и несколько других механизмов предполагают 64 бита хоста. Не поддавайтесь искушению быть здесь экономным. IPv6 даёт достаточно пространства, и сопоставление идентификаторов подсетей чему-то осмысленному — по одному на VLAN, на сайт, на окружение — гораздо ценнее, чем экономия адресного пространства, которое вам никогда не иссякнет.

Наконец, ULA не являются заменой глобальным адресам. Обычно их используют вместе с глобально маршрутизируемыми адресами, чтобы внутренние сервисы сохраняли стабильную нумерацию даже при смене назначенного провайдером префикса.

Примечание об открытом ПО: реализовано с crypto.getRandomValues на чистом JavaScript. Без сторонних библиотек.

Часто задаваемые вопросы

Для чего нужен ULA?
Уникальные локальные адреса — это аналог приватных диапазонов RFC 1918 в IPv6. Они маршрутизируются внутри вашей собственной сети, но никогда не маршрутизируются в публичном интернете.
Почему префикс равен /48?
RFC 4193 фиксирует первые 8 бит как fd и заполняет следующие 40 случайным глобальным идентификатором. Эти 48 бит — ваш префикс сайта, оставляя 16 бит подсетям и 64 — идентификаторам интерфейсов.
Действительно ли глобальный идентификатор должен быть случайным?
Да. Именно случайность делает коллизию маловероятной, если когда-либо будут объединены две сети. Последовательные или запоминающиеся значения, такие как fd00::/48, разрушают весь замысел.
В чём разница между fc00::/8 и fd00::/8?
fd00::/8 предназначен для локально назначаемых префиксов, и именно его следует генерировать. fc00::/8 был зарезервирован для централизованно назначаемых префиксов, и никакого реестра для них так и не было создано.
Можно ли использовать ULA и глобальный префикс одновременно?
Да. Интерфейсы обычно несут оба: ULA даёт стабильную внутреннюю адресацию, переживающую смену префикса провайдера, а глобальный адрес обрабатывает исходящий трафик.
Регистрируется ли сгенерированный префикс где-либо?
Нет. Никакого реестра не существует, и именно поэтому важны 40 случайных бит — статистическая уникальность — единственная защита от перекрытия.