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.:
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:
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:Zapewnia unikalność przy łączeniu prywatnych sieci.
Multicast (ff00::/8) – zastępują broadcast.
Struktura:ffXY::, gdzieX = 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→ ustaw1jeśli był
1→ ustaw0
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– globalny prefiks0012– 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ówO(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 hostyff02::2– wszystkie routeryff02::1:ffXX:XXXX– solicited-node multicast (DAD, NS)
Zarezerwowane i specjalne adresy IPv6
| Adres / Prefiks | Opis |
|---|---|
:: | Wszystkie bity = 0 (brak adresu, placeholder) |
::1 | Loopback (odpowiednik 127.0.0.1) |
::ffff:0:0/96 | IPv4-mapped IPv6 (kompatybilność, NAT64) |
fe80::/10 | Link-local (faktyczny zakres: fe80::/64) |
fc00::/7 | Unique Local Addresses (ULA) |
ff00::/8 | Multicast |
2001:db8::/32 | Zakres dokumentacyjny (RFC 3849) |
64:ff9b::/96 | NAT64 – translacja IPv6 ↔ IPv4 |
2001::/32 | 6to4 (przestarzałe) |
2001:0000::/32 | Teredo (przestarzałe) |
2001:20::/28 | ORCHIDv2 (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):
| Pole | Rozmiar | Opis |
|---|---|---|
| Version | 4 bity | Wersja = 6 |
| Traffic Class | 8 bitów | QoS, priorytety |
| Flow Label | 20 bitów | Identyfikator przepływu (QoS, VoIP) |
| Payload Length | 16 bitów | Długość danych |
| Next Header | 8 bitów | Typ następnego nagłówka |
| Hop Limit | 8 bitów | TTL |
| Source Address | 128 bitów | Adres źródłowy |
| Destination Address | 128 bitów | Adres 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