IPV6 a casa e in ufficio con OpenWRT

(Disclaimer: seguite questo tutorial a vostro rischio e pericolo. Potreste incorrere in danni hardware come il brick del dispositivo, intrusioni di hacker nel vostro sistema o sviluppare dipendenza da IPV6. In nessun caso l’autore potrà esserne 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 renderà possibile 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.

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 nell’elenco 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:

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.

primo accesso

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 ping6!

ping6 www.google.com

primo ping6

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 assegnato 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 i lunghissimi 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 si 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 router.

Aggiornando la conensione di rete ecco il risultato:

ipconfig

 

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 connessione 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



	

33 pensieri riguardo “IPV6 a casa e in ufficio con OpenWRT”

  1. Ottimo articolo! Purtroppo il mio router non è supportato da OpenWRT e quindi per ora non posso provarlo… (ho comunque un demone Teredo sempre attivo sulla mia macchina 🙂 )
    Qualcuno ha provato l’IPv6 nativo di Telecom Italia descritto qui http://tinyurl.com/cjm37hl ?
    Sostanzialmente dopo aver abilitato IPv6 sul router bisogna sostituire i dati di autenticazione con questi
    Nome utente: adsl@alice6.it
    Password: IPV6@alice6
    Non ho idea di che performance si abbiano, ma mi interesserebbe sapere qualcosa di più da chi lo ha provato…

    1. Se vuoi fare uno sforzo….sulla MISCO vendono il mio DIR-600 ad un prezzo assurdamente basso.
      Ad essere sicuri che la release è compatibile ne comprerei un paio….
      In alternativa su ebay trovi di tutto a partire da 1 euro 🙂

    2. Sono favorevolmente colpito da Telecom Italia che si sta finalmente muovendo verso ipV6 anche per gli utenti consumer. Non sono i primi ma per una volta non sono gli ultimi.

      Forse si vede davvero la fine del tunnel. Si il doppio senso è voluto. 🙂

  2. Sto provando il tunneling IPv6 con HE distrivuito da un server Linux CentOS. Per ora non sono ancora riuscito a fare esplodere nulla, ma non garantisco.
    Appena la situazione e’ stabile, posto un articolo.

  3. scusate per il crop indecente degli screenshot.
    Il fatto è che NON USO PRATICAMENTE MAI WINDOWS, ma avevo acceso il PC per fare le prove….ed ho scritto l’articolo di getto!

  4. Ciao, articolo molto interessante, complimenti, avrei da farti una domanda, io ho un netgear dg834g che ho visto supportato da opewrt, dato che è un modem router wireless tutto incorporato è garantito il funzionamento del tunnel? Oppure servono due interfacce di rete lato. Lan? Grazie mille

    1. Premesso che di “garantito” non c’è nulla 🙂
      per configurare il tunnel su un dispositivo connesso ad internet in V4 è sufficiente il supporto V6 del kernel ed il pacchetto 6in4.
      Entrambi si possono includere in fase di compilazione o possono essere installati attraverso il gestore di pacchetti.

      Consiglio per un utilizzo più sicuro l’installazione del pacchetto ip6tables e la creazione di regole ad hoc in quanto le normali regole V4 non si applicano ai pacchetti V6.

      In teoria il tuo è il dispositivo ideale in quanto è direttamente un router ADSL e non hai bisogno di altro hardware.

      Consiglio anche l’installazione dell’interfaccia WEB (web-ui) che sicuramente rende più facile la configurazione di un router così’ complesso.

      Ah, dimenticavo… attento alla release hardware del tuo dispositivo! Purtroppo i costruttori hanno la brutta abitudine di mettere in giro router con la stessa sigla che esternamente sembrano uguali, ma che dentro hanno hardware completamente diverso. Controlla bene prima di tentare qualsasi upgrade.

  5. Ogni pacchetto in transito sulla rete può essere pensato come una busta contente dei bit e con gli indirizzi di mittente e destinatario stampigliati all’esterno. I tunnel sostanzialmente prendono questa busta e la infilano in una busta ulteriore, di fatto dirottando il viaggio del pacchetto. Al raggiungimento del destinatario fittizio, la busta esterna viene rimossa e il pacchetto prosegue il suo viaggio verso il destinatario vero.

  6. Buonasera,

    il router in questione, con sopra openwrt, funziona bene? Intendo wifi e adsl senza bisogno di riavviare ogni 2-3 giorni ?

  7. Ho notato che Telecom fornisce ipv6 se si imposta ne file di configurazione pppoe. Ma questo cambia ad ogni riconnessione rendendo impossibile la configurazione della subnet. Con il tunnel invece si ha un IP statico. Sbaglio qualcosa io? Cosa conviene?

    1. Dipende da cosa ci vuoi fare.
      Se non vuoi avere una subnet che varia ogni volta, con il tunnel è tutto più semplice: la subnet assegnata è statica.
      Il prezzo lo paghi in termini di prestazioni leggermente inferiori almeno per quanto riguarda la latenza in quanto tutto il traffico passa per il tunnelbroker (che di solito non è dietro l’angolo….)

  8. Capito, grazie molto gentile. Un’altra domanda, se io ho due interfacce di rete eth0 e eth1,eth0 è collegata a internet tramite pppoe e ha indirizzo ipv4 e ipv6 nel file di configurazione di radvd devo mettere eth1 giusto? Grazie

  9. Ho installato openwrt su router tl wr841n e dato che sono collegato con un modem satellitare il cui indirizzo ip risulta essere natato, secondo te utilizzando la procedura descritta qui, posso raggiungere il router e quindi la mia rete lan locale in remoto dato che ho delle ipcam. Potresti se si,indicarmi la procedura da fare router wr841n con ip statico 192.168.1.1 subnet 255.255.255.0 e altri indirizzi ip a seguire. Che indirizzo mi consiglieresti per il router e quindi la lan 10.10.x.x?
    Ciao e grazie.

      1. Il vincolo non è il nat, ma l’IP esterno deve essere pingabile. Anche se lo è probabilmente cambia ad ogni connessione e potrebbe capitare che qualcuno lo stia già usando per un tunnel. Insomma in questo caso è poco consigliabile l’approccio di cui sopra.
        Ma basta cambiare tipo di tunnel per risolvere.
        Recentemente ho usato un tunnel con subnet rilasciato da sixx (altra soluzione gratuita) su un router openwrt con una connessione mobile wind. Basta che installi il pacchetto aiccu ed il gioco è fatto.

  10. Ho fatto account sixx e sto aspettando la conferma manuale, poi ho installato il pacchetto aiccu su openwrt, ma non ho capito come va configurato, mi spiego meglio non mi compare nessuna schermata o sotto menù con questa configurazione su Luci. Mi puoi aiutare a capire come fare? Grazie.

  11. Prima di diventare ancora più matto (tra reset ed altro) ti chiedo dato che ho la versione 12.09/ luci 0.11.1 se è possibile avviare aiccu, ho installato il tutto mi sono venute fuori alcuni menù come in status/firewall/ipv6, ma non riesco a capire bene come avviare aiccu. ciao e grazie per la tua disponibilità.

    1. da console:

      /etc/init.d/aiccu start

      da webUi di solito è sotto SYSTEM->STARTUP ma lo uso poco non saprei dirti.
      L’importante è creare il file di configurazione corretto (di solito in /etc/config/aiccu) cosa che se ben ricordo non fa il pacchetto di installazione.
      Tutte queste informazioni comunque le trovi slle WIKI di SIXXS e OPENWRT

  12. Ho trovato alcun comandi al link che mia ha dato, ma non riesco a capire da che percorso si possono lanciare. Ancora grazie.

  13. Scusa, ma sono veramente scarso e ho zero conoscenze Linux (uso Windows) ma cosa intendi con il creare il file di configurazione, scriverlo con notes e mettere un estensione particolare e poi incollarlo dentro al router o cosaltro. Ti ringrazio ancora.

  14. Ho visto che su ebay il dlink dir600 si trova a pochi euro.
    Cosa mi consigliate di simile ma che abbia almeno una porta usb? (che si trovi usato sui 10 euro e magari con un po’ di memoria in più).
    Grazie.

Spazio per un commento