ipv6-overview.pdf

(49 KB) Pobierz
259718 UNPDF
IPv6
Protokół Internetowy Nastepnej Generacji
Copyright 1999
Arkadiusz Miskiewicz < misiek@pld.org.pl >
Polish Linux Distribution Team
10 sierpnia 1999
Warunki dystrybucji
Kopiowanie w formie elektronicznej dozwolone wył acznie w niezmienionej
postaci, z zachowaniem informacji o autorze oraz warunkach dystrybucji.
Przedruk dozwolony wył acznie za pisemn a zgod a autora.
Streszczenie
Dokument ten prezentuje protokół IPv6. Przedstawia wymagane
oprogramowanie, sposoby konfiguracji i podł aczenia Linuxa do istniej acych sieci
wykorzystuj acych IPv6. Dokument zawiera takze wiele wskazówek, gdzie
szukac szczegółowych informacji i dodatkowego programowania.
1
c
2 TROCH E TEORII
1 Wstep
Aktualnie jednym z istotnych problemów Internetu jest brak wolnych adre-
sów IP. Problem ten jest czesciowo rozwi azywany poprzez stosowanie translacji
adresów ( NAT ). Globalnym rozwi azaniem tego problemu jest aktualnie rozwijana
nowa wersja protokołu internetowego - IPv6 (znanego równiez jako IPng - IP
Next Generation ). IPv6 poza rozwi azaniem problemu braku adresów wprowadza
wiele udogodnie n i ulepszen. Na dzien dzisiejszy dostepnych jest kilkanascie im-
plementacji IPv6 (s a to implementacje m.in. dla Linuxa, *BSD/KAME, Solarisa
oraz Windows 9x/NT). Osobiscie do pracy z IPv6 uzywam Linuxa oraz spora-
dycznie FreeBSD/KAME. Niniejszy artykuł uwzglednia głównie Linuxa.
2 Troche teorii
Adresy IPv6 składaj a sie z 128 bitów (dla porównana adresy IPv4 składaj a
sie tylko z 32 bitów). Łatwo jest sprawdzic, ze liczba wszystkich adresów IPv6
to liczba 39 cyfrowa (dla IPv4 tylko 10 cyfrowa)! Przykładowy adres IPv6 wy-
gl ada tak: 3ffe:902:12::/48 (adres sieci). Domyslnie nie podane bity s a równe „0”
(np. „::” == „:0000:”). Nasz przykładowy adres podany z wykorzystaniem wszyst-
kich bitów wygl adał bedzie tak: 3ffe:0902:0012:0000:0000:0000:0000:0000/48 . „/48”
to długosc prefiksu 1 w bitach. Taka notacja zgodna jest ze specyfikacj a CIDR i dotyczy
równiez IPv4 (RFC1518 [1], RFC1519 [2], RFC1812 [3]).
W adresach IPv6 zasieg ( scope ) adresu definiowany jest przez pocz atkowe bity ad-
resu i np. adresy rozpoczynaj ace sie od fe80 : to adresy „ link-local ” - zasieg „ local ”.
Poza zasiegiem local istniej a takze: host , site , global . Po szczegółowe informacje odsyłam
do RFC2373 [7] oraz do dokumentacji zawartej w pakiecie iproute2 [13] o którym bedzie
mowa pózniej. Tutaj warto jedynie wspomniec, ze adresy z zasiegiem local s a widoczne
wył acznie w obrebie sieci do których podpielismy naszego Linuxa oraz do serwerów z
którymi nasz Linux ma poł aczenie (czy to bezposrenie czy przy pomocy tunelu).
Istotn a zalet a IPv6 jest autokonfiguracja (RFC2462 [11]). Hosty IPv6 wykorzystuj a
miedzy innymi protokół Neighbor Discovery (ND) pozwalaj acy im znalezc s asiaduj ace
routery i inne hosty. Dzieki ND serwery mog a sledzic, które routery lub serwery s a ak-
tywne i osi agalne, a nastepnie modyfikowac swe tablice routingu itp. Ponadto serwery
IPv6 próbuj a same skonfigurowac swe interfejsy. Istniej a dwie metody takiej konfigura-
cji:
stateless - nie wymaga zadnego konfigurowania hosta i wymaga minimaln a konfi-
guracje routerów. Metoda ta pozwala hostom na wygenerowanie własnego adresu
1 prefiks okresla ilosc bitów i jest innym sposobem przedstawiania netmaski
2
259718.010.png 259718.011.png
2 TROCH E TEORII
na podstawie lokalnie dostepnych informacji i informacji rozgłaszanych przez ro-
utery 2 . Routery w tym przypadku rozgłaszaj a tylko prefiks sieci. Otrzymany od
routera prefiks jest nastepnie uwzgledniany podczas generowania adresów lokal-
nych interfejsów. Jesli router z jakiegos powodu nie rozgłasza odpowiednich infor-
macji, host moze wygenerowac automatycznie tylko adresy link-local co pozwala
na ograniczon a komunikacje wyznaczon a zasiegiem (scope) local.
stateful - hosty uzyskuj a wszelkie potrzebne informacje z serwera, który zawiera
odpowiedni a baze danych. Metoda ta wykorzystuje DHCPv6.
Warto zaznaczyc, ze hosty mog a wykorzystywac równoczesnie obie metody do autokon-
figuracji. Mechanizm obsługi IPv6 pozwala takze na tworzenie dynamicznych tuneli dla
pakietów IPv6 w istniej acej infrastrukturze IPv4 pod warunkiem, ze adres zródłowy i do-
celowy pakietu to adres kompatybilny z IPv4. Wyrózniamy dwa rodzaje adresów IPv6
kompatybilnych z adresami IPv4:
standardowe - adresy tego typu maj a nastepuj acy format:
80 bitów
16 bitów
32 bity
0000..............................0000
0000
adres IPv4
tylko IPv4 (opisuj ace hosty które nie wspieraj a 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 nalezy zaliczyc takze zmiane formatu nagłówka pakietów
na nowy, pozwalaj acy bez wiekszych problemów dodawac w przyszłosci nowe opcje bez
powaznych zmian w samym nagłówku. IPv6 umozliwia takze na wysyłanie datagramów
zwanych jumbogramami o wielkosci wiekszej niz 65535 bajtów.
By móc wykorzystac IPv6 w obrebie dzisiejszego Internetu wykorzystuj acego nadal
protokół IPv4 stosuje sie SIT ( Simple Internet Transition ) do tunelowania pakietów IPv6
wewn atrz pakietów IPv4.
Istnieje ogólnoswiatowa, wirtualna siec bazuj aca na protokole IPv6. Jest to siec 6BONE .
Wirtualna dlatego, ze bazuje nie na własnych, oddzielnych ł aczach ale wykorzystuje ist-
niej ace ł acza Internetu. Niemalze wszystkie poł aczenia pomiedzy wezłami sieci to tunele
SIT o których była mowa.
Struktura sieci składa sie z głównych wezłów - pTLA ( pseudo Top Level Aggregator ),
wezłów podrzednych - pNLA ( pseudo Next Level Aggregator ) oraz podpietych do nich
2 narzedziem wykorzystywanym do rozgłaszania prefiksu jest radvd
3 adresy tego typu znane s a jako adresy IPv6 mapowane do IPv4 (ang. IPv4-mapped IPv6 ad-
dress)
3
259718.012.png 259718.013.png 259718.001.png 259718.002.png 259718.003.png 259718.004.png 259718.005.png
3 CZEGO POTRZEBA DO UZYWANIA IPV6 ?
pozostałych hostów ( leaf sites ). W Polsce jedynym na dzien dzisiejszy pTLA jest ICM
( Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego w Warsza-
wie ), a osob a zajmuj ac a sie sieci a 6bone w ICM jest Rafał Maszkowski < rzm@icm.edu.pl >.
3 Czego potrzeba do uzywania IPv6 ?
Przede wszystkim potrzebujemy j adra Linuxa najlepiej w najnowszej wersji stabil-
nej z serii 2.2 (dla bardziej odwaznych w wersji rozwojowej z serii 2.3). J adro nalezy
skompilowac z aktywnymi nastepuj acymi opcjami:
[*] Prompt for development and/or incomplete code/drivers
[*] Kernel/User netlink socket
<M> IP: tunneling
<M> The IPv6 protocol (EXPERIMENTAL)
[*] IPv6: enable EUI-64 token format
[*] IPv6: disable provider based addresses
Uwagi: 4 5
Oczywiscie powyzsze opcje mozna zarówno wkompilowac w j adro jak i pozostawic
w postaci ładowalnych modułów.
Kolejn a rzecz a, potrzebn a do kompilacji programów wykorzystuj acych IPv6 jest bi-
blioteka z nowymi funkcjami opisanymi m.in. w RFC2553[12]. Własciciele glibc 2.1.1
(i nowszych) nie bed a mieli zadnych problemów, gdyz ich biblioteka zawiera wszystkie
6 potrzebne funkcje. Posiadacze biblioteki libc5 mog a skorzystac z „protezy” jak a jest
biblioteka libinet6 zawarta w pakiecie inet6-apps autorstwa Craiga Metza. Osobiscie jed-
nak gor aco namawiam do zaktualizowania biblioteki do najnowszej, stabilnej wersji glibc
ze wzgledu na znaczne ułatwienie przy pózniejszych kompilacjach programów wykorzy-
stuj acych IPv6.
Do konfiguracji IPv6 mozemy wykorzystac jednen z dwóch pakietów oprogramo-
wania - net-tools lub iproute2 . Odnosniki do miejsc gdzie mozna znalezc wspomniane
oprogramowanie znajdziesz na koncu artykułu. Ja wykorzystuje pakiet iproute2 i o nim
bedzie dalej mowa.
Kompilacja iproute2 w srodowisku wykorzystuj acym biblioteke glibc przebiega sto-
sunkowo bezbolesnie. W wyniku kompilacji otrzymujemy dwa programy - „ ip ” oraz „ tc ”.
Pierwszy słuzy do konfiguracji sieci IPv4/IPv6, natomiast drugim mozemy kontrolowac
algorytmy kolejkowania pakietów 7 (w tym takze IPv6) ale to juz temat na inny artykuł.
4 niektóre narzedzia konfiguracyjne takie jak iproute2 wykorzystuj a „netlink” do komunikacji
z j adrem
5 opcja IP: tunneling jest konieczna jesli chcemy tunelowac pakiety IPv6 w pakietach IPv4
6 prawie wszystkie, o czym pózniej
7 Linux oferuje pokazny wachlarz algorytmów pozwalaj acych na korzystanie z m.in. QoS (Qu-
ality Of Service)
4
259718.006.png 259718.007.png
4 KONFIGURACJA
Maj ac nowe, obsługuj ace IPv6 j adro oraz odpowiednie narzedzia mozemy przyst apic
do operacji jak a jest konfiguracja.
4 Konfiguracja
By sprawdzic czy IPv6 jest aktywne wystarczy wykonac komende: „ ip addr show lo ”.
# ip addr show lo
1: lo: <LOOPBACK,UP> mtu 3924 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope global lo
inet6 ::1/128 scope host
#
Jak widac IPv6 jest obecne - swiadczy o tym linijka „ inet6 ::1/128 scope host ”. Adres
::1 ” jest adresem IPv6 interfejsu loopback . Jesli powyzsze polecenie nie pokazuje takiej
linijki to najpewniej skompilowałes IPv6 jako moduł. Wykonaj „ modprobe ipv6 ” i po-
nownie sprawdz obecnosc adresu IPv6.
Działanie IPv6 mozna sprawdzic przy uzyciu np. ping6 z pakietu iputils 8
# ping6 -nc3 ::1
PING ::1(::1) from ::1 : 56 data bytes
64 bytes from ::1: icmp_seq=0 hops=64 time=0.2 ms
64 bytes from ::1: icmp_seq=1 hops=64 time=0.1 ms
64 bytes from ::1: icmp_seq=2 hops=64 time=0.1 ms
--- ::1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.2 ms
#
Podobnie jak w IPv4 interfejsy sieciowe (np. eth0) mog a miec przypisanych wiele
adresów IPv6. Przegl adaj ac adresy na interfejsie ethernetowym (ip addr show eth0) za-
uwazysz zapewne adres o którym była juz mowa - link-local. Adresy te dla interfejsów
ethernet generowane s a automatycznie na podstawie identyfikatora interfejsu np. adresu
MAC karty sieciowej. Narzedzie „iproute2” w przeciwienstwie do „ifconfig” pozwala na
ogl adanie wszystkich adresów na danym interfejsie. Jedn a z interesuj acych mozliwosci
jest dodawanie kilku adresów IPv4/IPv6 do jednego interfejsu bez stosowania aliasów
(oczywiscie iproute2 pozwala na stosowanie aliasów jednak w rzeczywistosci zadko sie
t a opcje stosuje).
8 iputils maj a niewielki bł ad powoduj acy nie działanie ping a skompilowanego egcs ’em. Łata
na te dolegliwosc znajduje sie na http://cvsweb.pld.org.pl/
5
259718.008.png 259718.009.png
Zgłoś jeśli naruszono regulamin