[ vista la rilevanza dell’argomento trattato ho pubblicato questo articolo anche su SIAMOGEEK che ha un audience decisamente più vasta]
(Disclaimer: seguite questo tutorial a vostro rischio e pericolo. Potreste incorrere in danni hardware (brick del dispositivo) intrusioni di hacker nel vostro sistema, o sviluppare dipendenza difficilmete curabile da IPV6. In nessun caso l’autore potrà essere ritenuto responsabile)
Nel nostro paese è molto difficile ottenere una connessione con IPV6 nativo per la casa o l’ufficio.
La soluzione di seguito proposta consentirà di portare IPV6 sulla vostra LAN in maniera trasparente.
Il dispositivo che consente di ottenere questo risultato è un router un po’ particolare, ma facilissimo da procurare. Probabilmente se siete informatici per professione o diletto lo avete già nella cassetta del materiale di scarto :-).
Nel mio caso ne ho reperiti un paio, ma la mia scelta è caduta sul più potente router/access point Dlink DIR-600.
Ovviamente appena uscito dalla scatola l’oggetto in questione è del tutto inutile per il nostro scopo. Serve una piccola (grande…) modifica.
Alcuni di voi avranno sentito parlare del progetto OpenWRT. Si tratta di una piccola distribuzione LINUX installabile su un gran numero di dispositivi ed in grado di trasformarli in router molto avanzati.
Se siete fortunati qualcuno dei router/access point in vosrto possesso rientra nell’elenco che trovate seguendo questo link.
Se invece la sfiga vi perseguita e potete acquistarne uno nuovo o usato su ebay attorno ai 20 euro.
Per il nostro progettino il dispositivo andrà collegato con la porta WAN al router/modem ADSL e servirà attraverso le porte LAN ltutta la rete locale dotata di IPV4 e IPV6
Installazione Openwrt
Nel mio caso il DIR-600 era presente ed ho seguito le istruzioni nella pagina dedicata al dispositivo. Trattandosi non di una relaease, ma di un firmware “trunk” ho dovuto scaricare i sorgenti e compilare il tutto.
Attenzione: lanciando il make si apre una finestra di menu-config:
E’ importante in questa fase inserire le opzioni IPV6 che ci interessano facendo apparire l’asterisco in fianco ad esse. In particolare, oltre al supporto standard ci servirà 6in4 per il tunnel.
Usciti dal menu-config la compilazione parte in automatico. Ci possono volere diverse ore per portarla a termine!
Ottenuto il firmware non resta che caricarlo come un normale upgrade utilizzando l’interfaccia web originale del dispositivo.
Per il primo accesso è necessario collegare un pc con un’interfaccia LAN settata su DHCP alla porta LAN del router, L’indirizzo a cui accedere con telnet è 192.168.1.1 e non è richiesta autenticazione.
Una volta entrati lanciando il comando passwd si imposterà la password di root e sarà possibile accedere con SSH. L’interfaccia telnet da questo momento sarà disattivata.
Come prima impostazione andiamo a cambiare la maschera di rete della LAN che solitamente coincide proprio (come nel mio caso) con la nostra WAN cioè la rete servita dal router ADSL, creando problemi. Io preferisco sceglierne una improbabile come 10.8.0.1/24 per evitare conflitti con le maschere di rete di eventuali VPN a cui andrò a collegarmi.
Per fare questo è sufficiente editare /etc/config/network nella sezione LAN come segue:
config interface ‘lan’
option ifname ‘eth0.1’
option type ‘bridge’
option proto ‘static’
option ipaddr ‘10.8.0.1’
option netmask ‘255.255.255.0’
e riavviare il router.
Otteniamo IPV6
Prima di tutto dobbiamo procurarci un pool di indirizzi IPV6 da utilizzare. Consiglio caldamente di rivolgersi a Hurricane Electric su www.he.net.
La nostra soluzione si baserà su un tunnel broker e su HE è possibile procurarsene uno ad altissime prestazioni in pochi minuti.
Già che ci siete vi conviene portare a termine la certificazione presente sempre sul sito di HE su IPV6 fino al livello di sage
non per il certificato in se stesso, ma perchè si tratta di un vero e proprio percorso formativo che vi condurrà passo passo ad una conoscenza molto approfondita sul networking IPV6.
Comunque, tornando al nostro esercizio, andate su http://www.tunnelbroker.net/ registratevi ed attivate un tunnel con una sottorete /64. Fate molta attenzione a scegliere l’endpoint tra quelli proposti. Vi consiglio di provare a pingare i vari server e scegliere il più performante rispetto alla vostra rete. Di solita Francia e Svizzera sono una buona scelta.
Configurazione openWRT per IPV6.
(rif http://wiki.openwrt.org/doc/howto/ipv6)
Prima di tutto bisogna configurare l’endpoint del tunnel. In pratica assegniamo al nostro router un indirizzo IPV6 che farà il paio con quello presente dall’altra parte sul server di HE.
Editando il solito /etc/config/network andremo ad aggiungere un’interfaccia virtuale come segue:
config interface henet
option proto ‘6in4’
option peeraddr ‘216.66.80.30’
option ip6addr ‘2001:470:1f0a:908::2/64’
L’indirizzo IPV4 del peeraddr sarà quello che avete scelto allo step precedente. l’ip6addr sarà quello indicato nei dettagli del vostro tunne sul sito HE sotto la voce IPv6 Tunnel Endpoints -> client IPV6 address.
Questo va bene nel caso la nostra connessione disponga di un IP statico, altrimenti HE consente di aggiornare i tunnel in maniera dinamica. La configurazione è un po’ più complessa e la trovate seguendo questo link.
Farà il paio con l’indirizzo quasi uguale, ma che finisce per “1” che sarà il corrispondente V6 dall’altra parte del tunnel.
Fatto questo sarà sufficiente riavviare il networking /etc/init.d/networking restart o riavviare il dispositivo.
Ora stringiamo le dita e siamo pronti per il primo ping!
ping6 www.google.com
Se tutto va bene otterrete il risultato di cui sopra.
Ora arriva la parte più interessante
Distribuire IPV6 sulla vostra LAN
Per fare questo è necessario come prima cosa assegnare l’indirizzo V6 al vostro gateway, cioè all’interfaccia LAN del router.
E’ sufficiente editare il solito /etc/config/network e nella sezione LAN inserire anche l’indirizzo IPV6.
Vi consiglio di prendere quello che finisce per 1 nella sottorete che vi hanno ssegnato che trovate nella sezione Routed IPv6 Prefixes dei dettagli del vostro tunnel. Nel mio caso era 2001:470:1f0b:9f7::/64 quindi ho aggiunto la seguente riga al file di configurazione sotto “lan”.
option ip6addr ‘2001:470:1f0b:908::1/64′
Riavviare il router o il networking.
Questo sarebbe sufficiente per utilizzare IPV6 sulla vostra LAN configurando manualmente un’interfaccia assegnando un indirizzo nel pool assegnato e impostando come gateway l’indirizzo di cui sopra.
Purtroppo siamo un po’ pigri e maneggiare gli indirizzi V6 non è molto agevole. Ci può venire in aiuto RADVD.
E’ un sistema che consente l’autoconfigurazione dei client.
Si può installare il demone sul nostro OpenWRT utilizzando il manager di pacchetti:
opkg update
opkg install radvd
Sono sufficienti alcune modifiche nel file di configurazione in /etc/config/radvd che solitamente consistono nel mettere a zero il valore sulle righe “ignore”.
Poi sui avvia il servizio:
/etc/init.d/radvd start
e lo si aggiunge all’avvio automatico:
/etc/init.d/radvd enable
Come primo esperimento ho provato ad abilitare il supporto IPV6 su un vecchio PC con Windows XP collegato al nostro router.
Aggiornando la conensione di rete ecco il risultato:
Sembra tutto OK: il PING6 funziona ela tartaruga su WWW.KAME.NET muove le pinne e la testina 🙂
Effettuando alcuni test si nota subito che il tunnel offre prestazioni altissime. In alcuni casi ottengo latenze inferiori attraverso il tunnel piuttosto che la normale rete V4. Questo testimonia le ottime performances della rete di HE.
ATTENZIONE!
Probabilmente siete abituati a navigare con indirizzi nattati, ma dovete rendervi conto che ora siete raggiungibili direttamente da internet. Il vostro indirizzo V6 è pubblico a tutti gli effetti.
Discutere le implicazioni di sicurezza di quanto sopra esula dallo scopo di questo articolo e spero che il problema venga affrontato (da me o qualcun’altro) in un futuro prossimo.
Buon divertimento