Proces EUI-64
IEEE zdefiniowała proces EUI (ang. Extended Unique Identifier) lub zmodyfikowany proces EUI-64. Ten proces używa 48 bitowego Ethernetowego adresu MAC i wprowadza do jego środka 16 dodatkowych bitów w celu uzyskania 64 bitowego identyfikatora interfejsu.
Adresy MAC są zwykle zapisywane w postaci szesnastkowej i składają się z dwóch części:
- OUI (ang. Organizationally Unique Identifier) - OUI to 24 bitów (6 cyfr szesnastkowych) stanowiących kod producenta przyznany przez IEEE.
- Identyfikator urządzenia - Identyfikator urządzenia to liczba 24 bitowa (6 cyfr szesnastkowych) tworząca z OUI unikalną liczbę.
Identyfikator interfejsu EUI-64 zapisywany jest binarnie i składa się z trzech części:
- 24 bitowy OUI z adresu MAC, ale z odwróconym siódmym bitem (U/L). Oznacza to, że siódmy bit o wartości 0 staje się 1 i na odwrót (bit o wartości 1 zamieniany jest na 0).
- Dodanej wartości 16 bitowej FFFE (zapisanej tu szesnastkowo).
- 24 bitowego identyfikatora urządzenia uzyskanego wprost z adresu MAC.
Proces EUI-64 jest przedstawiony na rys. 1 używając adresu MAC interfejsu GigabitEthernet czyli FC99:4775:CEE0.
Krok 1: Podziel adres MAC na OUI oraz identyfikator urządzenia.
Krok 2: Wstaw wartość szesnastkową FFFE, która binarnie wynosi: 1111 1111 1111 1110.
Krok 3: Zamień dwie pierwsze cyfry szesnastkowe części OUI na zapis binarny i odwróć wartość bitu U/L (bit 7). W tym przykładzie 0 na pozycji bitu 7 zamienione jest na 1.
W rezultacie procesu EUI-64 wygenerowany identyfikator interfejsu to FE99:47FF:FE75:CEE0.
Uwaga: Użycie bitu U/L i powód odwracania jego wartości omówione są w RFC 5342.
Przewagą stosowania procesu EUI-64 jest to, że adres MAC może być użyty do określenia identyfikatora interfejsu. Pozwala on również administratorowi sieci łatwo zlokalizować urządzenie końcowe po adresie IPv6 używając unikalnego adresu MAC. Jednakże dla wielu użytkowników stanowiło to problem z zachowaniem prywatności. Uważają oni, że ich pakiety mogą być śledzone w drodze do bieżącego fizycznego routera. W związku z tą kwestią mogą być użyte identyfikatory interfejsów generowane losowo.
Losowo generowane identyfikatory interfejsów
W zależności od systemu operacyjnego urządzenie może używać identyfikatorów interfejsów generowanych losowo zamiast używania adresu MAC i procesu EUI-64. Na przykład począwszy od systemu Windows Vista systemy Windows używają identyfikatorów interfejsów generowanych losowo zamiast tych tworzonych przez proces EUI-64. Windows XP i wcześniejsze wersje systemu Windows używają procesu EUI-64.
Jak pokazano na rys. 2 prostym sposobem (dającym prawie pewność) określenia czy adres był stworzony w procesie EUI-64 jest znalezienie wartości FFFE po środku identyfikatora interfejsu.
Po stworzeniu identyfikatora interfejsu, czy to za pomocą procesu EUI-64 czy też poprzez losową generację, może być on połączony z prefiksem IPv6 w celu stworzenia adresu globalnego unicast lub adresu link-local.
- Globalny adres unicast - Kiedy używając SLAAC, urządzenie otrzyma swój prefiks z komunikatu ICMPv6 RA łączy go z identyfikatorem interfejsu.
- Adres link-local - Prefiks link-local zaczyna się od FE80::/10. Urządzenie zwykle używa FE80::/64 jako prefiks/długość prefiksu z następującym po nim identyfikatorem interfejsu.