Генератор IPv6 ULA
Технические детали
Как работает генератор IPv6 ULA
Что делает инструмент
Генератор IPv6 ULA создаёт префикс /48 Unique Local Address, который с малой вероятностью столкнётся с префиксом другого сайта, следуя алгоритму из RFC 4193 §3.2.2. Укажите MAC-адрес (или позвольте инструменту выбрать случайный), и он выводит 40-битный Global ID из SHA-1 от EUI-64, конкатенированного с текущей меткой времени NTP. Вывод включает префикс /48, Global ID и Subnet ID, а также пример адреса хоста /64.
Распространенные сценарии использования для разработчиков
Сетевые администраторы используют ULA для построения частных IPv6-сетей, которые не зависят от глобально маршрутизируемого адресного пространства. Операторы лабораторий и домашних лабораторий выбирают ULA-префикс один раз для площадки, а затем повторно используют его для всех внутренних VLAN и оверлейных сетей. Они также полезны для облачных VPC, контейнерных сетей и изолированных сред, где глобальный IPv6 недоступен или нежелателен.
Форматы данных, типы или варианты
ULA находятся в блоке fc00::/7. При установленном в 1 бите локального назначения (L) практический префикс становится fd00::/8. Полная разметка /48 такова: 8-битный префикс (fd) + 40-битный Global ID + 16-битный Subnet ID + 64-битный Interface ID. Global ID — это младшие 40 бит SHA-1 по EUI-64 ‖ метке времени NTP; этот инструмент получает EUI-64 из заданного MAC, вставляя FFFE и инвертируя универсальный/локальный бит.
Распространенные ошибки и крайние случаи
Не выбирайте fd00:0:0::/48 или другой тривиальный префикс — весь смысл в рандомизации и снижении вероятности коллизий. Половина fc00::/8 (L бит = 0) зарезервирована и сегодня не должна использоваться. ULA не маршрутизируются в публичном интернете; если вам нужен маршрутизируемый в интернете IPv6, запросите префикс Global Unicast у вашего провайдера или RIR.
Когда использовать этот инструмент, а когда — код
Используйте браузерный инструмент при настройке новой площадки, чтобы выбрать одноразовый префикс, который вы будете использовать всегда. В коде библиотеки вроде Python ipaddress, Go net/netip или Rust ipnet могут генерировать или валидировать ULA наряду с адресами Global Unicast с единообразной обработкой ошибок.