IP

Przejście z IPv4 na IPv6

Strategie migracji: dual stack, tunelowanie i mechanizmy translacji.

Współistnienie IPv4 i IPv6

IANA wyczerpała pulę nieprzydzielonych adresów IPv4, lecz przydzielone adresy nadal są używane. IPv6 oferuje 128-bitową przestrzeń adresową, ale nie zastępuje IPv4 przez proste przełączenie. Główny problem polega na tym, że IPv4 i IPv6 nie są ze sobą bezpośrednio kompatybilne.

Urządzenie obsługujące wyłącznie IPv4 nie przetworzy pakietu IPv6, a urządzenie obsługujące wyłącznie IPv6 nie przetworzy pakietu IPv4. Nagłówki, schematy adresacji i część funkcji protokołów są różne. Jednoczesne przełączenie wszystkich urządzeń wymagałoby zastąpienia stosów protokołów, adresacji, routingu i usług zależnych od IPv4.

Internet pozostaje w długim, stopniowym okresie przejściowym, w którym IPv4 i IPv6 współistnieją. Inżynierowie muszą zapewnić komunikację między urządzeniami, sieciami i usługami gotowymi na IPv6 oraz elementami pozostającymi wyłącznie przy IPv4. Do tego celu stosuje się trzy główne kategorie mechanizmów przejściowych: równoległe stosy na końcach, tunele między routerami oraz translację na granicy różnych wersji.

1. Dual Stack

Jednym ze sposobów współistnienia jest podejście Dual Stack (podwójny stos), w którym host lub router obsługuje IPv4 i IPv6 równocześnie. Każdy stos ma własną adresację i routing, a aplikacja wybiera rodzinę adresów zgodnie z konfiguracją systemu.

Urządzenie (jak nowoczesny komputer, smartfon czy router) implementuje oba stosy protokołów. Ma adres IPv4 oraz jeden lub wiele adresów IPv6 na interfejsie sieciowym, dzięki czemu może natywnie komunikować się z urządzeniami obu typów. Adres IPv4 może być prywatny za NAT, a adresy IPv6 mogą obejmować adres lokalny i globalny. Stos IPv4 oraz stos IPv6 utrzymują oddzielne tablice routingu i reguły zapory.

Jak Działa Dual Stack

  1. Żądanie Aplikacji: Twoja przeglądarka internetowa chce połączyć się z www.przyklad.pl.
  2. Zapytanie DNS: System operacyjny wysyła zapytanie do serwera DNS, aby przetłumaczyć tę nazwę na adres IP. Urządzenie z podwójnym stosem prosi o oba typy rekordów:
    • Rekord dla adresu IPv4.
    • Rekord dla adresu IPv6.
  3. Podejmowanie decyzji: Serwer DNS odpowiada z oboma adresami, jeśli serwer docelowy również jest dual-stack. Rekord A dostarcza adres IPv4, a AAAA adres IPv6. Domyślna polityka może nadawać IPv6 wyższy priorytet, lecz zależy to od dostępnych adresów i konfiguracji. Happy Eyeballs może równolegle próbować IPv6 i IPv4 oraz użyć połączenia, które powiedzie się jako pierwsze. Przy samym rekordzie A urządzenie korzysta z IPv4.
  4. Komunikacja natywna: Połączenie jest nawiązywane przy użyciu wybranego protokołu. Nie jest potrzebne tłumaczenie ani enkapsulacja, ponieważ źródło i cel używają tej samej wersji IP.

Zalety Dual Stack

  • Natywna wydajność: Połączenie nie ma narzutu translacji ani enkapsulacji, więc ścieżka danych nie wymaga dodatkowej bramy tego typu.
  • Wysoka kompatybilność: Urządzenie z podwójnym stosem może komunikować się z istniejącymi usługami IPv4 oraz usługami IPv6.
  • Oddzielne stosy: Każda wersja protokołu ma własną konfigurację adresów, routingu i zapory, więc zmiany można wprowadzać niezależnie.

Wady Dual Stack

  • Zużywa adresy IPv4: Dual Stack nie usuwa niedoboru adresów IPv4. Wdrożenie nadal wymaga adresacji IPv4, lecz hosty mogą korzystać z adresów prywatnych za NAT, a adresy publiczne mogą być współdzielone.
  • Zwiększona złożoność: Administratorzy sieci muszą zarządzać i zabezpieczać dwie oddzielne sieci równolegle (IPv4 i IPv6), w tym plany adresacji, routing i reguły zapory sieciowej dla obu. Błąd w jednej z tych płaszczyzn może powodować różne wyniki wyboru ścieżki.

2. Tunelowanie przez IPv4

Gdy urządzenie obsługuje IPv6, a fragment ścieżki dostawcy obsługuje tylko IPv4, pakiet IPv6 może zostać przeniesiony przez tunel. Router na początku tunelu enkapsuluje pakiet IPv6 w IPv4, a router na końcu usuwa nagłówek nośny. Oba końce tunelu muszą znać punkty terminacji, a dodatkowy nagłówek zmniejsza efektywne MTU i może wymagać obniżenia rozmiaru segmentów.

polega na umieszczeniu całego pakietu IPv6 jako ładunku pakietu IPv4. Pakiet nośny przechodzi przez sieć IPv4, a router na końcu tunelu usuwa nagłówek IPv4, odzyskuje pakiet IPv6 i przekazuje go dalej.

Typy tuneli

Można wyróżnić dwie kategorie mechanizmów tunelowania:

  • Tunele manualne (statyczne): Administrator ręcznie konfiguruje stałe połączenie punkt-punkt między dwoma konkretnymi routerami przez sieć IPv4. Rozwiązanie jest przewidywalne, lecz wymaga konfiguracji każdego łącza.
  • Tunele Automatyczne: Te mechanizmy mogą być tworzone dynamicznie w razie potrzeby. Przykłady to:
    • 6to4: Historyczna technika tunelowania, która osadza informacje o adresie IPv4 w adresie IPv6 i automatycznie tworzyła tunele między lokalizacjami. Anycastowy prefiks przekaźników 6to4 został wycofany, a wdrażanie samej techniki wymaga oceny jej ograniczeń operacyjnych.
    • Teredo: Historyczna technika tunelowania IPv6 przez urządzenia NAT IPv4, opracowana dla sytuacji, w których inne metody tunelowania nie przechodziły przez NAT. Nie jest ogólną rekomendacją dla nowych wdrożeń.

Zalety Tunelowania

  • Zapewnia łączność IPv6: Umożliwia łączenie sieci IPv6 przez szkielet obsługujący tylko IPv4.
  • Stopniowe wdrażanie: Pozwala organizacjom zacząć używać IPv6 wewnętrznie bez czekania, aż ich dostawca internetu zmodernizuje całą swoją sieć. Administrator może uruchomić tunel między wybranymi routerami.

Wady Tunelowania

  • Narzut: Każdy pakiet przenosi dodatkowy nagłówek IPv4 (co najmniej 20 bajtów), co zużywa dodatkową przepustowość i zmniejsza dostępne MTU dla pakietu IPv6.
  • Opóźnienie i Złożoność: Procesy enkapsulacji i dekapsulacji dodają niewielkie opóźnienie. Konfiguracja i rozwiązywanie problemów z tunelami mogą być złożone.
  • Problemy z NAT: Wiele protokołów tunelowania ma trudności z działaniem przez urządzenia NAT, często wymagając specjalnych konfiguracji lub protokołów, takich jak Teredo. Należy także kontrolować fragmentację i filtrowanie ruchu tunelowego.

3. Translacja IPv4 i IPv6

Gdy klient obsługuje tylko IPv6, a serwer tylko IPv4, Dual Stack nie zapewnia wspólnego stosu na obu końcach. Tunelowanie także nie rozwiązuje tego przypadku, ponieważ serwer końcowy nie obsługuje enkapsulowanego pakietu IPv6. Potrzebna jest translacja na granicy sieci.

jest realizowana przez bramę, często z użyciem stanowego NAT64, umieszczoną na granicy sieci IPv6 i IPv4. Brama przepisuje nagłówki, tworząc pakiet IPv4 dla kierunku do serwera i pakiet IPv6 dla kierunku powrotnego. DNS64 uzupełnia tę konfigurację, gdy klient korzysta z nazwy domenowej, a serwer publikuje wyłącznie rekord A.

Jak działa translacja NAT64

  1. Perspektywa Klienta: Klient wyłącznie z IPv6 w sieci wewnętrznej chce połączyć się z serwer-tylko-ipv4.pl.
  2. DNS64: Klient wysyła zapytanie DNS o rekord AAAA (IPv6). Serwer DNS64 sprawdza, czy serwer-tylko-ipv4.pl ma tylko rekord A (IPv4), na przykład 212.77.98.9. Następnie syntetyzuje rekord AAAA, osadzając adres IPv4 w prefiksie IPv6, na przykład 64:ff9b::d44d:6209, gdzie d44d:6209 jest zapisem szesnastkowym 212.77.98.9. Prefiks 64:ff9b::/96 jest dobrze znanym prefiksem NAT64.
  3. Pakiet wychodzący: Klient IPv6 wysyła pakiet na zsyntetyzowany adres IPv6. Pakiet dociera do krawędzi sieci, gdzie znajduje się brama NAT64.
  4. Translacja: Stanowa brama NAT64 rozpoznaje prefiks i wyodrębnia adres IPv4. Tworzy nowy pakiet IPv4, tłumaczy źródłowy adres IPv6 na własny publiczny adres IPv4 oraz dodaje mapowanie portów, jak w PAT. Ustawia cel na 212.77.98.9 i wysyła pakiet do serwera. Tablica stanów wiąże przepływ IPv6 i porty transportowe z przetłumaczonym przepływem IPv4 do wygaśnięcia sesji. Mechanizm obsługuje TCP, UDP i ICMP.
  5. Droga powrotna: Serwer IPv4 odpowiada na publiczny adres bramy NAT64. Brama wyszukuje aktywną sesję w tablicy stanów i wykonuje translację odwrotną, tworząc pakiet IPv6 do pierwotnego klienta.

Zalety Translacji

  • Umożliwia komunikację: NAT64 jest jednym ze sposobów, aby urządzenie wyłącznie IPv6 mogło połączyć się z urządzeniem wyłącznie IPv4.
  • Oszczędza adresy IPv4: Cała sieć wyłącznie IPv6 może uzyskać dostęp do internetu IPv4 za pośrednictwem jednego lub małej puli publicznych adresów IPv4 na bramie NAT64.

Wady Translacji

  • Złożoność: Brama musi tłumaczyć nagłówki oraz utrzymywać stan aktywnych połączeń, co wymaga pamięci i mocy obliczeniowej.
  • Ograniczenia aplikacji: Aplikacje osadzające adresy IP w ładunku mogą wymagać dodatkowej obsługi, ponieważ translator zmienia nagłówki IP, lecz nie zna semantyki danych aplikacji.
  • Punkt awarii: Awaria bramy może przerwać komunikację między wersjami protokołu, dlatego wdrożenie wymaga redundancji.
  • Stanowość: Brama NAT64 musi utrzymywać tablicę stanów dla każdego aktywnego połączenia, co zużywa pamięć i zasoby. Wygasanie wpisów musi odpowiadać czasom życia protokołów transportowych.

Dobór mechanizmu przejściowego

Nie ma jednego rozwiązania odpowiedniego dla każdego etapu przejścia z IPv4 na IPv6. Duża sieć może łączyć wszystkie trzy mechanizmy zależnie od wymagań usług i dostępnej infrastruktury:

  • Dual Stack na wybranych serwerach i urządzeniach użytkowników, aby zapewnić natywny dostęp do obu wersji protokołu oraz wybór ścieżki zgodny z konfiguracją adresów.
  • Tunelowania, aby połączyć różne oddziały biurowe przez starszy szkielet internetowy obsługujący tylko IPv4, gdy oba końce mają obsługę IPv6.
  • Translacji (NAT64) na swojej krawędzi, aby umożliwić nowym, wewnętrznym urządzeniom wyłącznie z IPv6 dostęp do starszych stron internetowych i usług działających tylko na IPv4, z użyciem DNS64 dla nazw domenowych.

Stopniowe wdrażanie pozwala utrzymać usługi IPv4 podczas rozszerzania obsługi IPv6. Wybór mechanizmu zależy od topologii, możliwości urządzeń, wymagań aplikacji i dostępności adresów. Każdy wariant wymaga monitorowania ścieżek oraz reguł bezpieczeństwa w obu stosach i domenach routingu. Konfiguracja powinna uwzględniać obsługę awarii. Mechanizmy mogą współdziałać w jednej topologii w praktyce.

Powiązane artykuły