Qlo presenta: IPv6 per (quasi) tutti. Guida (semiseria) su come configurare e far funzionare l'ipv6 su linux >>>>AGGIORNATA al 29/11/2001<<<< Ultimamamente l'IPv6 (il nuovo protocollo IP, l'Internet del futuro) sta diventando molto di moda e quindi ecco un breve testo per implementarlo "senza cognizione di causa" ;PP Questo per dirvi che dopo averlo letto NON saprete MINIMAMENTE le specifiche tecniche e di funzionamento dell'IPv6, però lo avrete funzionante nel vostro sistema linux (forse...). :)) Allora prima ti tutto dovrete scaricare una serie di aggiornamenti, vari "tools" per poter utilizzare IPv6; infatti i vecchi ping, finger etc.. non supportano questo nuovo protocollo. Quindi andate nel sito www.ipv6mania.net e scaricatevi i programmi consigliati. Sono quelli basilari es. ping6, netstat, finger e anche i nuovi demoni fingerd, telnetd etc etc. FILE: ->iputils-ss011002.tar.gz (ping, ping6, traceroute6 etc...) ->net-tools-1.60.tar.bz2 (in molte nuove distro sono gia' installate) ->nkit-0.4.1.tar.gz (non indispensabile) ->xinetd-2.1.8.8p2.tar.gz (non indispensabile) ->modutils da scaricarsi dal sito del kernel (se volete usare ipv6 come modulo) Una volta fatto i vari download e compilati i vari tools viene da fare una cosa terribile...COMPILARE IL KERNEL!! Requisito necessario è che SAPPIATE compilare un kernel, altrimenti posate questa guida e riprendetela dopo che avete imparato. Non prendetevela dal tono troppo severo (!), ma se non lo sapete fare vi sconsiglio di cimentervi nell'impresa; Ecco cosa c'è scritto nell'HOW-TO IPv6: "If you want to set up IPv6 on a Linux box, you should really have experiences in: IPv4 network setup, routing, configuration of Internet daemons and services Installing a Linux distribution, and how to install/update additional packages Compiling and installing a new kernel and other sources know about C programming, Makefile and shell (bash) language and how to patch source code IPv6 address architecture, routing and tunneling" CONSIGLIO DI NON COMPILARE IL SUPPORTO COME MODULO MA IN MODO MONOLITICO (per i non esperti significa cliaccare su Y invece che su M nella finestra di configurazione del kernel). Cmq, le opzioni da settare nel Kernel sono: (Kernel 2.4.x) OPTIONS CHOOSE Y/M/N Code maturity level options Prompt for development and/or incomplete code/drivers yes Neworking options Packet socket yes Unix domain sockets yes TCP/IP networking yes The IPv6 protocol yes File systems /proc filesystem support yes Kernel hacking Magic sysrq key yes Prima di compilare il kernel è bene creare una sotto versione dello stesso per non fare casini se poi non funzionasse; quindi nella dir /usr/src/linux scrivete "vi Makefile" (senza le ") cercate la scritta EXTRAVERSION e aggiungete ad esempio -IPv6 per avere quindi: EXTRAVERSION = -IPv6 Così sir creerà una "sub-versione" distinta dall'altra vecchia e limitando un pò la possibilità di "crash". A questo punto sempre dalla dir /usr/src/linux scrivete make dep; make clean; make bzImage; make modules; make modules_install Gli `;` SONO FONDAMENTALI, servono per concatenare i comandi. L'immagine del kernel ora è sulla dir arch/i386/boot (sempre partendo dalla dir /usr/src/linux). A questo punto nel file lilo.conf dovete aggiungere una definizione per l'immagine nuova del kernel, lasciando quella vecchia per sicurezza. FATE ATTENZIONE A DOVE AVETE LA VECCHIA IMMAGINE, PERCHE' QUESTO VARIA DA SISTEMA A SISTEMA, certe volte può essere sulla root / altre volte su /boot quindi state attenti. Entrate nell sub-dir arch/i386/boot e copiate l'immagine bzImage nella locazione appropriata, nel mio esempio / cp bzImage /bzImageIPv6 NON IMPORTA CHE LO CHIAMATE bzImageIPv6, è solo un accorgimento per non sovrascrivere la vecchia immagine, lo potete chiamre bzImageDURO o semplicemente copiarlo senza rinominarlo (cp bzImage /) fregandovene della vecchia immagine. CMQ FATE ATTENZIONE. Una volta fatto questo editate il file lilo.conf (nella dir /etc) e dovrete avere una cosa del genere: # Linux bootable partition config begins image = /bzImage #Linux normale IPv4 root = /dev/hda2 label = Linux read-only image = /bzImageIPv6 #Linux Dual Stack IPv6 root = /dev/hda2 label = LinuxIPv6 read-only other = /dev/hda1 label = DOS table = /dev/hda # DOS bootable partition config ends MI RACCOMANDO CHE LE ETICHETTE (label) siano DIVERSE, altrimenti i kernel "collidono". A questo punto digitate lilo (invio) e dovrete avere un out-put simile Added Linux * Added LinuxIPv6 Added DOS Naturalmente dipende dai vari label. E adesso rebottate.... ... Ci siete ancora?? :))) Bene, se il kernel vi si è compilato e runnato con successo dovete scrivere ifconfig (invio) (questo è uno dei tool aggiornato che avete ricompilato inizialmente) e avere un output simile lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:20 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 Se non c'è inet6 addr: ::1/128 Scope:Host AHI AHI!!! L'ipv6 nel kernel non c'è. Deve esserci qualche casino, altrimenti gioite! Siete a buon punto. A questo punto editate il file /etc/protocols e aggiungete queste righe ipv6 41 IPv6 # IPv6 ipv6-route 43 IPv6-Route # Routing Header for IPv6 ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 ipv6-crypt 50 IPv6-Crypt # Encryption Header for IPv6 ipv6-auth 51 IPv6-Auth # Authentication Header for IPv6 icmp6 58 IPv6-ICMP # ICMP for IPv6 ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 e salvate. Poi editate il file /etc/hosts ed aggiungete ::1 localhost-v6.quellocheavete localhost-v6 # necessari per il multicast IPv6 fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts naturalmente localhost-v6.quellocheavete localhost-v6 sono nomi fittizzi. Adesso fate ping6 ::1 (invio) e l'output deve essere il seguente 64 bytes from ::1: icmp_seq=0 ttl=64 time=0.133 ms 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.093 ms 64 bytes from ::1: icmp_seq=2 ttl=64 time=0.088 ms 64 bytes from ::1: icmp_seq=3 ttl=64 time=0.089 ms 64 bytes from ::1: icmp_seq=4 ttl=64 time=0.087 ms 64 bytes from ::1: icmp_seq=5 ttl=64 time=0.09 ms 64 bytes from ::1: icmp_seq=6 ttl=64 time=0.089 ms 64 bytes from ::1: icmp_seq=7 ttl=64 time=0.094 ms 64 bytes from ::1: icmp_seq=8 ttl=64 time=0.094 ms (continua all'infinito se non lo stoppate) A questo punto ALLULUJA!! Non rimane che iscriversi ad un tunnel broker. Cos'è? Detto in parole molto povere e volgari (!) è quello che vi permette di usufruire della 6bone, ovvero una rete "sovrapposta" ad internet in cui le varie isole IPv6 (ovvero sistemi IPv6 ready) comunicano tra loro. ----------------------------------------------------------------------------- VARI TUNNEL In Italia ultimamente ci sono un sacco di tunnel ottimi: www.6b0ne.org, www.6bone.it, carmen.cselt.it. Ma un tunnel broker cosa vi da? Semplicemente uno o + indirizzi IP(v6) e un gateway che vi permette questa "sovrapposizione" tra 6bone ed Internet. Ulteriori dettagli ai rispettivi TB. Joinate #ipv6.it @ ircnet per maggiorni info. ------------------------------------------------------------------------------ AGGIORNAMENTI AI TUNNEL BROKER Essenzialmente c'è un modo universalmente riconosciuto per usare il dual stack di linux: ifconfig sit0 up ifconfig sit0 add Vostro IPv6 route -A inet6 add 2000::/3 gw ::IPv4 gateway NOTA BENE!! Per chi ha IPv4 dinamico (praticamente tutti i dial up) devono aggiornare il proprio IPv4 sul sito del TB o attraverso un loro script. Altrimenti il tunnel non va + ("punta" ancora al vs vecchio ip). ------------------------------------------------------------------------------- Bene ora hai IPv6....Cosa ci puoi fare? Essenzialmente tutto, vedere siti web solo ipv6 e tanto altro. Per chi cominicia usa IPv6 per la chat; server irc6 attivi: irc.belnet.be - 3ffe:80b0:0:1:a00:20ff:fea2:8dbc irc.skynet.be - 3ffe:3001:6:2::1 ircnet.wanadoo.be - 3ffe:8100:200:1fff::16 irc.missingU.com - 3ffe:80c0:200:2:250:b7ff:fe14:6155 irc.telia.fi - 3ffe:2640:1::1a -new- irc6.ircd.it - 3ffe:8170:2:0:a00:20ff:febf:ba2d irc6.ngnet.it - 2001:6b8:1:0:210:83ff:fe35:2816 -new- irc6.kyoto.wide.ad.jp - 2001:200:0:c00::6667 eu-fi.irc6.net - 3ffe:80c0:220:0:0:0:0:b grmbl.ipv6.intouch.net - 3ffe:8110:1000::3 Come client potete usare o BitchX o Xchat 1.8.5 (o + recente) www.bitchx.org www.xchat.org e leggere le relative istruzioni. APPENDICE A In molti (per oscuri motivi :P) vogliono avere più di un tunnel nella propria box. OK vi darò quello che volete :) Innanzittutto scaricatevi iproute2 dal sito (si può fare anche con ifconfig, cambia la sintassi logicamente) e compilatelo ed installatelo. Breve preambolo: un modo molto casareccio per avere due tunnel, è di aggiungere al sit0 l'ip (o gli ip) del secondo tunnel ed di usare come gateway quello di uno dei due tunnel, a scelta. Soluzione non molto performante. Quindi è bene crearsi un interfaccia SIT ad hoc, con il proprio endpoint e routing. Nell'esempio chiamerò questa interfaccia pippo, che si aggiungerà al sit0. (naturalmente NON vi è nessun obbligo di "tirare su" il primo tunnel con la procedura consueta, potete creare tutti i tunnel che volete con iproute2) ip tunnel add pippo ttl 64 mode sit remote IPV4Tunnel ip link set pippo up ip addr add VOSTROIPv6 dev pippo [aggiungete altri ip se li avete o volete] ip route add 2000::/3 dev pippo Avete creato un interfaccia sit completamente indipendete da qualsiasi altra. Adesso potete usare quello o quegli ip come volete ------------------------------------------------------------------------------- Enjoy IPv6!! Un attimino di autocelebrazione (non fa mai male!! :PP) Tipo in chat: Non mi conosci... ma ti volevo dire grazie per la tua guida sull'IPv6 perchè se non la leggevo sarei potuto diventare PAZZO! ;-) :°°) Un saluto a tutti quelli di #ipv6.it :) ------------------------------------------------------------------------------- Copyright Qlo 2000-2001 :) on IRCNet #ipv6.it,#ipv6 e altri luoghi :P www.ipv6mania.net - qlo@ipv6mania.net ___ ____ __ __ __ _ |_ _| _ \__ __/ /_ | \/ | __ _ _ __ (_) __ _ | || |_) \ \ / / '_ \ | |\/| |/ _` | '_ \| |/ _` | | || __/ \ V /| (_) | | | | | (_| | | | | | (_| | |___|_| \_/ \___/ |_| |_|\__,_|_| |_|_|\__,_| ___ _ ____ _ _ / _ \| | ___ | _ \ _ __ ___ __| |_ _ ___| |_ | | | | |/ _ \ | |_) | '__/ _ \ / _` | | | |/ __| __| | |_| | | (_) | | __/| | | (_) | (_| | |_| | (__| |_ \__\_\_|\___/ |_| |_| \___/ \__,_|\__,_|\___|\__|