profil

Protokół Ipv6 (Poprawka)

poleca 85% 102 głosów

Treść
Grafika
Filmy
Komentarze

Wstęp

Aktualnie jednym z istotnych problemów Internetu jest brak wolnych adresów IP. Problem ten jest częściowo rozwiązywany poprzez stosowanie translacjiadresów (NAT). Globalnym rozwiązaniem tego problemu jest aktualnie rozwijana nowa wersja protokołu internetowego - IPv6 (znanego również z jako IPng - IP Next Generation). IPv6 poza rozwiązaniem problemu braku adresów wprowadza wiele udogodnień i ulepszeń. Na dzień dzisiejszy dostępnych jest kilkanaście implementacji IPv6 (są to implementacje m.in. dla Linuxa, *BSD/KAME, Solarisa oraz Windows 9x/NT).

Porównanie IPv6 kontra IPv4

Adresy IPv6 składają się z 128 bitów (dla porównana adresy IPv4 składają się e tylko z 32 bitów). Łatwo jest sprawdzić, że liczba wszystkich adresów IPv6 to liczba 39 cyfrowa (dla IPv4 tylko 10 cyfrowa)! Przykładowy adres IPv6 wygląda tak: 3ffe:902:12::/48 (adres sieci). Domyślnie nie podane bity są równe „0” (np. „::” == „:0000:”). Nasz przykładowy adres podany z wykorzystaniem wszystkich bitów wyglądał będzie tak: 3ffe:0902:0012:0000:0000:0000:0000:0000/48. „/48” To długość prefiksu 1 w bitach. Taka notacja zgodna jest ze specyfikacją CIDR i dotyczy
również z IPv4 (RFC1518 [1], RFC1519 [2], RFC1812 [3]). W adresach IPv6 zasięg (scope) adresu definiowany jest przez początkowe bity adresu
i np. adresy rozpoczynające się od fe80: to adresy „link-local” - zasięg „local”. Poza zasięgiem local istnieją także: host, site, global.
Tutaj warto jedynie wspomnieć, [1], 0000:0000 że adresy z zasięgiem local są widoczne wyłącznie w obrębie sieci, do których podpięliśmy naszego Linuxa oraz do serwerów z którymi nasz Linux ma połączenie (czy to bezpośrednie czy przy pomocy tunelu). Istotną zaletą IPv6 jest autokonfiguracja (RFC2462 [11]). Osty IPv6 wykorzystują między innymi protokół Neighbor Discovery (ND) pozwalający im znaleźć sąsiadujące
routery i inne hosty. Dzięki ND serwery mogą śledzić, które routery lub serwery są aktywne i osiągalne, a następnie modyfikować swe tablice routingu itp. Ponadto serwery IPv6 próbują same skonfigurować swe interfejsy.Istnieją dwie metody takiej konfiguracji:
-stateless - nie wymaga żadnego konfigurowania hosta i wymaga minimalnej konfiguracjie routerów. Metoda ta pozwala hostom na wygenerowanie własnego adresu na podstawie lokalnie dostępnych informacji i informacji rozgłaszanych przez routery. Routery w tym przypadku rozgłaszają tylko prefiks sieci. Otrzymany od routera prefiks jest następnie uwzględniany podczas generowania adresów lokalnych
interfejsów. Jeśli router z jakiegoś powodu nie rozgłasza odpowiednich informacji, host moÿ ze wygenerować automatycznie tylko adresy link-local co pozwala na ograniczoną komunikację wyznaczoną zasięgiem (scope) local.

-stateful - hosty uzyskują wszelkie potrzebne informacje z serwera, który zawiera odpowiednią bazę danych. Metoda ta wykorzystuje DHCPv6.
Warto zaznaczyć, że hosty mogą wykorzystywać równocześnie obie metody do autokonfiguracji.

Mechanizm obsługi IPv6 pozwala także na tworzenie dynamicznych tuneli dla pakietów IPv6 w istniejącej infrastrukturze IPv4 pod warunkiem, że adres źródłowy i do-celowy pakietu to adres kompatybilny z IPv4. Wyróżniamy dwa rodzaje adresów IPv6 kompatybilnych z adresami IPv4:

-standardowe - adresy tego typu mają następujący format:
80 bitów 16 bitów 32 bity
0000..............................0000 0000 adres IPv4

-tylko IPv4 (opisujące hosty które nie wspierają IPv6) 3
80 bitów 16 bitów 32 bity
0000..............................0000 FFFF adres IPv4
Szczegóły opisane zostały w RFC1884 [4].


Do pozostałych zalet IPv6 należy zaliczyć także zmianę formatu nagłówka pakietów na nowy, pozwalający bez większych problemów dodawać w przyszłości nowe opcje bez poważnych zmian w samym nagłówku. IPv6 umożliwia także na wysyłanie datagramów zwanych jumbogramami o wielkości większej niż 65535 bajtów. By móc wykorzystać IPv6 w obrębie dzisiejszego Internetu wykorzystującego nadal protokół IPv4 stosuje się SIT (Simple Internet Transition) do tunelowania pakietów IPv6 wewnątrz pakietów IPv4.

Istnieje ogólnoświatowa, wirtualna sieć bazująca na protokole IPv6. Jest to sieć 6BONE. Wirtualna dlatego, że bazuje nie na własnych, oddzielnych łączach ale wykorzystuje istniejące łącza Internetu. Niemalże wszystkie połączenia pomiędzy węzłami sieci to tunele SIT o których była mowa.

Struktura sieci składa się z głównych węzłów - pTLA (pseudo Top Level Aggregator),węzłów podrzędnych - pNLA (pseudo Next Level Aggregator) oraz podpiętych do nich pozostałych hostów (leaf sites). W Polsce jedynym na dzień dzisiejszy pTLA jest ICM (Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego w Warszawie),
Czego potrzeba do używania IPv6?

Przede wszystkim potrzebujemy jądra Linuxa najlepiej w najnowszej wersji stabilnej z serii 2.2 lub 2.3. Jądro należy skompilować z aktywnymi następującymi opcjami:

[*] Prompt for development and/or incomplete code/drivers
[*] Kernel/User netlink socket
IP: tunneling
The IPv6 protocol (EXPERIMENTAL)
[*] IPv6: enable EUI-64 token format
[*] IPv6: disable provider based addresse


Oczywiście powyższe opcje można zarówno wkompilować w jądro jak i pozostawić w postaci ładowalnych modułów. Kolejną rzeczą, potrzebną do kompilacji programów wykorzystujących IPv6 jest biblioteka z nowymi funkcjami opisanymi m.in. w RFC2553[12]. Właściciele glibc 2.1.1
(i nowszych) nie będą mieli żadnych problemów, gdyż ich biblioteka zawiera wszystkie potrzebne funkcje. Posiadacze biblioteki libc5 mogą skorzystać z „protezy” jaką jest biblioteka libinet6 zawarta w pakiecie inet6-apps.

Do konfiguracji IPv6 możemy wykorzystać jednen z dwóch pakietów oprogramowania
- net-tools
- iproute2


Kompilacja iproute2 w środowisku wykorzystującym bibliotekę glibc przebiega stosunkowo bezboleśnie. W wyniku kompilacji otrzymujemy dwa programy - „ip” oraz „tc”. Pierwszy służy do konfiguracji sieci IPv4/IPv6, natomiast drugim możemy kontrolować algorytmy kolejkowania pakietów (w tym także IPv6), ale to już temat na inną pracę.



Warto wspomnieć!

Podobnie jak w IPv4 interfejsy sieciowe (np. eth0) mogą mieć przypisanych wiele adresów IPv6. Przeglądając adresy na interfejsie thernetowym (ip addr show eth0) zauważymy zapewne adres, o którym była już mowa - link-local. Adresy te dla interfejsów ethernet generowane są automatycznie na podstawie identyfikatora interfejsu np. adresu MAC karty sieciowej. Narzędzie „iproute2” w przeciwieństwie do „ifconfig” pozwala na oglądanie wszystkich adresów na danym interfejsie. Jedną z interesujących możliwości jest dodawanie kilku adresów IPv4/IPv6 do jednego interfejsu bez stosowania aliasów (oczywiście iproute2 pozwala na stosowanie aliasów jednak w rzeczywistości rzadko się tą opcję stosuje).

Załączniki:
Czy tekst był przydatny? Tak Nie

Czas czytania: 5 minut

Ciekawostki ze świata