IPv6 – adres 128-bitowy w ośmiu grupach szesnastkowych: zasady skracania zer, rozpoznawanie błędnego zapisu i różnice względem IPv4.
IPv4 używa adresów 32-bitowych, co daje 2³² = 4 294 967 296, czyli około 4,3 miliarda kombinacji. Gdy projektowano internet, wydawało się to liczbą nie do wyczerpania. Przy dzisiejszej liczbie telefonów, komputerów i urządzeń domowych pula skończyła się w praktyce.
IPv6 rozwiązuje ten problem długością adresu: 128 bitów. To 2¹²⁸ ≈ 3,4 × 10³⁸ możliwych adresów, czyli 2⁹⁶ ≈ 7,9 × 10²⁸ razy więcej niż w IPv4. Każde urządzenie może dostać własny adres publiczny, bez sztuczek z translacją adresów – NAT ma dom w haśle klasy adresów IP, adresy prywatne i NAT.
Zapis też jest inny. IPv4 to cztery liczby dziesiętne rozdzielone kropkami, IPv6 to osiem grup po cztery cyfry szesnastkowe rozdzielonych dwukropkami. Adres pisany w całości jest bardzo długi, więc reguły zapisu pozwalają go skrócić – i to właśnie skracanie jest na maturze najczęściej sprawdzane.
Cztery zasady, które wystarczą do większości pytań:
0db8 skraca się do db8, 0000 do 0, ale 1200 zostaje 1200 – zer z końca grupy nie usuwa się nigdy.Budowa adresu IPv4, maska podsieci i poprawność zapisu czterech liczb dziesiętnych to osobny temat – patrz adresowanie IP i maska podsieci. Rozwinięcia ogólnych skrótów sieciowych zbiera słownik skrótów sieciowych.
Weź pełny adres 2001:0db8:0000:0000:0000:ff00:0042:8329 i policz, co w nim jest:
Dozwolone znaki to 0–9 oraz a–f (wielkość liter nie ma znaczenia, choć zaleca się małe). Jedna cyfra szesnastkowa odpowiada dokładnie czterem bitom, więc przeliczanie grupy na bity sprowadza się do rozpisania czterech cyfr.
Krok 1 – usuń zera wiodące w każdej grupie. Robi się to osobno w każdej z ośmiu grup:
2001 : 0db8 : 0000 : 0000 : 0000 : ff00 : 0042 : 8329 2001 : db8 : 0 : 0 : 0 : ff00 : 42 : 8329
Zwróć uwagę, że ff00 zostało bez zmian. Zero wiodące to zero z lewej strony grupy; ff00 ma zera na końcu i one niosą wartość.
Krok 2 – zwiń najdłuższy ciąg grup zerowych do ::. W przykładzie zerowe są grupy 3, 4 i 5, więc trzy dwukropki zamieniają się w jeden podwójny:
2001:db8::ff00:42:8329
To jest ostateczny, kanoniczny zapis tego adresu. Rozwinięcie działa w drugą stronę: liczysz grupy zapisane jawnie (tu pięć), odejmujesz od ośmiu i wiesz, że :: zastępuje trzy grupy 0000.
Trzy pułapki reguły skracania. Po pierwsze, :: wolno wstawić tylko raz – 2001:db8::1::2 jest błędny, bo nie da się rozstrzygnąć, ile zer schowano z przodu, a ile z tyłu. Po drugie, gdy w adresie są dwa ciągi zer, zwija się dłuższy, a przy równej długości ten bardziej z lewej: adres 2001:0db8:0000:0000:abcd:0000:0000:1234 ma dwa ciągi po dwie grupy, więc kanoniczny skrót to 2001:db8::abcd:0:0:1234. Po trzecie, :: postawione w miejsce jednej grupy zer jest dopuszczalne, ale niezalecane – pojedynczą grupę zostawia się jako 0, czyli pisze się 2001:db8:0:1:1:1:1:1, a nie 2001:db8::1:1:1:1:1.
Prefiks sieci. W IPv6 nie używa się maski w postaci czterech liczb – jest wyłącznie zapis z ukośnikiem. Standardowa podsieć to /64: pierwsze 64 bity opisują sieć, ostatnie 64 identyfikują urządzenie w tej sieci. Jedna taka podsieć mieści 2⁶⁴ = 18 446 744 073 709 551 616 adresów, czyli ponad cztery miliardy razy więcej niż cały internet IPv4.
Typy adresów po prefiksie. Pierwsze bity mówią, do czego adres służy: 2000::/3 to adresy globalne (routowane w internecie), fe80::/10 to adresy link-local używane tylko w obrębie jednego łącza, fc00::/7 to adresy lokalne ULA, ff00::/8 to grupy multicast. Rozgłaszania (broadcast) w IPv6 nie ma w ogóle – jego rolę przejął multicast.
Skąd urządzenie bierze adres IPv6. Najczęściej z SLAAC: router rozsyła komunikat Router Advertisement z prefiksem /64, a host dokleja do niego własną, 64-bitową część i sam sprawdza, czy nikt jej już nie używa. Serwer DHCP też potrafi rozdawać adresy IPv6 (w wersji DHCPv6), ale nie jest do tego konieczny. W praktyce urządzenia pracują w trybie dual stack: mają jednocześnie adres IPv4 i IPv6, a o tym, którym połączyć się z serwerem, decyduje odpowiedź serwera nazw – rekord A dla IPv4 i AAAA dla IPv6, patrz DNS.
Adres IPv6 w adresie strony. Dwukropek w URL-u oddziela numer portu, więc adres IPv6 wpisany do przeglądarki bierze się w nawiasy kwadratowe: http://[2001:db8::1]:8080/index.html.
| Nr grupy | Pełny zapis (16 bitów) |
|---|---|
| 1 | 2001 |
| 2 | 0db8 |
| 3 | 0000 |
| 4 | 0000 |
| 5 | 0000 |
| 6 | ff00 |
| 7 | 0042 |
| 8 | 8329 |
| Nr grupy | Po skróceniu |
|---|---|
| 1 | 2001 |
| 2 | db8 (usunięte zero wiodące) |
| 3-5 | :: (trzy grupy zer zwinięte) |
| 6 | ff00 (zera końcowe zostają) |
| 7 | 42 (usunięte dwa zera wiodące) |
| 8 | 8329 |
| Zapis | Poprawny? | Dlaczego / pełna postać |
|---|---|---|
| 2001:0db8:0000:0000:0000:ff00:0042:8329 | tak | pełny zapis, osiem grup po cztery cyfry; skrót to 2001:db8::ff00:42:8329 |
| 2001:db8::ff00:42:8329 | tak | skrót powyższego: usunięte zera wiodące, trzy grupy zer zwinięte do :: |
| 2023:0db8:0000:0000:0000:0000:1428:57ab | tak | odpowiedź A z Informatora 2023; skrót to 2023:db8::1428:57ab |
| 2023:0db8:0:0:0:0:11428:57ab | nie | odpowiedź B z Informatora 2023; grupa 11428 ma pięć cyfr, a mieści się najwyżej cztery |
| 2023:0db8:0:0::128:57ab | tak | odpowiedź C; :: zwija dwie grupy zer, pełny zapis to 2023:0db8:0000:0000:0000:0000:0128:57ab |
| 2023:0db8::428:57ab | tak | odpowiedź D; :: zwija cztery grupy zer, pełny zapis 2023:0db8:0000:0000:0000:0000:0428:57ab |
| 2023:db8::28:57ab | tak | odpowiedź E; to samo co wyżej plus usunięte zero wiodące w drugiej grupie |
| 2001:db8::1::2 | nie | dwa razy ::, więc nie da się odtworzyć, ile grup zer kryje się pod którym |
| 2001:0db8:0:0:0:0:0:1:2 | nie | dziewięć grup; bez :: musi być dokładnie osiem |
| 2001:0gb8::1 | nie | litera g nie jest cyfrą szesnastkową; dozwolone są tylko 0-9 oraz a-f |
| 2001:db8:0:1:1:1:1:1 | tak | tylko jedna grupa zerowa; :: byłoby tu dopuszczalne, ale niezalecane |
| 2001:0db8:0000:0000:abcd:0000:0000:1234 | tak | dwa równe ciągi zer, więc :: idzie w pierwszy: 2001:db8::abcd:0:0:1234 |
| ::1 | tak | adres pętli zwrotnej; pełny zapis 0000:0000:0000:0000:0000:0000:0000:0001 |
| ::ffff:192.168.1.10 | tak | adres IPv4 odwzorowany w IPv6; ostatnie 32 bity zapisane po staremu |
| 192.168.1.10 | nie | to adres IPv4: cztery liczby dziesiętne i kropki, w sumie 32 bity |
| Cecha | IPv4 | IPv6 |
|---|---|---|
| Długość adresu | 32 bity | 128 bitów |
| Zapis | cztery liczby dziesiętne | osiem grup szesnastkowych |
| Separator | kropka | dwukropek |
| Liczba adresów | 4 294 967 296, czyli około 4,3 miliarda | 2¹²⁸, około 3,4 × 10³⁸ |
| Przykład | 192.168.1.10 | 2001:db8::ac1:1 |
| Adres pętli zwrotnej | 127.0.0.1 | ::1 |
| Zapis w adresie strony | http://192.168.1.10:8080/ | http://[2001:db8::1]:8080/ |
| Zapis sieci | maska 255.255.255.0 lub /24 | wyłącznie prefiks, zwykle /64 |
| Konfiguracja adresu | ręczna lub z serwera DHCP | ręczna, DHCPv6 albo automatyczna przez SLAAC |
| Rozgłaszanie | adres rozgłoszeniowy w każdej sieci | brak, zastąpione przez multicast |
| Potrzeba NAT | tak, bo adresów brakuje | nie, adresów publicznych starcza |
| Rekord w systemie nazw | A | AAAA |
| Nazwa angielska | Internet Protocol version 4 | Internet Protocol version 6 |
Podwójny dwukropek użyty dwa razy. To najczęstszy sposób, w jaki układający zadanie psuje adres w odpowiedziach do wyboru. 2001:db8::1::2 wygląda niewinnie, ale jest nie do rozwinięcia: pierwszy :: mógłby zastępować jedną grupę i drugi cztery albo odwrotnie. Reguła jest zerojedynkowa – w adresie może wystąpić najwyżej jeden ::.
Grupa dłuższa niż cztery cyfry. Jedna grupa to 16 bitów, czyli dokładnie cztery cyfry szesnastkowe. Zapis w rodzaju 11428 ma ich pięć i jest błędny niezależnie od tego, co jest wokół. Warto przy każdym adresie z zadania przejechać wzrokiem po grupach i policzyć znaki – to sprawdzenie zajmuje sekundy i wyłapuje większość pułapek.
Usuwanie zer z końca grupy. Skraca się wyłącznie zera wiodące: 0042 to 42, 0db8 to db8, 0000 to 0. Grupy 1200 nie wolno zapisać jako 12, bo to byłaby zupełnie inna wartość. Ten błąd jest zdradliwy, bo powstały zapis wygląda poprawnie i przechodzi „na oko”.
Mylenie liczby bitów: 32, 48, 128. Adres IPv4 ma 32 bity, adres MAC 48, a IPv6 128. Zadania prawda/fałsz podsuwają te trzy liczby wymiennie, dorzucając 64 jako czwartą, fałszywą możliwość. Warto zapamiętać je jako komplet, bo pytanie o jedną prawie zawsze niesie pozostałe jako odpowiedzi-pułapki.
„IPv6 jest cztery razy większy”. Adres jest czterokrotnie dłuższy w bitach, ale liczba kombinacji rośnie wykładniczo, nie liniowo: 2¹²⁸ to 2⁹⁶ razy więcej niż 2³², a nie cztery razy więcej. To ulubione zdanie do oceny prawda/fałsz.
Adres IPv6 wklejony do przeglądarki bez nawiasów kwadratowych. W URL-u dwukropek zapowiada numer port, więc http://2001:db8::1/ jest dla przeglądarki nieczytelne. Poprawnie: http://[2001:db8::1]/, a z portem http://[2001:db8::1]:8080/.
::1 to pętla zwrotna, fe80::/10 adresy link-local, 2000::/3 adresy globalne, ::ffff:a.b.c.d odwzorowanie IPv4.Konfiguracja sieciowa laptopa w sieci domowej z włączonym IPv6:
| Pole | Wartość |
|---|---|
| Adres IPv6 (pełny zapis) | 2001:0db8:0000:0000:0000:0000:0ac1:0001 |
| Prefiks sieci | 2001:0db8:0000:0000::/64 |
| Brama domyślna | fe80::1 |
| Adres pętli zwrotnej | ::1 |
Uzupełnij tabelę na podstawie tej konfiguracji:
| Pytanie | Odpowiedź |
|---|---|
| Ile bitów ma adres IPv6 laptopa? | |
| Z ilu grup składa się jego pełny zapis? | |
| Ile bitów ma jedna grupa? | |
| Ile cyfr szesnastkowych ma pełny zapis adresu? | |
| Skrócony zapis adresu laptopa | |
| Ile grup zerowych zwija w nim podwójny dwukropek? | |
| Ile bitów opisuje sieć przy prefiksie /64? | |
| Pełny zapis adresu bramy domyślnej | |
| Ile bitów ma adres IPv4 tego samego laptopa? |
Podwójnego dwukropka wolno użyć w jednym adresie , a w pojedynczej grupie pomija się zera . Adres IPv6 wpisany do przeglądarki bierze się w nawiasy .
IPv6 ma 128 bitów, IPv4 ma 32 bity. To najczęściej sprawdzana para liczb w zadaniach o adresowaniu. Trzecia liczba z tego zestawu to 48 bitów adresu fizycznego karty sieciowej, a 64 to typowy dystraktor.
Najpierw w każdej z ośmiu grup usuwasz zera wiodące, potem najdłuższy ciąg grup złożonych z samych zer zamieniasz na podwójny dwukropek. Przy dwóch ciągach tej samej długości zwijasz ten bardziej z lewej. Zer z końca grupy nie usuwasz nigdy.
Najwyżej raz. Przy dwóch wystąpieniach nie dałoby się odtworzyć, ile grup zerowych kryje się pod którym z nich, więc taki zapis jest nieprawidłowy.
Po trzech rzeczach: grupa dłuższa niż cztery cyfry, więcej niż osiem grup przy braku podwójnego dwukropka i znak spoza zakresu 0–9 oraz a–f. Każda z nich dyskwalifikuje adres niezależnie od reszty zapisu.
Że pierwsze 64 bity opisują sieć, a pozostałe 64 identyfikują urządzenie w tej sieci. Taka podsieć mieści 2⁶⁴, czyli ponad 18 trylionów adresów.
Bo w adresie strony dwukropek oddziela numer portu i bez nawiasów przeglądarka nie wie, gdzie kończy się adres. Poprawny zapis to na przykład http://[2001:db8::1]:8080/index.html.
Nie w najbliższym czasie. Obie wersje działają równolegle w trybie dual stack: to samo urządzenie ma jednocześnie adres IPv4 i adres IPv6, a wybór wersji przy łączeniu z serwerem zależy od tego, jaki adres zwróci serwer nazw.
2 do potęgi 96 razy więcej, bo o tyle bitów dłuższy jest adres. To około 7,9 × 10²⁸, stąd stwierdzenie, że pula jest praktycznie niewyczerpalna. Adres nie jest „cztery razy większy”, mimo że ma cztery razy więcej bitów.
Do tego hasła nie mamy jeszcze przypisanych pojedynczych zadań. Cały spis zadań maturalnych z tego działu jest tutaj:
Zagadnienia z tego samego obszaru matury – warto je powtórzyć razem: