Jakie masz pytanie?

lub

W jaki sposób działały adresy IPv6 kompatybilne z IPv4 o strukturze ::x.x.x.x?

działanie adresów IPv6 struktura adresów sieciowych ewolucja protokołów internetowych
avatar

Gość (83.4.*.*)



Odpowiedź:

Przejście z protokołu IPv4 na IPv6 nie wydarzyło się z dnia na dzień. To proces, który trwa od lat i wymagał stworzenia mechanizmów pozwalających obu standardom współistnieć. Jednym z najwcześniejszych pomysłów na takie „pomostowanie” światów były adresy IPv6 kompatybilne z IPv4, charakteryzujące się specyficzną strukturą ::x.x.x.x. Choć dziś są one uznawane za przestarzałe (zdeprecjonowane), zrozumienie ich działania rzuca ciekawe światło na ewolucję internetu.

Budowa adresu IPv6 kompatybilnego z IPv4

Adresy IPv6 mają długość 128 bitów, podczas gdy stare adresy IPv4 mają ich tylko 32. Aby „zmieścić” stary adres w nowym formacie, inżynierowie zaproponowali prosty schemat wypełniania. Adres kompatybilny składał się z 96 bitów ustawionych na zero, po których następowało 32 bity właściwego adresu IPv4.

W zapisie wyglądało to następująco:

  • Postać binarna: 80 zer + 16 zer + 32 bity IPv4.
  • Postać tekstowa: ::192.168.0.1 (gdzie :: zastępuje ciąg zer).

Dzięki temu urządzenie obsługujące IPv6 mogło w łatwy sposób wyodrębnić adres IPv4 i użyć go do komunikacji w starszej części sieci.

Jak to działało w praktyce? Automatyczne tunelowanie

Głównym celem istnienia tych adresów było tzw. automatyczne tunelowanie. W czasach, gdy infrastruktura IPv6 dopiero raczkowała, pakiety nowego typu musiały często podróżować przez „morze” starego internetu IPv4.

Mechanizm działał w następujący sposób:

  1. Host wysyłał pakiet IPv6, kierując go na adres kompatybilny (np. ::1.2.3.4).
  2. Stos sieciowy urządzenia rozpoznawał, że docelowy adres IPv6 zawiera w sobie adres IPv4.
  3. Pakiet IPv6 był pakowany (enkapsulowany) wewnątrz standardowego pakietu IPv4.
  4. Jako docelowy adres w nagłówku IPv4 wpisywano te ostatnie 32 bity (czyli 1.2.3.4).
  5. Routery po drodze widziały zwykły ruch IPv4 i dostarczały go do celu.
  6. Urządzenie odbiorcze rozpakowywało „kapsułę” i odczytywało oryginalną treść IPv6.

Było to rozwiązanie genialne w swojej prostocie, ponieważ nie wymagało konfigurowania dedykowanych tuneli (jak np. 6in4) – wszystko działo się „samo” na podstawie struktury adresu.

Dlaczego te adresy odeszły do lamusa?

Mimo że pomysł wydawał się trafiony, adresy kompatybilne z IPv4 (zdefiniowane w RFC 1884 i RFC 2373) zostały oficjalnie wycofane przez IETF w dokumencie RFC 4291. Pojawiło się kilka kluczowych problemów:

  • Wymóg publicznego adresu IPv4: Aby tunelowanie działało, każdy host musiał posiadać unikalny, publiczny adres IPv4. Skoro głównym powodem przejścia na IPv6 był brak adresów IPv4, to rozwiązanie nie rozwiązywało problemu u podstaw.
  • Problemy z bezpieczeństwem: Automatyczne tunelowanie otwierało furtkę do ataków typu „spoofing” i omijania zapór ogniowych (firewalli), które nie zawsze potrafiły zajrzeć do wnętrza tunelu.
  • Efektywność: Istniały lepsze metody, takie jak Dual Stack (równoległe działanie obu protokołów) czy mechanizm 6to4, który był bardziej skalowalny.

Ciekawostka: IPv4-Compatible vs. IPv4-Mapped

Bardzo często myli się adresy kompatybilne (::x.x.x.x) z adresami mapowanymi (::ffff:x.x.x.x). To ważne rozróżnienie:

  1. Adresy kompatybilne (::1.2.3.4): Służyły do tunelowania ruchu IPv6 przez sieć IPv4. Są już nieużywane.
  2. Adresy mapowane (::ffff:1.2.3.4): Są używane do dziś wewnątrz systemów operacyjnych. Pozwalają aplikacjom napisanym pod IPv6 komunikować się z urządzeniami, które znają tylko IPv4. W tym przypadku nie dochodzi do tunelowania w internecie, a jedynie do wewnętrznej translacji w stosie sieciowym komputera.

Jak przeliczyć adres IPv4 na format kompatybilny (krok po kroku)

Jeśli chcielibyśmy ręcznie zapisać adres 192.168.1.1 w formacie kompatybilnym IPv6 (czysto teoretycznie, dla celów edukacyjnych):

  1. Zamień oktety na system szesnastkowy:
    • 192 = C0
    • 168 = A8
    • 1 = 01
    • 1 = 01
  2. Połącz je w pary: C0A8:0101.
  3. Dodaj 96 zer na początku: W zapisie skróconym to po prostu ::.
  4. Wynik: ::C0A8:0101 lub w zapisie mieszanym ::192.168.1.1.

Dziś, zamiast tych mechanizmów, w nowoczesnych sieciach stosuje się technologie takie jak NAT64/DNS64, które pozwalają urządzeniom „tylko IPv6” na swobodne przeglądanie zasobów starego internetu bez konieczności posiadania przez nich własnego adresu IPv4.

Podziel się z innymi: