Gość (83.4.*.*)
Świat technologii sieciowych bywa skomplikowany, zwłaszcza gdy mowa o przejściu ze starego standardu IPv4 na nowszy IPv6. Choć te dwa protokoły różnią się od siebie diametralnie długością zapisu i strukturą, projektanci przewidzieli mechanizmy, które pozwalają im ze sobą współpracować. Dzięki temu w strukturze 128-bitowego adresu IPv6 często można znaleźć ukryty 32-bitowy adres IPv4. Rozpoznanie go wymaga jedynie znajomości kilku charakterystycznych wzorców i prefiksów.
Najprostszym sposobem na dostrzeżenie adresu IPv4 wewnątrz IPv6 jest szukanie tzw. adresów mapowanych (IPv4-mapped IPv6 addresses). Są one używane przez urządzenia obsługujące oba stosy protokołów (dual-stack), aby reprezentować adres IPv4 w formacie IPv6.
Taki adres zawsze zaczyna się od ciągu zer, po których następuje szesnastkowy zapis ffff. Wygląda to następująco:
::ffff:192.168.1.1
W tym przypadku sprawa jest ułatwiona, ponieważ systemy operacyjne często wyświetlają końcówkę w tradycyjnym formacie kropkowym. Jeśli jednak zobaczysz zapis czysto szesnastkowy, np. ::ffff:c0a8:0101, musisz wiedzieć, że ostatnie 32 bity (czyli dwa ostatnie bloki) to zakodowany adres IPv4.
Kolejnym miejscem, gdzie "ukrywa się" stary protokół, są adresy typu 6to4. Służą one do przesyłania pakietów IPv6 przez infrastrukturę IPv4 bez konieczności konfigurowania dedykowanych tuneli. Rozpoznasz je natychmiast po prefiksie 2002::/16.
Struktura takiego adresu wygląda tak:
2002:XXXX:XXXX::/48
Gdzie XXXX:XXXX to nic innego jak publiczny adres IPv4 zapisany w systemie szesnastkowym. Jeśli widzisz adres zaczynający się od 2002, możesz mieć pewność, że kolejne dwa bloki po pierwszym dwukropku zawierają zakodowany adres IPv4.
W środowiskach korporacyjnych możesz natknąć się na adresy ISATAP (Intra-Site Automatic Tunnel Addressing Protocol). Służą one do łączenia hostów IPv6 wewnątrz sieci IPv4. Charakterystyczną cechą tych adresów jest to, że w połowie zapisu (w części identyfikatora interfejsu) pojawia się ciąg 0000:5efe.
Przykład adresu ISATAP:
fe80::5efe:c0a8:0101
W tym przypadku ostatnie 32 bity (c0a8:0101) to ponownie nasz adres IPv4. Prefiks fe80 oznacza adres typu link-local, a magiczne 5efe sygnalizuje obecność mechanizmu ISATAP.
W nowoczesnych sieciach, które są niemal w całości oparte na IPv6, stosuje się mechanizm NAT64, aby umożliwić użytkownikom dostęp do zasobów starego internetu (IPv4). Standardowo używa się do tego celu specjalnego prefiksu:
64:ff9b::/96
W takim adresie ostatnie 32 bity to bezpośrednio zmapowany adres IPv4. Jeśli widzisz adres zaczynający się od 64:ff9b::, wystarczy spojrzeć na jego końcówkę, by wiedzieć, z jakim serwerem IPv4 następuje połączenie.
Jeśli adres nie jest zapisany w formie kropkowej (np. 192.168.1.1), tylko szesnastkowej (np. c0a8:0101), możesz go łatwo rozszyfrować. Każdy blok adresu IPv4 składa się z 8 bitów (oktetu), co w systemie szesnastkowym odpowiada dwóm znakom.
Przykład: Rozszyfrujmy końcówkę c0a8:0101
c0, a8, 01 oraz 01.c0: (C = 12) -> $12 \times 16 + 0 = 192$a8: (A = 10) -> $10 \times 16 + 8 = 168$01: $0 \times 16 + 1 = 1$01: $0 \times 16 + 1 = 1$192.168.1.1.Wynik: Adres IPv6 kończący się ciągiem c0a8:0101 zawiera w sobie adres IPv4 192.168.1.1.
Można by pomyśleć, że mieszanie dwóch standardów to proszenie się o kłopoty. W rzeczywistości to genialny sposób na "miękkie lądowanie". Dzięki temu, że IPv6 potrafi "nieść" w sobie informację o IPv4, routery i serwery mogą stopniowo przechodzić na nową technologię bez odcinania dostępu do starszych zasobów sieciowych. To trochę tak, jakbyśmy do nowoczesnego samochodu elektrycznego wstawili przejściówkę pozwalającą na ładowanie go z dowolnego gniazdka – daje to elastyczność w okresie przejściowym, który w przypadku internetu trwa już kilkanaście lat.