Pakiety po nowemu

Trwają prace nad stworzeniem nowej wersji podstawowego protokołu internetowego .

Trwają prace nad stworzeniem nowej wersji podstawowego protokołu internetowego .

Realizacja tego zadania musiała zająć zespołowi IEFT (Internet Engineering Task Force -http://www.ietf.cnri.reston.va.us), zajmującemu się rozwojem internetowych standardów, co najmniej kilka lat. Należało opracować przede wszystkim spójną definicję nowego protokołu, następnie przetestować go. Na jego twórcach spoczywa zatem ogromna odpowiedzialność. Gdyby w nowej wersji protokołu znalazły się istotne błędy, rezultatem byłby długotrwały chaos w sieci globalnej i kosztowne poprawianie implementacji. Motywem podjęcia decyzji o rozpoczęciu prac nad nowym protokołem nie było "moralne" zestarzenie się poprzedniej wersji. IPv4 dobrze zniósł przyrost liczby komputerów w Internecie o ponad 10 tys. razy od czasu, kiedy zaczęto go użytkować w latach 80. i podobnie wielkie zwiększenie prędkości przesyłu danych. Podstawowym powodem zmiany IP jest wyczerpywanie puli dostępnych adresów internetowych.

Można właściwie przyjąć, że wyszukiwanie wad IP jest bezcelowe. Niemniej z uwagi na to, iż nowa wersja może być stosowana następnych kilkanaście lat, autorzy specyfikacji IPv6 podjęli trud wprowadzenia wielu usprawnień. Uproszczone zostały nagłówki pakietów, zmieniono sposób przetwarzania opcji (które mogą przesyłać informacje wielkości pakietów o rozmiarach przekraczających 65 535 bajtów; służyć do narzucania drogi pakietu; zawierać informacje o pakietach przesyłanych we fragmentach). Do nagłówka zostały dodane etykiety przepływu, które będą używane do wprowadzenia specjalnych reguł przetwarzania pakietów, np. przenoszących telekonferencje. Zawarto również w definicji protokołu autentyfikację i szyfrowanie, co pozwoli ujednolicić metody używane do kodowania danych przesyłanych w Internecie.

Komu adres, komu?

IPv4 potencjalnie umożliwia przydzielenie jednego adresu prawie każdemu mieszkańcowi Ziemi, ale nieunikniona nieefektywność (a często rozrzutność) wykorzystania przestrzeni adresowej powoduje, że za kilka lat zacznie brakować adresów (zdaniem Roberta Hindena, jednego z twórców IPv6, może to nastąpić jeszcze przed nadejściem roku 2000). Nowa, szósta wersja IP ma 2^128 adresów, co nawet przy najbardziej pesymistycznych założeniach ich wykorzystania daje ok. 1500 adresów na m.kw. powierzchni Ziemi (!).

Prace nad podstawową definicją protokołu zostały zakończone w grudniu 1995 r. opublikowaniem m.in. w dokumentach RFC 1883 (IPv6) i 1885 (ICMPv6). Wcześniej były używane protokoły eksperymentalne o różnych numerach i dlatego pominięto w przejściu od IPv4 do IPv6 numer 5.

Najważniejsze innowacje

IPv6 nie zakłada rewolucyjnych zmian, mimo że czasem nazywany jest IPng - New Generation. Wręcz przeciwnie - mechanizmy, które tak dobrze działają w IPv4, będą nadal używane, inne zmiany mają polegać na zwiększeniu zdolności adaptacji protokołu do nowych, czasem jeszcze nie znanych, warunków pracy oraz zwiększeniu wydajności przetwarzania pakietów.

Zasadniczym dezyderatem przy definiowaniu IPv6 było zachowanie zgodności z istniejącym oprogramowaniem. W niektórych sytuacjach osiągnięcie tego będzie trudne, ale zawsze możliwe. Stosunkowo proste ma być zachowanie zgodności maszyn z podwójnym stosem IPv4/v6 lub IPv6 z maszynami, których konstruktorzy z różnych powodów będą opóźniać zaimplementowanie nowej wersji. W nowej przestrzeni adresowej zostały nawet wydzielone dwa fragmenty, zawierające wszystkie adresy IPv4. Zdefiniowano mechanizmy automatycznego tunelowania ruchu IPv6 przez łącza przenoszące tylko IPv4. Wykorzystany został do tego m.in. nowy protokół wykrywania sąsiadów (Neighbor Discovery), który zawiera w sobie funkcje ARP (Address Resolution Protocol) i część funkcji ICMP. W IPv6 nie istnieją specjalne adresy broadcastu, które w IPv4 wykorzystywano do równoczesnego rozgłaszania informacji dla wszystkich maszyn w sieci lokalnej. Zamiast nich wykorzystywane są adresy multicastingowe, dzięki czemu znika jeden niepotrzebny typ adresu i w każdej podsieci zwalniany jest adres zajęty dotychczas na broadcast. Protokół IGMP (Internet Group Management Protocol - wykorzystywany teraz do powiadamiania routerów o chęci uczestniczenia w telekonferencji) został uwzględniony jako część ICMPv6. Zasadnicza zmiana dotyczy tylko protokołów IP i ICMP, a nie TCP czy UDP.

W nowej wersji uproszczono nagłówek pakietu IP, dzięki czemu - mimo czterokrotnego wydłużenia rozmiaru każdego z adresów - nie powiększono go za bardzo. Wprowadzono pojęcie następnego nagłówka w pakiecie, który może zawierać opcje, informacje o autentyczności danych i pakiet TCP czy UDP. Każdy nagłówek określa typ następnego poprzez pole Next Header. Ponieważ opcje znajdują się w osobnym nagłówku, nie podlegają one takim ograniczeniom jak w IPv4.

W nowym protokole (choć spodziewano się wprowadzenia takich rozszerzeń) nie ma wbudowanych możliwości rozliczania ruchu. Nadal nie będzie można łatwo ustalić, kto jest inicjatorem połączenia (np. przesyłu danych FTP). Próbę rozwiązania tego zagadnienia można podjąć na innym poziomie hierarchii protokołów, ale wątpliwe, czy tak zmienione protokoły byłyby w dalszym ciągu podobne do znanych nam z Internetu i równie atrakcyjne, nie posiadając głównej zalety TCP/IP - prostoty i elastyczności.

Z punktu widzenia programisty

Kod źródłowy aplikacji, które mają używać IPv6, wymaga wprowadzenia jedynie niewielkich zmian. Ostateczny wygląd interfejsu wywołań systemowych (Application Programing Interface) nie został jeszcze ustalony, najpierw bowiem będzie przetestowany w aplikacjach. Struktura zawierająca adres v6 jest większa. Zmieniają się wielkości argumentów pobieranych i zwracanych przez funkcje systemowe w rodzaju bind. Potrzebne są rozszerzenia oraz nowe funkcje i makra, służące do komunikacji z tzw. resolverem i translacji adresów. Wprowadzono także nowe stałe w plikach nagłówkowych.

Implementacje i aplikacje

Wielu producentów systemów operacyjnych pracuje nad implementacją IPv6. Niektóre już działają - kompletna wersja istnieje dla Unixa BSD 4.4. Można też używać w nowym protokole Telnetu w obie strony między np. Solarisem i Linuxem. W ofercie pojawiły się pierwsze routery obsługujące IPv6. Spis wszystkich systemów można znaleźć na serwerze Suna (http://playground.sun.com/pub/ipng/html/ipng-main.html).

Powiększa się rodzina aplikacji przystosowanych do pracy z IPv6. Obecnie dostępne są już wszystkie podstawowe programy - od Telnetu do przeglądarki i serwera WWW. Nowe wersje aplikacji mogą nadal działać także pod IPv4.

Porozmawiać z serwerem

Zapewne zbyt mało uwagi, jak do tej pory, poświęca się problemowi współpracy komputera dysponującego wyłącznie IPv4 z serwisami na maszynie, która ma tylko adres IPv6. Niestety, nie ma w tej kwestii prostego rozwiązania. Problemy, z którymi trzeba sobie poradzić, są podobne do występujących przy maskowaniu adresów (patrz np.ftp://sunsite.icm.edu.pl/pub/Linux/sunsite/docs/HOWTO/mini/IPüMasquerade). Serwisy z tego punktu widzenia można podzielić na takie, które wysyłają adresy wewnątrz przesyłanych danych (jak FTP), i pozostałe. W pierwszym przypadku translacja adresów wymaga zmiany zawartości przesyłanych danych.

Najprostszą metodą jest używanie serwera Proxy. Użytkownicy przeglądarek WWW mogą nawet nie zauważyć, kiedy któregoś dnia serwery proxy/cache protokołów HTTP, Gopher i FTP zaczną używać IPv6 równolegle z v4. Przeglądarka WWW przekazuje do Proxy adres nie interpretując go, otrzyma więc prawidłową odpowiedź nawet dla adresu, którego sama by nie zrozumiała. Istniejące aplikacje "prawdziwego" FTP nie używają Proxy, ale funkcja ta i tak powinna znaleźć się w zakresie ich możliwości. Dopóki to nie nastąpi, użytkownik maszyny IPv4 będzie musiał zadowolić się dostępem do serwera FTP, pracującego pod IPv6, za pośrednictwem przeglądarki WWW, a więc bez wykorzystania wszystkich możliwości protokołu FTP.

Druga metoda, polegająca na generowaniu fałszywych adresów, jest bardziej ogólna, ale trudniejsza do implementacji. Mogłaby polegać na zainstalowaniu specjalnego serwera DNS, który zamieniałby nazwę lub adres maszyny IPv6 na jeden z nie używanych adresów IPv4 i równocześnie włączałby translację odpowiadających sobie adresów v4 i v6 przez router. W niektórych sytuacjach może być również potrzebne maskowanie adresu maszyny IPv4.

Godzina 0

Cała operacja wymiany protokołów będzie trwała wiele lat. Zapewne za kilka lat internetowi operatorzy na prośbę o przydział określonej puli adresowej będą odpowiadali - "Niestety, możemy państwu przydzielić najwyżej 16 adresów v4, za to oferujemy od ręki 2^64 adresów v6". Jednak nawet wówczas nie trzeba będzie szczególnie śpieszyć się z aktualizacją systemów operacyjnych maszyn, które już mają swoje adresy v4. Ponieważ nowe wersje systemów i tak instalowane są w określonym odstępie czasowym, za którymś razem producent dostarczy nam też zgodny z IPv6. Po takiej zmianie maszyna posiadająca uprzednio adres v4 może go nadal używać w postaci oryginalnej lub jako adresu v6: ::a.b.c.d.

Zapewne w przyszłym roku zostaną ostatecznie zdefiniowane dodatkowe protokoły towarzyszące v6 (m.in. API i SKIP). Implementacje - zarówno dla komputerów, jak i routerów - staną się dojrzałe i będzie je można wykorzystywać na co dzień. Gdy ok. roku 2000 zabraknie nowych adresów v4, Internet powinien być już na to przygotowany. Nawet jeżeli oprogramowanie poszczególnych routerów nie zostanie zaktualizowane, będzie można nadal używać całej infrastruktury v4, a jako bramki do sieci IPv6-only (tj. maszyn bez adresów v4) dowolnej maszyny ze swojej sieci, tunelującej ruch v6 poprzez pakiety v4 (tego typu połączenia mogą mieć jednak nieoptymalną topologię).

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200