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
- RFC 1883 Internet Protocol, Version 6 (IPv6) Specification
- RFC 1884 IP Version 6 Addressing Architecture
- http://www.6bone.pl/ - testowa sieć 6BONE w Polsce.
- http://www.pl.ipv6tf.org/ - Polska Grupa Robocza IPv6 (Polish IPv6 Task Force)
- http://www.mobile-ipv6.org/ - Mobile IP dla systemu Linux
- http://wss.pl/Articles/51.aspx - Wstęp do technologii IPv6
Tunel brokery obecne w Polsce:
- http://www.6bone.pl/ - testowa sieć 6BONE (projekt zamknięty 06.06.2006).
- http://min.waw.cdp.pl/ - IPv6 w Crowley
Tunel brokery na świecie:
- http://tunnelbroker.net/ - Hurricane Electric - USA
- http://www.sixxs.net - sixxs.net - Holandia (udostępnione są tu tunele z całej Europy, także z Polski)
- http://noc.xs26.net/ - Sieć XS26 - Czechy
|
||||||||||||||