IPv6 i Linux
|
|
IPv6 i LinuxStrona zosta│a ostatnio znacznie uaktualniona, w szczeg≤lno£ci je£li chodzi o spos≤b konfiguracji tuneli za pomoc╣ iproute. W nied│ugim czasie mam tak┐e nadziejΩ opisaµ konfiguracjΩ BGP4+. Nale┐y podkre£liµ, ┐e nie jest to HOWTO dla ka┐dego - trochΩ wiadomo£ci trzeba ju┐ mieµ. Je£li nie wiesz nic o IPv6, to zajrzyj najpierw na stronΩ Petera Bieringera. Spis tre£ci
KernelObs│uga IPv6 jest dostΩpna w Linuxach nowszych ni┐ 2.1.8. W moim przypadku u┐ywam IPv6 od wersji 2.1.87, po obecne 2.1.128. Podczas konfiguracji kernela nale┐y w│╣czyµ nastΩpuj╣ce opcje:
Wszystkie opcje wkompilowa│em do kernela na sta│e. Niekt≤re z nich nie chcia│y dzia│aµ jako modu│y, w szczeg≤lno£ci tunneling. OprogramowanieW tej sekcji zasz│y najbardziej znacz╣ce zmiany od poprzedniej wersji tego tekstu, gdzie opiera│em siΩ g│ownie na net-tools. Obecnie wsp≤lnymi si│ami polskiego 6bone uda│o sie opracowaµ now╣ technikΩ stawiania tuneli IPv6, IMHO znacznie lepsz╣ od poprzedniej. Przypomnijmy, ┐e stara metoda polega│a na konfigurowaniu tuneli za pomoc╣ "ifconfig sit0 tunnel aaa.bbb.ccc.ddd" i wymaga│a jedynie zainstalowani w miarΩ nowego pakietu net-tools. W nowej metodzie wszystkie operacje na tunelach i tablicy routingu wykonujemy za pomoc╣ programu iproute Aleksieja N. Kuƒniecowa (ANK). Podsumowuj╣c, nale┐y zainstalowaµ:
Instalowanie glibc-2.1 (obecnie w wersjach pre - 2.0.103 itp) nie jest chyba konieczne. Co wiΩcej inet6-apps w wersjach wcze£niejszych ni┐ 0.34 nie kompiluje siΩ pod glibc bez poprawek, a iproute wymaga patcha by skompilowaµ siΩ pod glibc. Niemniej wiΩkszo£c polskich Linux≤w z IPv6 chodzi pod glibc-2.0.xx. Je£li chodzi o RedHata, to dziΩki ekipie PLD wszystkie w/w pakiety w│╣cznie z glibc s╣ dostΩpne jako RPMy. Mo┐na je znaleƒµ pod adresem ftp://magellan.shadow.eu.org/pub/PLD-devel/ lub na mirrorach.
net-toolsPakiet net-tools zawiera programy ifconfig, route itp. uzupe│nione o obs│ugΩ IPv6 oraz tuneli. Najnowsz╣ wersjΩ mo┐na £ci╣gn╣µ z ftp://ftp.cs-ipv6.lancs.ac.uk/pub/Code/Linux/Net_Tools/. Je£li kompilujesz net-tools ze ƒr≤de│, to w│╣cz nastΩpuj╣ce opcje dotycz╣ce IPv6:
inet6-appsPakiet inet6-apps zawiera bibliotekΩ wykorzystywan╣ przez inne programy IPv6 oraz podstawowe narzΩdzia, klienty i demony IPv6: ping, traceroute, inetd itp. Najnowsz╣ wersjΩ mo┐na £ci╣gn╣µ z ftp://ftp.inner.net/pub/ipv6/, Je£li kompilujesz inet6-apps ze ƒr≤de│, w pliku GNUmakefile.config ustaw nastΩpuj╣ce opcje:
Przygotowanie systemu pod IPv6
/etc/hostsDo pliku /etc/hosts nale┐y dodaµ:
/etc/protocolsDo pliku /etc/protocols nale┐y dodaµ:
Konfiguracja interfejs≤wPrzed zrobieniem czegokolwiek z tej sekcji nale┐y skontaktowaµ siΩ z Rafa│em Maszkowskim <rzm@icm.edu.pl> i poprosiµ go o przydzielenie odpowiedniej puli adres≤w IPv6 oraz postawienie tunelu. Tunel mo┐na postawiµ r≤wnie┐ do kogokolwiek innego podpiΩtego do 6BONE, wystarczy napisaµ na listΩ 6bone-pl. Maj╣c ju┐ pulΩ adres≤w mo┐na ostatecznie przyst╣piµ do konfigurowania tunelu. Poni┐szy plik rezyduje u mnie jako /etc/rc.d/init.d/inet6 i jest podlinkowany do katalogu /etc/rc.d/rc3.d/. Nie jest to w pe│ni zgodne z filozofi╣ RedHata, ale tak jest IMHO pro£ciej. Adres mojego routera IPv6 to 3ffe:902:3::2/48, nale┐y go zast╣piµ w│asnym. Routing defaultowy nale┐y r≤wnie┐ uzyskaµ od Rafa│a, chocia┐ pewnie bΩdzie taki sam.
Kilka s│≤w komentarzaPowy┐sza konfiguracja robi nastΩpuj╣ce rzeczy:
Wyja£nienia tak┐e wymaga kierowania routingu przez adres fe80::193.219.28.246", Jest to adres typu link-local dodawany automatycznie do interfejsu tunelu podczas jego tworzenia. Jak widaµ, zawiera on przedrostek fe80 oraz adres IPv4 drugiego ko±ca tunelu. Adresy link-local bardzo upraszczaj╣ konfiguracjΩ tuneli. W stosowanej przez nas poprzednio metodzie ka┐demu ko±cowi tunelu nale┐a│o przydzieliµ "prawdziwy" adres IPv6 z prefiksem /126 i na niego ustawiaµ routing. Je£li chodzi o zamykanie tuneli, to w obecnej wersji IPv6 w kernelu nie jest zalecane usuwanie ich za pomoc╣ "ip tunnel del". Wed│ug wyja£nie± ANK kasowanie interfejs≤w nie jest jeszcze dopracowane i nie nale┐y z niego korzystaµ. TestyPo uruchomieniu powy┐szego skryptu adresy interfejs≤w oraz routing powinien byµ poprawnie skonfigurowany pod k╣tem IPv6. Wyniki dzia│ania nastΩpuj╣cych polece± powinny zawieraµ adresy IPv6: Adresy interfejsu g│≤wnego
Routing
Adresy interfejsu tunelu
PingJe£li tunel z drugiej strony jest ju┐ skonfigurowany, to powinien r≤wnie┐ dzia│aµ ping na adresy IPv6:
ResolverJe£li zainstalowany w systemie resolver obs│uguje IPv6 (glibc-2.0.92 i nowsze), to mo┐na tak┐e u┐ywaµ nazw kanonicznych, np. "6bone-gw.6bone.pl", kt≤re powinno siΩ rozwi╣zaµ na adres 3ffe:902::1. Nale┐y zauwa┐yµ, ┐e hosty mog╣ mieµ r≤wnocze£nie adres IPv4 oraz IPv6:
DNSAdresy IPv6 s╣ przechowywane w rekordach AAAA (w odr≤┐nieniu od rekord≤w A dla IPv4). S╣ one obs│ugiwane przez BIND 4.9.7 oraz 8.1.2. Dla potrzeb IPv6 warto stworzyµ w swojej domenie poddomenΩ ipv6 (np. ipv6.ceti.com.pl) i w niej dodawaµ adresy maszyn pod│╣czonych do 6BONE. Poni┐sze przyk│ady dotycz╣ BIND 8.1.2, przyk│ady dla wersji 4.9.7 mo┐na znaleƒµ na stronie http://www.visc.vt.edu/ipv6/doc/dns.html.
domena ipv6Wpis w /etc/named.conf:
Plik ipv6.hosts:
domena odwrotnaDo mapowania adres≤w IPv6 na nazwy kanoniczne s│u┐y domena IP6.INT, w kt≤rej adres jest zapisywany od ko±ca, cyferka po cyferce. DelegacjΩ domen w IP6.INT prowadzi wΩze│ od kt≤rego otrzymujemy podsieµ, w naszym przypadku Rafa│ Maszkowski <rzm@icm.edu.pl>. Przyk│adowo, dla sieci 3ffe:0902:0003::/48 delegowana jest domena 3.0.0.0.2.0.9.0.e.f.f.3.ip6.int. Dla znajduj╣cego siΩ w tej sieci hosta 3ffe:902:3::2 nale┐y stworzyµ rekord:
Jak mo┐na siΩ domy£liµ, po po│╣czeniu │a±cucha cyfr odpowiadaj╣cego adresowi hosta z │a±cuchem odpowiadaj╣cym adresowi delegowanej sieci ca│o£µ powinna mieµ d│ugo£µ 32 cyferek. Przyk│adowe pliki dla BIND 8.1.1 znajduj╣ siΩ poni┐ej: Wpis w /etc/named.conf:
Plik /var/named/3ffe:902:3:
Po skonfigurowaniu DNSu i odwrotnego DNSu programy powinny prawid│owo rozwi╣zywaµ zar≤wno nazwy host≤w w domenie ipv6. oraz adresy w domenie odwrotnej:
Zasoby
WWW
Pierwsze dwie strony s╣ czΩsciowo nieaktualne (szczeg≤lnie w sekcjach dotycz╣cych uzyskiwania adres≤w IPv6), ale zawieraj╣ wiele przydatnych informacji na temat oprogramowania IPv6 pod Linuxa.
Listy dyskusyjne
PodziΩkowania
Pawe│ Krawczyk <kravietz@ceti.com.pl>
|
Wyślij E-mail MMalinow@bigfoot.com z pytaniami lub
komentarzem.
|