Jak skrócić i rozwinąć adres IPv6
Adres IPv6 ma 128 bitów zapisanych szesnastkowo w ośmiu grupach po cztery znaki, oddzielonych dwukropkami. Pełny zapis jest długi, dlatego standard dopuszcza dwa skróty. Pierwszy usuwa zera wiodące w każdej grupie, więc 0db8 zapisuje się jako db8, a 0000 jako 0. Drugi zastępuje jeden ciąg kolejnych grup zerowych podwójnym dwukropkiem.
Podwójnego dwukropka wolno użyć w adresie tylko raz. Gdyby wystąpił dwa razy, nie dałoby się odtworzyć, ile grup zerowych kryje się po każdej stronie. Najkrótszy zapis skraca najdłuższy ciąg co najmniej dwóch grup zer. Przy remisie wybiera pierwszy od lewej. Rozwinięcie działa odwrotnie: liczysz grupy zapisane jawnie, odejmujesz je od ośmiu i tyle grup zerowych wstawiasz w miejsce podwójnego dwukropka.
Niektóre rodzaje adresów rozpoznasz po ich początku. Zakres fe80::/10 to adresy link-local używane w obrębie jednego łącza, ff00::/8 to multicast, ::1 to pętla zwrotna, a 2000::/3 obejmuje globalny unicast oraz pule specjalne, w tym dokumentacyjną 2001:db8::/32. Zapis /64 przy adresie oznacza zwykle podział na 64 bity prefiksu sieci i 64 bity identyfikatora interfejsu.
Przykład: skrócenie adresu 2001:0db8:85a3:0000:0000:8a2e:0370:7334
1
Usuń zera wiodące w każdej grupie: 2001:db8:85a3:0:0:8a2e:370:7334.
2
Znajdź najdłuższy ciąg grup zerowych. Tutaj są dwie grupy obok siebie, na pozycjach czwartej i piątej.
3
Zastąp je podwójnym dwukropkiem: 2001:db8:85a3::8a2e:370:7334.
4
Sprawdzenie: jawnie zapisanych grup jest sześć, więc podwójny dwukropek odtwarza dokładnie dwie grupy zerowe i adres znów ma osiem grup.
Najczęstsze pytania
?
Ile razy można użyć podwójnego dwukropka w adresie IPv6?
Tylko raz w całym adresie. Drugi taki skrót sprawiłby, że nie da się jednoznacznie odtworzyć liczby grup zerowych po każdej ze stron, więc taki zapis jest nieprawidłowy.
?
Czy 0db8 i db8 to ten sam fragment adresu?
Tak. Zera wiodące wewnątrz grupy nie zmieniają wartości, więc wolno je pominąć. Nie wolno natomiast pomijać zer końcowych: 0370 to nie to samo co 037.
?
Co oznacza adres zaczynający się od fe80?
To adres link-local z zakresu fe80::/10, ważny wyłącznie w obrębie jednego łącza. Urządzenie nadaje go sobie samo, a ruch z takim adresem nie jest trasowany poza sieć lokalną.
?
Ile bitów ma adres IPv6 i ile grup ma jego pełny zapis?
Adres ma 128 bitów, zapisanych szesnastkowo w ośmiu grupach po cztery znaki, czyli po 16 bitów każda.
Gdzie ćwiczyć dalej
lekcje kursu o tym zagadnieniu
narzędzia z tej samej rodziny