IPv6 w pigułce: skracanie adresów i typy adresów
Adres IPv6 na pierwszy rzut oka wygląda jak losowy ciąg znaków: 2001:0db8:0000:0000:0000:0000:0042:8329. Dobrze się skraca, jeśli znasz dwie proste zasady — a znajomość typów adresów pozwala od razu rozpoznać, czy masz przed sobą adres publiczny, czy tylko lokalny. W tym artykule obie rzeczy od podstaw, z tabelą i ćwiczeniem.
Jak zbudowany jest adres IPv6
Adres IPv6 ma 128 bitów, zapisanych jako osiem grup po cztery cyfry szesnastkowe, rozdzielonych dwukropkami:
2001:0db8:0000:0000:0000:0000:0042:8329
W każdej grupie cyfry szesnastkowe to 0–9 i a–f. Zapis pełny jest poprawny, ale rzadko używany — adresy IPv6 niemal zawsze zapisuje się w formie skróconej.
Zasada 1: wyrzuć wiodące zera
W każdej grupie (osobno!) można pominąć wiodące zera. Grupa 0db8 to db8, grupa 0042 to 42, a grupa 0000 to po prostu 0:
2001:db8:0:0:0:0:42:8329
Uwaga: zera w środku i na końcu grupy zostają. Z 0042 nie zrobisz 4, bo zgubiłoby się zero znaczące.
Zasada 2: jeden podwójny dwukropek
Najdłuższy ciąg kolejnych grup samych zer można zastąpić podwójnym dwukropkiem :::
2001:db8::42:8329
Dwa ograniczenia, o których egzamin CCNA lubi pytać:
::może wystąpić w adresie tylko raz — inaczej nie da się odtworzyć długości wyciętych fragmentów,- zastępujemy najdłuższy ciąg zer. W adresie
2001:0:0:5:0:0:0:1ciąg trzech zer na końcu jest dłuższy niż dwa w środku, więc poprawnie jest2001:0:0:5::1.
Ćwiczenie w drugą stronę: ile grup zer kryje 2001:db8::1? Osiem grup minus trzy zapisane (2001, db8, 1) — czyli :: zastąpiło pięć grup zer.
Typy adresów: trzy rodzaje dostarczania
W IPv6 rozróżnia się trzy sposoby adresowania:
- unikast (unicast) — adres jednego interfejsu; pakiet trafia do dokładnie jednego odbiorcy,
- multicast (rozsyłanie grupowe) — adres grupy; pakiet trafia do wszystkich, którzy się do niej zapisali,
- anycast — adres przypisany do wielu interfejsów; pakiet trafia do najbliższego z nich (mierzone metryką routingu).
Broadcastu, znanego z IPv4, w IPv6 nie ma — jego rolę przejęły adresy multicast, np. ff02::1 to wszystkie hosty w segmencie, a ff02::2 to wszystkie routery.
Najważniejsze rodzaje adresów unicast
| Rodzaj | Prefiks | Do czego służy |
|---|---|---|
| Globalny (global unicast) | 2000::/3 |
Odpowiednik adresu publicznego IPv4 — routowany w internecie |
| Lokalny łącza (link-local) | fe80::/10 |
Komunikacja tylko w ramach jednego segmentu; generowany automatycznie |
| Unikalny lokalny (unique local) | fc00::/7, w praktyce fd00::/8 |
Sieci prywatne — odpowiednik zakresów RFC 1918 z IPv4 |
| Pętla zwrotna (loopback) | ::1/128 |
Test lokalnego stosu — odpowiednik 127.0.0.1 |
| Nieokreślony (unspecified) | ::/128 |
„Brak adresu” — używany np. przed przydzieleniem adresu |
Dwie rzeczy warte zapamiętania:
- Każdy interfejs z włączonym IPv6 ma adres link-local, nawet jeśli nie skonfigurowano mu niczego ręcznie — router ogłasza się nim w swoim segmencie i po nim komunikują się np. protokoły routingu. Nie da się go routować poza lokalny łącz.
- Adres globalny to „prawdziwy” adres, którym host rozmawia ze światem. Jeden interfejs może mieć oba naraz — i zwykle ma.
Ćwiczenie: adresy na żywo w Packet Tracerze
Zbuduj lab: dwa routery (R1, R2) połączone kablem, bez niczego więcej.
- Na R1 wejdź w interfejs w stronę R2 i nadaj adres globalny:
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ipv6 address 2001:db8:12::1/64
R1(config-if)# no shutdown
- Na R2 analogicznie:
ipv6 address 2001:db8:12::2/64ino shutdown. - Na R1 wydaj
show ipv6 interface brief. Zobaczysz dwa adresy na interfejsie: nadany ręcznie globalny2001:db8:12::1oraz automatycznie wygenerowany link-local zaczynający się odfe80. - Z R1 spinguj drugą stronę:
ping 2001:db8:12::2. Odpowiedzi powinny przyjść — ping po sieci bezpośrednio podłączonej działa bez dodatkowej konfiguracji. - Gdybyś chciał, żeby R1 przekazywał pakiety IPv6 dalej (routing), potrzebujesz globalnie
ipv6 unicast-routing— bez tego router traktuje IPv6 jak wyłączone poza własnym ruchem.
Na koniec nawyk z praktyki: gdy zobaczysz adres IPv6, najpierw sprawdź prefiks. fe80 — to tylko lokalny segment, fd — sieć prywatna, 2 lub 3 na początku — adres globalny. Ta jedna umiejętność rozwiązuje większość pytań „dlaczego ten host nie odpowiada”, zanim sięgniesz po jakiekolwiek polecenie.