Nowa wersja Protokołu Internetowego

Transkrypt

Nowa wersja Protokołu Internetowego
IPv6
Nowa wersja
Protokołu Internetowego
Tomasz Luchowski <[email protected]>
www.luchowski.com
25 kwietnia 2003
Spis treści
1. Dlaczego potrzebna jest nowa wersja protokołu IP?.............................................................3
2. IPv6 – następca obecnie używanego IPv4............................................................................3
3. Adresowanie IPv6..................................................................................................................4
3.1.Typy adresów..................................................................................................................5
4. Zapisywanie adresów IPv6 w URL........................................................................................5
5. Jak zaistnieć w sieci IPv6?....................................................................................................5
6. DNS.......................................................................................................................................5
6.1 Przykładowa konfiguracja odwrotnego DNSu dla BIND..................................................6
6.2 Przykładowa konfiguracja odwrotnego DNSu dla djbdns................................................6
7. Bibliografia.............................................................................................................................7
2
1. Dlaczego potrzebna jest nowa wersja protokołu IP?
Obecnie stosowana wersja protokołu IP została bardzo dobrze zaprojektowana –
świadczy o tym fakt, że już od ponad 20 lat jest najczęściej oraz najchętniej
stosowanym protokołem komunikacji używanym w sieciach, zarówno rozległych jak i
lokalnych. Istnieje jednak wiele powodów, dla których zapoczątkowano prace nad
następcą IPv4.
Podstawowym czynnikiem wymuszającym zmiany jest niewątpliwie niemal
wykładniczy wzrost liczby hostów w sieci Internet. W czasach, gdy powstawało IP,
32-bitowa przestrzeń adresowa wydawała się w zupełności wystarczająca.
Dynamiczny rozwój Internetu powoduje jednak, że już niedługo może zabraknąć
wolnych adresów.
Pomimo tego, że 32-bitowa przestrzeń adresowa wydaje się być bardzo duża, tak
naprawdę jesteśmy w stanie podłączyć znacznie mniej hostów – duże straty
wynikają zarówno ze sposobu, w jaki adresy są przydzielane (rozdysponowanie
dostępnej puli), jak i z konieczności tworzenia podsieci.1
Istotną wadą jest także brak wsparcia dla jakichkolwiek mechanizmów bezpiecznej
komunikacji czy ochrony prywatności.
2. IPv6 – następca obecnie używanego IPv4
Już w 1992 roku zdawano sobie sprawę z ograniczeń związanych ze stosowaniem
IPv4; wtedy też IETF zapoczątkowało prace nad następną wersją protokołu.
Pierwsze RFC dotyczące IP następnej generacji zostało opublikowane w grudniu
1993.
Grupy projektantów działające w ramach IETF starały się opracować uniwersalny i
otwarty standard, zaproszono więc do współpracy wszystkie zainteresowane
środowiska – badaczy, producentów komputerów oraz osprzętu sieciowego,
administratorów; każdy mógł zgłaszać swoje propozycje oraz komentować
proponowane rozwiązania. Ustalono najważniejsze wymagania odnośnie nowej
wersji protokołu internetowego. W 1995 roku wybrano jeden z projektów jako
ostateczną wersję protokołu internetowego nowej generacji.
Główne cechy IPv6:
•
dużo większa przestrzeń adresowa. Nie są już konieczne oszczędności przy
rozdzielaniu adresów IP – każdy może dysponować taką liczbą numerów jaką
potrzebuje. Nie trzeba już stosować NAT ani żadnej innej, podobnej metody.
Likwiduje to niezliczone problemy powstające przy translacji adresów oraz otwiera
drogę do całkiem nowych zastosowań – liczba dostępnych adresów jest tak duża,
że podłączyć do sieci można zupełnie wszystko, bez obawy o wyczerpanie
adresów.2
1 Przy tworzeniu kolejnej podsieci marnowane są przynajmniej 2 numery – na adres sieci oraz broadcast
2 Liczba adresów IPv6 jest tak duża, że każda osoba na planecie mogłaby dysponować tyloma adresami IPv6,
ile wynosi obecnie liczba wszystkich adresów IPv4
3
•
•
•
•
•
•
bardzo wygodne oraz użyteczne mechanizmy autokonfiguracji. Dzięki
możliwości uruchomienia na routerze programu rozgłaszającego “ustawienia”,
zwykłe hosty konfigurują się praktycznie automatycznie (istnieje kilka różnych
implementacji autokonfiguracji).
uproszczony format nagłówków. Pewne pola zostały usunięte lub stały się
opcjonalne, w celu zwiększenia wydajności oraz zredukowania ilości danych, które
muszą być przesyłane, a nie niosą żadnych, istotnych z punktu widzenia
użytkownika bądź aplikacji, danych.
ulepszone wsparcie dla opcji oraz rozszerzeń. Zmiany w sposobie kodowania
danych w nagłówku umożliwiają bardziej efektywne przekazywanie pakietów, oraz
pozwalają na dodawanie w przyszłości nowych opcji w bardzo elastyczny sposób.
możliwość “etykietowania” ruchu (Flow Labeling). Umożliwia to
skategoryzowanie połączeń oraz przypisanie ich do róźnych “kategorii” - umożliwia
to na przykład nadanie większego priorytetu danym przesyłanym przez aplikacje
“real-time”, wymagające zapewnienia stałego poziomu transferu oraz opóźnienia
(QoS).
ulepszona prywatność oraz bezpieczeństwo. IPv6 obsługuje rozszerzenia
pozwalające na autoryzację oraz sprawdzanie integralności danych (mamy
gwarancję możliwości skorzystania z rozwiązania typu IPsec, jeśli potrzebujemy
nawiązać “bezpieczne” połączenie ze zdalnym hostem).
doskonale przemyślana współpraca z IPv4. Od począŧku brano pod uwagę
konieczność współdziałania (przynajmniej przez jakiś czas) z obecną wersją
protokołu IP, dostępnych jest więc dużo metod pozwalających na wzajemne
komunikowanie się między tymi sieciami.3
3. Adresowanie IPv6
Niezwykle szeroka przestrzeń adresowa IPv6 (wykorzystywanie aż 128 bitów)
rozwiązuje problem “wyczerpywalności” adresów, jednak problematyczne staje się
operowanie na tak długich ciągach liczb. Jeżeli dla adresów IPv6 zastosowalibyśmy
analogiczny sposób zapisu jak dla IPv4, otrzymalibyśmy aż 16 członów
rozdzielonych kropkami – jest to zdecydowanie zbyt długa oraz zbyt niewygodna
metoda.
Do zapisu adresów IPv6 standardowo używamy notacji szesnastkowej4 – 128-bitowy
adres dzieli się na 16-bitowe członów oraz rozdziela dwukropkami – otrzymujemy
więc 8 członów5. Przykładowe adresy IPv6 zapisane w w notacji szesnastkowej z
dwukropkami (jak widać możemy opuścić nieznaczące zera):
3FFE:0B00:C180:1111:6723:B0:CCCC:1222
2001:0:0:0:0:0:0:1
Dowolną ilość zerowych członów możemy zastąpić poprzez parę dwukropków,
jednak aby taki zapis nie powodował niejednoznaczności, operatora tego możemy
użyć najwyżej jeden raz6.
3 W szczególności różnego rodzaju tunele IPv6/IPv4, mające zasadnicze znaczenie dla dzisiejszej, wciąż
jeszcze “bazującej” fizycznie na IPv4, testowej sieci opartej na IPv6 – 6BONE
4 Proponowane też były alternatywne sposoby kodowania adresów IPv6 – np. kodowanie BASE85 [RFC1924],
jednak należy brać pod uwagę datę wydania tego RFC – 1 kwietnia 1996...
5 Dzięki wstawianiu separatorów co 16 bitów (zamiast 8 jak w przypadku IPv4), dwukrotnie zmniejszamy ich
ilość – oszczędność miejsca przy zapisie
6 Ponieważ długość adresu IPv6 jest ściśle ustalona, możliwe jest wyliczenie, ile członów zostało zastąpionych
przez “::”; w przypadku wielokrotnego zastosowania tego operatora nie byłoby to możliwe.
4
3.1.Typy adresów
Adres IPv6 jest 128-bitowym identyfikatorem interfejsu bądź grupy interfejsów.
Wyróżniamy 3 typy adresów IPv6:
•
•
•
unicast. Identyfikuje pojedynczy interfejs. Pakiet wysłany pod ten adres zostanie
dostarczony do interfejsu skojarzonego z tym adresem.
anycast. Identyfikuje grupę interfejsów. Pakiet wysłany pod ten adres zostanie
dostarczony do jednego z interfejsów skojarzonych z tym adresem (zazwyczaj
najbliższego bądź najszybciej osiągalnego).
multicast. Identyfikuje grupę interfejsów. Pakiet wysłany pod ten adres zostanie
dostarczony do każdego z interfejsów skojarzonych z tym adresem. W IPv6 nie
istnieją adresy broadcastowe – z związku z wprowadzeniem adresów multicast
stały się zbędne.
4. Zapisywanie adresów IPv6 w URL
Aby użyć adresu IPv6 w URL7, wystarczy zapisać go w standardowej postaci
(szesnastkowej, oddzielając człony dwukropkami), natomiast całość zamknąć w
nawiasach kwadratowych, np.:
http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]/index.html
http://[1080::8:800:200C:417A]:8080/ipv6/
Jak widać, dwukropek służyć może zarówno do zapisu adresu IPv6 jak i wskazania
portu.
5. Jak zaistnieć w sieci IPv6?
Obecnie najpopularniejszym sposobem na podłączenie do 6BONE (testowej sieci
opartej na protokole IPv6) jest uzyskanie tunelu od kogoś już wpiętego do tej sieci.
Aby umożliwić skonfigurowanie tunelu, wystarczy podać jedynie nasz adres IPv4 –
wszystkie do konfiguracji dane otrzymymy od administratora drugiego końca tunelu adres zdalnego końca IPv4 tunelu, adres IPv6 naszego oraz zdalnego końca tunelu
oraz jaką dysponujemy siecią (w szczególności długość prefixu). Szczegóły
konfiguracji zależą od używanego systemu operacyjnego – opis dotyczący systemów
BSD można znależć w [6], natomiast linki do przewodników konfiguracji innych
systemów operacyjnych znajdują się w [7].
6. DNS
Zarówno BIND, jak i djbdns umożliwiają bezproblemowe dodawanie rekordów dla
hostów IPv6. Różnica w stosunku do rekordów IPv4 polega na konieczności
zastosowania wpisu “AAAA” zamiast zwykłego “A”, np:
host.domena.pl. IN AAAA 3ffe:8010:ff::2
Jeśli używamy djbdns, przykładowy wpis może wyglądać następująco:
6host.domena.pl:3ffe801000ff00000000000000000002:86400
7 Oczywiście możemy także użyć istniejącego wpisu AAAA w DNSie, zamiast ręcznie podawać adres w URL
5
6.1 Przykładowa konfiguracja odwrotnego DNSu dla BIND
Fragment pliku named.conf:
zone “f.f.0.0.0.1.0.8.e.f.f.3.ip6.int” {
type master;
file “IPv6-mydomain-rev”;
};
Fragment pliku “IPv6-mydomain-rev”:
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR host.domena.pl.
6.2 Przykładowa konfiguracja odwrotnego DNSu dla djbdns
Zf.f.0.0.0.1.0.8.e.f.f.3.ip6.int:ns.mydomain.pl.:root.
mydomain.pl.:2000111700:14400:3600:1209600:86400:3600
&f.f.0.0.0.1.0.8.e.f.f.3.ip6.int::ns.mydomain.pl.:3600
&f.f.0.0.0.1.0.8.e.f.f.3.ip6.int::ns2.mydomain.pl.:3600
^2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.0.0.0.1.0.8.e.f.
f.3.ip6.int:host.mydomain.pl:3600
6
7. Bibliografia
[1]
Hinden, Deering, “Internet Protocol Version 6 (IPv6) Addressing Architecture”,
RFC 3513, April 2003
[2]
Deering, Hinden, “Internet Protocol, Version 6 (IPv6) Specification”,
RFC 2460, December 1998
[3]
Hinden, Carpenter, Masinter, “Format for Literal IPv6 Addresses in URL's”,
RFC 2732, December 1999
[4]
IETF, IP Version 6 Working Group,
http://www.ietf.org/html.charters/IPv6-charter.html
[5]
The NetBSD Project, “NetBSD IPv6 Networking FAQ”,
http://www.netbsd.org/Documentation/network/ipv6/
[6]
T. Luchowski, “NetBSD IPv6 Howto”,
http://www.luchowski.com/#papers
[7]
6BONE-PL, “Konfiguracja IPv6 w różnych systemach”
http://www.6bone.pl/konfiguracja.html
7

Podobne dokumenty