IPv6 ULA 생성기
기술적 세부 정보
IPv6 ULA 생성기 작동 방식
도구가 하는 일
IPv6 ULA 생성기는 RFC 4193 §3.2.2의 알고리즘을 따라 다른 사이트와 충돌할 가능성이 낮은 /48 ULA(Unique Local Address) 프리픽스를 생성합니다. MAC 주소를 제공하거나(또는 도구가 임의로 선택하도록) 하면, 현재 NTP 타임스탬프와 결합한 EUI-64의 SHA-1에서 40비트 Global ID를 도출합니다. 출력에는 /48 프리픽스, Global ID와 Subnet ID, 그리고 예시 /64 호스트 주소가 포함됩니다.
개발자들이 흔히 사용하는 사례
네트워크 관리자는 전 세계 라우팅 가능한 주소 공간에 의존하지 않는 사설 IPv6 네트워크를 구축하기 위해 ULA를 사용합니다. 랩 및 홈랩 운영자는 사이트당 한 번 ULA 프리픽스를 선택한 뒤, 모든 내부 VLAN과 오버레이 네트워크에 재사용합니다. 또한 전역 IPv6를 사용할 수 없거나 원치 않는 클라우드 VPC, 컨테이너 네트워크, 에어갭 환경에서도 유용합니다.
데이터 형식, 타입 또는 변형
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 프리픽스를 요청하세요.
코드 대신 이 도구를 사용해야 하는 경우
새 사이트를 설정할 때, 한 번 선택한 뒤 영구적으로 재사용할 프리픽스를 고르려면 브라우저 도구를 사용하세요. 코드에서는 Python의 ipaddress, Go의 net/netip, Rust의 ipnet 같은 라이브러리가 일관된 오류 처리와 함께 Global Unicast 주소와 나란히 ULA를 생성하거나 검증할 수 있습니다.