IPv6/IPNG (ang. Internet Protocol version 6 / Internet Protocol Next Generation) – najnowsza wersja protokołu IP, będąca następcą IPv4, do którego stworzenia przyczynił się w głównej mierze problem małej, kończącej się ilości adresów IPv4. Dodatkowymi zamierzeniami było udoskonalenie protokołu IP: eliminacja wad starszej wersji, wprowadzenie nowych rozszerzeń (uwierzytelnienie, zlikwidowanie konieczności stosowania translacji adresów i adresów prywatnych w wielu sieciach, kompresja i inne), zminimalizowanie czynności wymaganych do podłączenia nowego węzła do Internetu (autokonfiguracja).

IPv6 stanowi tylko jedną warstwę w modelu OSI – nie ingeruje on w inne warstwy, np. aplikacyjną, co pozwala działać istniejącym już protokołom zasadniczo bez problemów.

IPv6 opisują dokumenty RFC 1883 i RFC 1884.

Spis treści

[edytuj] Wdrażanie IPv6

Pierwsze dokumenty RFC opisujące protokół IPv6 powstały w 1995 roku. W latach 1996-2006 w infrastrukturę Internetu wdrażany był projekt 6BONE w formie eksperymentalnej sieci działającej w oparciu o IPv6. Po zamknięciu tego projektu niektórzy dostawcy usług internetowych (ISP) rozpoczęli produkcyjne dostarczanie IPv6 "w kabelku" tak samo jak obecnie IPv4; spora część użytkowników IPv6 korzysta jednak z tego protokołu za pomocą tuneli wykorzystujących poprzednią wersję protokołu (tzw. tunelowanie IPv6-in-IPv4). Najprostszą metodą zestawienia takiego tunelu jest obecnie mechanizm 6to4.

[edytuj] Powody powstania IPv6 i brak kompatybilności z IPv4

Powszechnie stosowany obecnie protokół IPv4 ma pojemność około 4 miliardów adresów (232). W czasach gdy powstawał protokół IP (lata siedemdziesiąte), wydawało się to wystarczające - wtedy nikt nie przewidywał takiej popularności komputerów i Internetu. Jednakże już w pierwszych latach użytkowania IP podjęto prace mające na celu zaoszczędzenie adresów - wprowadzono wtedy adresowanie bezklasowe. Na początku lat dziewięćdziesiątych było jednak już jasne, że adresy IP wkrótce ulegną wyczerpaniu, więc w 1992 rozpoczęto prace nad stworzeniem IPNG - protokołu internetowego nowej generacji, co doprowadziło do pełnej definicji nowego protokołu w roku 1996. Niestety nowy protokół nie mógł nosić numeru wersji 5, ponieważ numer ten został już wcześniej użyty dla eksperymentalnego protokołu Internet Streaming Protocol (w zamierzeniu mającego przenosić treści audio i video), dlatego też użyto kolejnego numeru - 6.

Przy tworzeniu nowych technologii i protokołów projektanci często stają przed dylematem stworzenia całkiem nowej jakości, czy też utrzymywania zgodności wstecz, często kosztem pewnych ograniczeń lub wprowadzenia znacznej komplikacji. W czasach tworzenia IPv6 Internet nie był tak popularny jak teraz i szacowano[potrzebne źródło], że zamiana protokołu na IPv6 będzie możliwa bez utrzymania zgodności między nowszą i starszą wersją protokołu IP, dlatego też zaprojektowano całkowicie nowy, lepszy protokół, bez obciążenia balastem koniecznej zgodności z IPv4. Niestety prace nad projektowaniem IPv6 trwały dość długo, a po ich zakończeniu wizja końca adresacji IPv4 była wciąż dość odległa w czasie, dlatego też nowy protokół nie został wdrożony produkcyjnie. W tej chwili jednak ilość komputerów w Internecie i jego zastosowania uniemożliwiają zamianę protokołu IPv4 na IPv6 i jednocześnie oba protokoły muszą być używane przez urządzenia sieciowe, które przez to będą mieć faktycznie połączenie do dwóch rozłącznych sieci. Przewiduje się[potrzebne źródło], że protokół IPv4 będzie używany obok protokołu IPv6 przez najbliższe kilkanaście lat.

[edytuj] Różnice między protokołem IPv6 a IPv4

IPv6 IPv4
adresy 128 bitów 32 bity
wsparcie dla IPsec wymagane opcjonalne
identyfikacja ruchu dla QoS przy użyciu pola Flow Label brak
fragmentacja jedynie przez nadającego hosta przez nadającego hosta i routery
suma kontrolna w nagłówku brak obecna
opcje przeniesione do nagłówków dodatkowych w nagłówku
ramki zgłoszeń ARP zastąpiono wielopoziomowymi wiadomościami
typu Neighbor Solicitation
ARP
zarządzania grupami multicastowymi MLD (ang. Multicast Listener Discovery Protocol) IGMP
protokół komunikatów kontrolnych ICMPv6, wymagany ICMP
adresy transmisji zastąpione przez grupowy adres typu link-local do wysyłania danych do wszystkich węzłów w podsieci
przydzielanie adresu nie wymaga konfiguracji ręcznej ani DHCP wymagana konfiguracja ręczna, przez DHCP lub APIPA
mapowanie nazw hostów w DNS używa rekordów AAAA oraz PTR w domenie IP6.ARPA używa rekordów A oraz PTR w domenie IN-ADDR.ARPA

[edytuj] Adresowanie hostów

W protokole IPv4, przestrzeń adresowa opisywana była za pomocą 32 bitów, pozwalając zaadresować 232 ≈ 4,3×109 węzłów, co odpowiada liczbie 8,42 adresów/km² powierzchni Ziemi. W protokole IPv6 rozmiar tej przestrzeni został zwiększony do 128 bitów co daje 2128 ≈ 3,4×1038 kombinacji. Odpowiada to liczbie 6,7×1017 adresów/mm² powierzchni Ziemi.

Adres reprezentowany jest w postaci heksadecymalnej, z dwukropkiem co 16 bitów, np. 2001:0db8:0000:0000:0000:0000:1428:57ab.

Dozwolone jest skrócenie jednego bloku zer (nie dotyczy zer na końcach sekcji) na podwójny dwukropek, początkowe zera w grupach również mogą być opuszczane, w związku z czym poniższe sposoby zapisu są prawidłowe i równoznaczne sobie:

2001:0db8:0000:0000:0000::1428:57ab
2001:0db8:0:0:0:0:1428:57ab
2001:0db8:0:0::1428:57ab
2001:0db8::1428:57ab
2001:db8::1428:57ab

Sekwencja ostatnich 4 bajtów adresu może być również zapisana w postaci adresu IPv4, z wykorzystaniem kropek jako separatorów: adres ::ffff:1.2.3.4 jest równoznaczny adresowi ::ffff:102:304, jednak niewiele systemów pozwala na wprowadzanie tak podanych adresów.

Gdy jest to wymagane, do adresu może być dołączona maska sieci w notacji CIDR, np. 2002:0db8:1234::/48. Jeżeli natomiast zachodzi potrzeba podania portu docelowego (np. w adresie URL), adres IPv6 otaczany jest nawiasami kwadratowymi, np.:

http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/

[edytuj] Adresy specjalne

Następujące adresy i grupy adresów posiadają specjalne, zarezerwowane znaczenie:

  • ::/128 - adres nieokreślony (zawierający same zera).
  • ::1/128 - loopback, adres wskazujący na host lokalny.
  • ::/96 - pula zarezerwowana dla zachowania kompatybilności z protokołem IPv4 (pierwsze 96 bitów stanowią 0, pozostają 32 bity na adresy w formacie IPv4).
  • ::ffff:0:0/64 - jw., ale pozwala wykorzystywać komunikację według protokołu IPv6 w sieci IPv4.
  • 2001:7f8::/32 - pula zarezerwowana dla punktów wymiany ruchu, każdy z nich dostaje jedną podsieć /48.
  • 2001:db8::/32 - pula wykorzystywana w przykładach i dokumentacji - nigdy nie będzie wykorzystywana produkcyjnie.
  • 2002::/24 – adresy typu 6to4. Są to adresy wygenerowane na podstawie istniejących, publicznych adresów IPv4, dostępne dla każdego użytkownika.
  • 3ffe::/16 – adresy testowej sieci 6BONE (adresy zostały wycofane 6 czerwca 2006 w związku z zakończeniem działania 6BONE).
  • fc00::/7 — pula lokalnych unikalnych adresów IPv6 typu unicast (RFC 4193), będąca odpowiednikiem adresów prywatnych IPv4, choć, zgodnie z nazwą, powinny być unikalne na świecie.
  • fe80::/10 - pula link-local określa adresy w obrębie jednego łącza fizycznego (np. segmentu sieci Ethernet). Pakiety z tej puli nie są przekazywane poza podsieć, jej działanie jest analogiczne do automatycznie konfigurowanych adresów z puli 169.254.0.0/16 w IPv4.
  • fec0::/10 - pula site-local określa adresy w obrębie jednej lokalnej organizacji. Obecnie nie zaleca się wykorzystywanie tej puli, przyszłe implementacje IPv6 nie będą musiały obsługiwać tej puli.
  • ff00::/8 - pula multicastowa używana do komunikacji multicast.

W protokole IPv6 nie występuje pojęcie komunikacji broadcastowej (dane rozsyłane do wszystkich węzłów w danej podsieci). Aby wysyłać dane do wielu odbiorców jednocześnie, należy korzystać z komunikacji multicastowej.

[edytuj] Budowa datagramu

Bity 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31
0 Wersja Priorytet Etykieta przepływu
32 Długość danych Następny nagłówek Limit przeskoków
64  
Adres źródłowy (128 bitów)
 
96
128
160
192  
Adres docelowy (128 bitów)
 
224
256
288

[edytuj] Autokonfiguracja

Dla podsieci będących LAN-em przydzielana jest pula adresów z maską /64 co umożliwia tworzenie unikalnych numerów IP w oparciu o (niepowtarzalne) numery sprzętowe MAC; adres taki (dla adresu MAC 11:22:33:44:55:66) będzie miał postać: 64bitowy_prefiks_sieci:1322:33FF:FE44:5566 (pierwszy bajt adresu MAC zwiększany jest o 2, w środku wstawiane jest FFFE). 64-bitowy prefiks sieci jest informacją rozgłaszaną przy pomocy ICMPv6 przez routery; natomiast jeżeli host nie uzyskał wspomnianego prefiksu w jego miejsce wstawiane jest fe80:: (czyli fe80:0000:0000:0000) - taki adres nazywa się "link-local" (nie jest on routowany do sieci zewnętrznych, jednak zawsze (także gdy prefiks został uzyskany) może być używany wewnątrz sieci lokalnej). Oczywiście nadal możemy korzystać z przydziału IP przez DHCP oraz ręcznych ustawień IP.

[edytuj] DNS

Obsługa adresacji IPv6 w systemie DNS została zaprojektowana jako rozszerzenie systemu DNS, które jest całkowicie zgodne wstecz z IPv4, co nie wprowadza żadnych problemów implementacyjnych w tym zakresie. Nazwy hostów w DNS zawierają adres IPv4 w rekordzie 'A', adresy IPv6 umieszcza się w rekordzie 'AAAA' - taka konstrukcja powoduje, że dany host może mieć jednocześnie adres IPv4 i IPv6 w DNS. Odwrotny DNS wprowadza kilka różnic: adres IPv4 postaci 123.45.67.89 jest mapowany na rekord 89.67.45.123.in-addr.arpa, natomiast adres IPv6 postaci 2001:db8::1428:57ab mapowany jest na rekord b.a.7.5.8.2.4.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa (kiedyś w tym celu wykorzystywano domenę ip6.int). W przypadku obu rodzajów adresacji wykorzystuje się ten sam typ rekordu - 'PTR'.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

Tunel brokery obecne w Polsce:

Tunel brokery na świecie: