%20%EC%83%9D%EC%84%B1.png)
RFC4193에는 IPv6 ULA(고유 로컬 주소) 생성을 위한 의사 코드가 포함되어 있습니다. 이 알고리즘을 따라야 합니까? 아니면 임의의 ULA가 유효합니까?
3.2.2. Sample Code for Pseudo-Random Global ID Algorithm
The algorithm described below is intended to be used for locally
assigned Global IDs. In each case the resulting global ID will be
used in the appropriate prefix as defined in Section 3.2.
1) Obtain the current time of day in 64-bit NTP format [NTP].
2) Obtain an EUI-64 identifier from the system running this
algorithm. If an EUI-64 does not exist, one can be created from
a 48-bit MAC address as specified in [ADDARCH]. If an EUI-64
cannot be obtained or created, a suitably unique identifier,
local to the node, should be used (e.g., system serial number).
3) Concatenate the time of day with the system-specific identifier
in order to create a key.
4) Compute an SHA-1 digest on the key as specified in [FIPS, SHA1];
the resulting value is 160 bits.
5) Use the least significant 40 bits as the Global ID.
6) Concatenate FC00::/7, the L bit set to 1, and the 40-bit Global
ID to create a Local IPv6 address prefix.
시간이 요인이 아니라면 더 좋을 것 같습니다. 링크 로컬 주소(Mac 파생)를 가져와서 첫 번째 옥텟을 교체하여 ULA로 변환하는 것이 허용됩니까?
답변1
링크 로컬 주소에서 일부 비트를 가져오는 것과 관련하여 모든 주소가 이에 적합한 것은 아닙니다. 비 MAC 파생은 임의성이 없으며 fe80::1
일부 네트워크에서 모든 사람의 게이트웨이로 사용됩니다.
기술적으로 해당 알고리즘은 필요하지 않습니다. 그러나 ULA는 무작위여야 합니다. 바로 앞의 섹션 3.2.1에서:
로컬로 할당된 글로벌 ID는 다음과 일치하는 의사 무작위 알고리즘을 사용하여 생성되어야 합니다.[무작위의]. 3.2.2절에서는 제안된 알고리즘을 설명합니다. 글로벌 ID를 생성하는 모든 사이트는 기능적으로 유사한 알고리즘을 사용하여 높은 고유성 가능성을 보장하는 것이 중요합니다.
제안된 알고리즘은 일반적으로 사용 가능한 기본 요소를 입력으로 사용하여 안정적으로 고유합니다. VM의 주소를 다시 지정하지 않거나 NIC 공급업체의 실수로 인해 다른 사람이 동일한 MAC 주소를 가질 수도 있습니다. 그러나 동일한 NTP 타임스탬프를 사용하여 생성할 가능성은 거의 없습니다. 물론 코드를 작성하고 싶지 않다면 이미 작성된 구현을 찾을 수 있습니다.
다른 것을 사용하는 경우 순수 MAC 주소 기반 구성표를 사용하지 마십시오. 아마도 /dev/random에서 40비트를 읽을 수 있습니다.