Gość (83.4.*.*)
Temat tunelowania IPv6 w sieciach IPv4 to jedno z tych zagadnień, które na pierwszy rzut oka wydają się skomplikowane przez gąszcz różnych formatów adresów. Odpowiadając bezpośrednio na Twoje pytanie: nie, tunelowanie IPv6-IPv4 nie odbywa się wyłącznie przy użyciu adresów w formacie ::ffff:x.x.x.x. W rzeczywistości ten konkretny zapis, o który pytasz, służy do czegoś zupełnie innego, a prawdziwe mechanizmy tunelowania korzystają z zupełnie innych struktur.
Adresy, które w szóstej grupie (segmenty są liczone od zera, więc technicznie mowa o segmentach od 0 do 5 wypełnionych zerami, a szóstym jako ffff) zawierają ffff, to tak zwane adresy IPv4-mapped IPv6.
Ich rola jest specyficzna: nie służą one do przesyłania pakietów przez tunele w Internecie, ale do komunikacji wewnątrz stosu sieciowego systemu operacyjnego. Pozwalają one aplikacjom napisanym pod IPv6 na "rozmawianie" z urządzeniami, które obsługują tylko IPv4. Gdy system widzi taki adres, wie, że musi wysłać standardowy pakiet IPv4. Jest to mechanizm ułatwiający programistom życie, a nie technologia tunelowania sensu stricto.
Jeśli chcemy przesłać ruch IPv6 przez infrastrukturę, która rozumie tylko IPv4 (czyli właśnie tunelowanie), stosujemy inne metody. Każda z nich ma swój własny sposób zapisu adresu. Oto najpopularniejsze z nich:
To jedna z najstarszych metod automatycznego tunelowania. W tym przypadku adresy IPv6 zawsze zaczynają się od prefiksu 2002::/16. Kolejne 32 bity (czyli druga i trzecia grupa adresu) to zapisany w systemie szesnastkowym publiczny adres IPv4 routera brzegowego.
192.0.2.1, Twój prefiks 6to4 będzie wyglądał jak 2002:c000:0201::/48.Teredo to technologia stworzona przez Microsoft, która pozwala na tunelowanie IPv6 nawet wtedy, gdy znajdujesz się za NAT-em (czyli masz prywatny adres IP). Adresy Teredo zaczynają się od prefiksu 2001:0::/32. Reszta adresu zawiera zakodowane informacje o serwerze Teredo, porcie UDP i publicznym adresie IPv4 klienta.
Ten protokół jest używany głównie wewnątrz sieci korporacyjnych. Tutaj adres IPv4 jest "ukryty" w ostatnich 64 bitach adresu IPv6 (identyfikatorze interfejsu). Przyjmuje on formę ::0:5efe:x.x.x.x lub ::5efe:x.x.x.x. Jak widzisz, pojawia się tu podobieństwo do Twojego przykładu, ale zamiast ffff mamy 5efe.
Warto wspomnieć o formacie ::x.x.x.x (same zera przed adresem IPv4). Były to tzw. adresy IPv4-kompatybilne, które miały służyć do automatycznego tunelowania, ale technologia ta została uznana za przestarzałą i obecnie się jej nie stosuje.
Mylenie adresów IPv4-mapped (::ffff:x.x.x.x) z mechanizmami tunelowania to częsty błąd, wynikający z podobieństwa wizualnego. Kluczowa różnica polega na tym, gdzie odbywa się proces "tłumaczenia":
Jeśli spotkasz adres tunelu 6to4, np. 2002:4b1e:2105::, możesz łatwo sprawdzić, jaki adres IPv4 się w nim kryje. Wystarczy zamienić pary szesnastkowe na system dziesiętny:
4b (hex) = 75 (dec)1e (hex) = 30 (dec)21 (hex) = 33 (dec)05 (hex) = 5 (dec)75.30.33.5.Podsumowując, format ::ffff:x.x.x.x jest tylko jednym z wielu sposobów łączenia światów IPv4 i IPv6 i choć wygląda na tunelowanie, służy głównie do wewnętrznej komunikacji systemowej w architekturze dual-stack. Prawdziwe tunelowanie korzysta z dedykowanych prefiksów, takich jak 2002:: czy 2001:0::.