IPv6 to fundamentalna ewolucja adresacji w internecie, zaprojektowana, by usunąć ograniczenia IPv4 dzięki ogromnej przestrzeni adresowej i usprawnionej funkcjonalności sieci.
- Struktura adresu IPv6 i podstawowa architektura
- Notacja adresów IPv6 i standardy reprezentacji
- Zasady kompresji adresów IPv6 i konwencje skracania
- Adresy link-local – podstawa komunikacji IPv6
- Globalne adresy unicast – routowanie i alokacja w skali internetu
- Identyfikacja interfejsu i generowanie adresu poprzez EUI-64
- Autokonfiguracja adresów i integracja z siecią
- Zakresy adresów i granice komunikacji
Przejście z 32‑bitowego IPv4 na architekturę IPv6 o długości 128 bitów umożliwia wygenerowanie około 3,4 × 10^38 unikatowych adresów, co daje praktycznie nieograniczony zapas dla przyszłych wdrożeń.
Zrozumienie struktury adresu, zasad kompresji i notacji, adresów link‑local oraz globalnych unicast jest kluczowe dla administratorów i inżynierów sieci.
Struktura adresu IPv6 i podstawowa architektura
Adres IPv6 składa się ze 128 bitów, zorganizowanych w osiem 16‑bitowych segmentów (hextetów) oddzielonych dwukropkami i zapisywanych w notacji szesnastkowej.
Architektura IPv6 wspiera hierarchiczne trasowanie i efektywną agregację, dzieląc adres na prefiks sieci oraz identyfikator interfejsu. Takie podejście upraszcza tablice routingu w skali internetu.
Aby szybko uporządkować kluczowe elementy tej architektury, zapamiętaj trzy podstawowe składowe adresu IPv6:
- prefiks sieci – część lewostronna adresu wykorzystywana do routingu między sieciami,
- identyfikator podsieci (SLA) – wewnętrzny podział przestrzeni przydzielonej organizacji,
- identyfikator interfejsu – część prawostronna identyfikująca host w ramach podsieci.
Część sieciowa ma typowo 64 bity. W globalnych adresach unicast lewostronne 48 bitów stanowi prefiks globalnego routingu, a kolejne 16 bitów tworzy identyfikator podsieci (SLA).
Identyfikator interfejsu to standardowo prawostronne 64 bity. Może być wyprowadzony metodą EUI‑64 z adresu MAC lub generowany losowo (rozszerzenia prywatności).
Notacja adresów IPv6 i standardy reprezentacji
Adresy IPv6 zapisuje się szesnastkowo, po osiem grup po cztery znaki. Pełny przykład to 2001:0db8:0000:0000:0000:0000:0000:0001.
Notacja szesnastkowa bezpośrednio odwzorowuje bity (każda cyfra to 4 bity), dzięki czemu jest jednocześnie zwięzła, precyzyjna i czytelna w konfiguracjach.
W szczególnych przypadkach używa się adresów IPv4‑mapped, gdzie 96 bitów ma postać szesnastkową, a ostatnie 32 bity zapisuje się w kropkowej notacji IPv4, np. ::ffff:192.0.2.1 — rozwiązanie to ułatwia mechanizmy przejściowe.
Zasady kompresji adresów IPv6 i konwencje skracania
Reguły skracania zdefiniowano pierwotnie w RFC 2373, następnie utrwalono w RFC 4291 i ujednolicono stylistycznie w RFC 5952.
Pierwsza reguła to usuwanie zer wiodących w każdej 16‑bitowej grupie: 2001:0db8:0000:0000:0000:0000:0000:0001 skraca się do 2001:db8:0:0:0:0:0:1.
Druga reguła umożliwia zastąpienie jednego ciągu kolejnych grup samych zer zapisem ::. Przykład: 2001:db8:0:0:0:0:0:1 → 2001:db8::1. :: wolno użyć tylko raz w pojedynczym adresie.
Gdy występuje kilka sekwencji zer, skraca się pierwszą najdłuższą. Jeśli długości są równe — skraca się pierwszą.
Najczęstsze błędy przy kompresji, których należy unikać:
- użycie więcej niż jednego podwójnego dwukropka w jednym adresie,
- skrót „zer końcowych” w grupie (np.
4200do42) zmienia wartość, - mieszanie różnych sekwencji zer bez zachowania zasady „pierwsza najdłuższa”,
- stosowanie wielkich liter w heksadecymalnych cyfrach wbrew zaleceniom RFC 5952 (preferowane małe litery).
Adresy link-local – podstawa komunikacji IPv6
Adresy link‑local mają prefiks FE80::/10 (najwyższe bity 1111111010) i zwykle zaczynają się od FE80::. Obowiązują tylko w obrębie lokalnego łącza i nie są routowane przez routery.
Są zawsze obecne na interfejsach z włączonym IPv6 i wykorzystywane m.in. przez NDP, jako adresy bramy domyślnej i „next‑hop” w tablicach tras.
Najważniejsze zastosowania adresów link‑local w praktyce to:
- obsługa protokołu neighbor discovery (NDP) i rozgłaszania prefiksów,
- ustalanie bramy domyślnej i lokalnego next‑hop,
- komunikacja w obrębie segmentu bez infrastruktury DHCP i bez adresów globalnych.
Identyfikator interfejsu (dolne 64 bity) można wyprowadzić metodą EUI‑64 z MAC (np. 00:1a:2b:3c:4d:5e → fe80::021a:2bff:fe3c:4d5e), jednak współczesne systemy często generują losowe identyfikatory (RFC 4941) ze względów prywatności.
W celu rozróżnienia interfejsów stosuje się indeksy stref (zone indices). Przykłady zapisu: fe80::1%eth0 (Linux) lub fe80::1%Ethernet/fe80::1%12 (Windows).
Globalne adresy unicast – routowanie i alokacja w skali internetu
Globalne adresy unicast są globalnie routowalne i pochodzą z zakresu 2000::/3 (prefiks binarny 001). IANA alokuje przestrzeń rejestrom regionalnym (RIR), a te przekazują ją operatorom i organizacjom.
Struktura jest trójpoziomowa: 48‑bitowy prefiks globalnego routingu + 16‑bitowy identyfikator podsieci (SLA) + 64‑bitowy identyfikator interfejsu, co umożliwia efektywną agregację tras.
Łańcuch alokacji wygląda następująco:
- IANA → RIR – przydział dużych bloków dla regionów (np. RIPE NCC, ARIN, APNIC, LACNIC, AFRINIC);
- RIR → operatorzy – przydział prefiksów dla ISP i dużych podmiotów (często /32);
- operator → organizacja – przydział dla klientów końcowych (typowo /48).
Organizacja posiadająca prefiks /48 może wydzielić z niego 65 536 podsieci /64, a rekomendacją jest /64 na każdy segment (zgodnie ze SLAAC i NDP).
Adresy globalne można przypisać ręcznie lub przez SLAAC, łącząc ogłaszany prefiks z (często losowym) identyfikatorem interfejsu. Proces nie wymaga DHCP, co upraszcza administrację.
Identyfikacja interfejsu i generowanie adresu poprzez EUI-64
Format EUI‑64 przekształca 48‑bitowy MAC w 64‑bitowy identyfikator interfejsu: dzieli MAC na dwie 24‑bitowe części, wstawia FFFE pośrodku, a następnie odwraca bit U/L.
- Podziel MAC na OUI i część urządzenia, np.
00:1a:2b|3c:4d:5e. - Wstaw pośrodku
FFFE:00:1a:2b:ff:fe:3c:4d:5e. - Odwróć bit U/L (siódmy od lewej) w pierwszym bajcie:
00→02, wynik:021a:2bff:fe3c:4d5e.
Coraz częściej stosuje się jednak identyfikatory losowe (RFC 4941), które ograniczają możliwość długoterminowego śledzenia urządzeń.
Autokonfiguracja adresów i integracja z siecią
SLAAC eliminuje konieczność rozbudowanego DHCP dla adresów. Całość zachodzi automatycznie i bez ingerencji operatora, jeśli routery IPv6 poprawnie ogłaszają prefiksy.
Przebieg autokonfiguracji SLAAC wygląda następująco:
- Utworzenie adresu link‑local (prefiks FE80::/64 + identyfikator interfejsu).
- Wykonanie DAD (Duplicate Address Detection) dla adresu link‑local.
- Wysłanie Router Solicitation (multicast) przez hosta.
- Odebranie Router Advertisement z prefiksem globalnym i parametrami.
- Utworzenie adresu globalnego (prefiks + identyfikator interfejsu) i ponowne DAD.
Podstawą SLAAC jest NDP (ICMPv6). Typy komunikatów NDP to:
- router solicitation,
- router advertisement,
- neighbor solicitation,
- neighbor advertisement,
- redirect.
Zakresy adresów i granice komunikacji
Zakres (scope) określa obszar ważności adresu: link‑local działa tylko w obrębie łącza, global unicast w całym internecie, a ULA (unique local addresses) jest z założenia prywatna i nieniesiona w globalnym routingu.
Dla szybkiego porównania najczęściej spotykanych kategorii adresów IPv6 spójrz na poniższe zestawienie:
| Typ adresu | Prefiks | Zakres (scope) | Routowalność w internecie | Przykład |
|---|---|---|---|---|
| Link‑local | FE80::/10 | lokalny (łącze) | Nie | fe80::1 |
| Global unicast | 2000::/3 | globalny | Tak | 2001:db8::1 |
| Unique Local Address (ULA) | FC00::/7 | lokalny/globalnie unikatowy | Nie (domyślnie) | fd00:abcd::1 |
| IPv4‑mapped | ::ffff:0:0/96 | specjalny | Nie dotyczy | ::ffff:192.0.2.1 |