Podstawy IPv6

Podstawy

IPv6 zastępuje IPv4, rozszerzając przestrzeń adresową z 32 do 128 bitów.
Adres zapisuje się w ośmiu grupach po cztery cyfry szesnastkowe, np.:

 
2001:0db8:85a3:0000:0000:8a2e:0370:7334

Zasady skracania adresów IPv6

  • Można usunąć zera wiodące w każdej grupie.

  • Można zastąpić jeden ciąg kolejnych grup zer podwójnym dwukropkiem ::.

  • :: wolno użyć tylko raz w adresie.

Przykłady:

 
2001:0db8:0000:0000:0000:0000:0000:0001 2001:db8::1 0000:0000:0000:0000:0000:0000:0000:0001 ::1 2001:0db8:0000:0001:0000:0000:0000:0001 2001:db8:0:1::1

Typy adresów IPv6

  • Global Unicast (2000::/3) – publiczne adresy routowalne w Internecie.

  • Link-Local (fe80::/10) – automatycznie przypisywane każdemu interfejsowi; działają tylko w obrębie jednego segmentu.
    👉 W praktyce wszystkie implementacje używają zakresu fe80::/64.

  • Unique Local Address (ULA) (fd00::/8) – prywatne adresy (odpowiednik 192.168.x.x lub 10.x.x.x).
    Struktura ULA:

     
    fd | 40-bitowy losowy Global ID | 16-bit Subnet ID | 64-bit Interface ID

    Zapewnia unikalność przy łączeniu prywatnych sieci.

  • Multicast (ff00::/8) – zastępują broadcast.
    Struktura: ffXY::, gdzie

    • X = flaga (np. 0 = permanentny),

    • Y = zakres (1 – interface, 2 – link, 5 – site, 8 – organization, E – global).

  • Anycast – ten sam adres przypisany do wielu urządzeń, ruch trafia do najbliższego.


Po co sieci prywatne w IPv6 skoro nie ma NAT?

IPv6 eliminuje potrzebę NAT, ale Unique Local Addresses (ULA) nadal mają zastosowanie:

  • Izolacja sieci (niewidoczne z Internetu)

  • Dodatkowa warstwa bezpieczeństwa

  • Łączenie wielu lokalizacji bez konfliktów adresowych

  • Sieci testowe i laboratoryjne

Różnica względem IPv4:
W IPv4 adresy prywatne powstały z powodu braku przestrzeni adresowej.
W IPv6 ULA to świadomy wybór projektowy, nie konieczność.


Struktura adresu IPv6

Adres IPv6 składa się z trzech głównych części:

  • Global Routing Prefix – przydzielany przez operatora (np. 2001:db8:abcd::/48)

  • Subnet ID – identyfikator podsieci

  • Interface Identifier – identyfikator urządzenia (64-bitowy, EUI-64 lub losowy)

Jak powstaje identyfikator interfejsu EUI-64

MAC: 00:1B:21:33:44:55
Podziel na dwie części: 00:1B:21 i 33:44:55
Wstaw FF:FE w środku → 00:1B:21:FF:FE:33:44:55
Odwróć 7. bit (U/L) w pierwszym bajcie:

  • jeśli był 0 → ustaw 1

  • jeśli był 1 → ustaw 0
    Oznacza to, że adres jest lokalnie zarządzany, nie globalny.

Wynik: 02:1B:21:FF:FE:33:44:55

Przykład pełnego adresu:

 
2001:db8:abcd:0012:021b:21ff:fe33:4455
  • 2001:db8:abcd – globalny prefiks

  • 0012 – podsieć

  • 021b:21ff:fe33:4455 – identyfikator interfejsu


Podział adresu i prefiks

Maska sieci zapisywana jest jak w IPv4, np. /64.

Typowe długości:

  • /64 – sieć lokalna (standardowa)

  • /56, /48 – prefiksy przydzielane przez operatorów

Każdy host ma przynajmniej dwa adresy:

  • fe80::... (link-local)

  • jeden lub więcej globalnych lub lokalnych (fd00::..., 2xxx::...)


Autokonfiguracja – SLAAC i DHCPv6

SLAAC (Stateless Address Autoconfiguration)

Host nasłuchuje Router Advertisement (RA).
Router podaje prefiks (np. 2001:db8:abcd:1::/64), a host tworzy pełny adres – z MAC (EUI-64) lub losowo.

Ochrona prywatności

Problem z EUI-64 – adres jest śledzalny.
Rozwiązanie – Privacy Extensions (RFC 4941):

  • Losowe, tymczasowe adresy globalne

  • Regularna zmiana (zwykle co 24h)

  • Stare adresy są tymczasowo utrzymywane

Dodatkowo RFC 7217 wprowadza stable privacy addresses – losowe, ale stabilne w obrębie danej sieci (po restarcie ten sam).

DHCPv6

  • Stateful – serwer przydziela adresy i dane dodatkowe (DNS, NTP)

  • Stateless – adres przez SLAAC, reszta z DHCPv6

Router kontroluje sposób konfiguracji flagami w RA:

  • M (Managed) = 1 → używaj DHCPv6 do adresów

  • O (Other) = 1 → używaj DHCPv6 do innych opcji (DNS)

  • A (Autonomous) = 1 → używaj SLAAC

W praktyce większość systemów (Windows, Linux, macOS) obsługuje SLAAC + DHCPv6 hybrydowo.


ICMPv6 i Neighbor Discovery Protocol (NDP)

Zastępuje kilka protokołów z IPv4:

  • Router Solicitation (RS) – host pyta o routery

  • Router Advertisement (RA) – router ogłasza prefiks i parametry

  • Neighbor Solicitation (NS) – „kto ma adres X?” (zastępuje ARP)

  • Neighbor Advertisement (NA) – odpowiedź „to mój adres”

  • Duplicate Address Detection (DAD) – sprawdza, czy adres jest unikalny

  • Redirect – informuje host o lepszej trasie

Adresy multicastowe NDP:

  • ff02::1 – wszystkie hosty

  • ff02::2 – wszystkie routery

  • ff02::1:ffXX:XXXX – solicited-node multicast (DAD, NS)


Zarezerwowane i specjalne adresy IPv6

Adres / PrefiksOpis
::Wszystkie bity = 0 (brak adresu, placeholder)
::1Loopback (odpowiednik 127.0.0.1)
::ffff:0:0/96IPv4-mapped IPv6 (kompatybilność, NAT64)
fe80::/10Link-local (faktyczny zakres: fe80::/64)
fc00::/7Unique Local Addresses (ULA)
ff00::/8Multicast
2001:db8::/32Zakres dokumentacyjny (RFC 3849)
64:ff9b::/96NAT64 – translacja IPv6 ↔ IPv4
2001::/326to4 (przestarzałe)
2001:0000::/32Teredo (przestarzałe)
2001:20::/28ORCHIDv2 (identyfikatory kryptograficzne)

Brak NAT i komunikacja end-to-end

IPv6 przywraca model bezpośredniej komunikacji.
Każde urządzenie może mieć globalny adres.
Bezpieczeństwo zapewnia firewall, nie translacja.

IPsec jest zintegrowany z IPv6, ale nieobowiązkowy (RFC 6434).
Może być stosowany end-to-end dla poufności i autentykacji.


Struktura nagłówków IPv6

Nagłówek podstawowy ma stałe 40 bajtów (vs zmienne w IPv4):

PoleRozmiarOpis
Version4 bityWersja = 6
Traffic Class8 bitówQoS, priorytety
Flow Label20 bitówIdentyfikator przepływu (QoS, VoIP)
Payload Length16 bitówDługość danych
Next Header8 bitówTyp następnego nagłówka
Hop Limit8 bitówTTL
Source Address128 bitówAdres źródłowy
Destination Address128 bitówAdres docelowy

Nagłówki rozszerzeń (Extension Headers)

Modularne podejście – kolejne nagłówki łańcuchowo:

  • Hop-by-Hop Options (0) – sprawdzane przez każdy router

  • Routing (43) – źródłowy routing

  • Fragment (44) – fragmentacja

  • Authentication (51) – IPsec AH

  • Encapsulating Security Payload (50) – IPsec ESP

  • Destination Options (60) – opcje dla hosta końcowego

RFC 8200 zaleca ograniczanie liczby nagłówków, ponieważ niektóre routery lub firewalle odrzucają zbyt długie łańcuchy.


Fragmentacja w IPv6

  • Tylko host źródłowy może fragmentować pakiety

  • Routery nie fragmentują

  • Jeśli pakiet jest zbyt duży, router wysyła komunikat ICMPv6 Type 2 – “Packet Too Big”

  • Host dostosowuje rozmiar przez Path MTU Discovery (PMTUD)

  • Minimalne MTU = 1280 bajtów

Zalety: prostsze przetwarzanie, większa wydajność.


Mechanizmy współpracy IPv4 i IPv6

  • Dual Stack – równoczesna obsługa IPv4 i IPv6

  • 6to4, Teredo, ISATAP – historyczne metody tunelowania

  • NAT64/DNS64 – translacja IPv6 ↔ IPv4 (używana w ISP)


Przykład współczesnego zastosowania: IPv6-only w sieciach 5G

Nowoczesne sieci 5G działają w trybie IPv6-only z translacją NAT64/DNS64 do usług IPv4.
Umożliwia to:

  • prostsze zarządzanie adresacją (brak NAT w rdzeniu),

  • efektywniejsze QoS i routing,

  • natywne wsparcie dla IoT i milionów urządzeń,

  • lepszą integrację z sieciami chmurowymi.

Przykład:
Operatorzy tacy jak T-Mobile, Verizon czy Orange wdrażają sieci 5G z IPv6-only w rdzeniu (tzw. IPv6-only mobile core).


Podsumowanie

IPv6 to logiczna ewolucja IPv4 oferująca:

  • Ogromną przestrzeń adresową (3.4×10³⁸ adresów)

  • Eliminację NAT i komunikację end-to-end

  • Zaawansowaną autokonfigurację (SLAAC, DHCPv6)

  • Hierarchię: globalny prefiks → podsieć → host

  • Wbudowane mechanizmy bezpieczeństwa (IPsec, Privacy Extensions)

  • Uproszczone nagłówki, wydajniejszy routing

  • Multicast i anycast zamiast broadcastu