Domus – Internet of Things per la domotica (parte 3)

La terza parte dell’articolo illustra le soluzioni di rete adottate per superare le limitazioni degli operatori di telefonia mobile italiani, che da qualche tempo forniscono solo IP privati.


Dopo aver realizzato e testato positivamente il prototipo Arduino sulla mia LAN, è venuto il momento di provare l’accesso via WAN, che rappresenta le normali condizioni di utilizzo. Con ADSL Alice, l’accesso remoto non costituisce un problema, in quanto registrando un account gratuito ad un servizio DNS dinamico (NO-IP, Dyndns, ecc.) si ottiene facilmente l’equivalente di un indirizzo statico.

I problemi sono iniziati quando ho provato l’accesso tramite un router connesso ad una chiavetta Vodafone. Questo scenario di utilizzo è tutt’altro che remoto: spesso la casa da controllare non dispone di connettività ADSL e l’unica soluzione è questa.

Ho eseguito la prova con un router TP-Link TL-MR3420 (Morgana) dopo aver inserito una vecchia chiavetta Huawei nella sua porta USB 3G/4G con sim dati Vodafone ed aver associato l’end point ad un account dyndns.  Niente. Nessuna risposta. Un trace con WireShark mi ha confermato quello che già la classe di indirizzi avrebbe dovuto suggerirmi: 10.128.224.10, indirizzo IP privato. NAT. Niente da fare.

Sembrava che TIM fornisse ancora IP “alti”, ma qualcuno lo smentiva. Sono andato allora a comprare una sim TIM per provare.  Risultato: 10.239.31.157. Anche da TIM un indirizzo privato.

E se stabilissi una VPN tra la LAN di casa (servita da ADSL) e la LAN di Arduino (servita da chiavetta TIM)?  Sarebbe come fossero sulla stessa LAN.

Camelot Net

Non essendo i miei router in grado di attivare autonomamente le VPN, ho ripiegato su una soluzione basata su OpenVPN, riciclando ancora una volta i miei due vecchi e fidati Asus EEE-Box, Excalibur e Dragonet. Saranno loro a sostenere la VPN, il primo come server, il secondo come client. Dopo qualche tentativo (occhio al famigerato firewall di windows), con questa configurazione sui due end point ho ottenuto i primi risultati.

Generare una chiave simmetrica key.txt, tramite l’apposita utility e copiarla nelle cartelle “config” di OpenVPN di entrambi gli host. Quindi scegliere una subnet diversa da entrambe quelle degli host coinvolti (es. 10.3.0), aggiungere sul default gateway della rete del server (il router) una rotta statica che inoltri tutto il traffico destinato alla rete 10.3.0 verso l’IP privato del server (10.3.0.2).

Registrare su DynDNS e creareun hostname per il server (es: mioserver.dyndns.net). Installare sul server il client DynDNS e configurarlo per usare l’hostname appena creato.  Accertarsi che il relativo servizio parta automaticamente.

Installare OpenVPN su entrambi gli host, e inserire nelle cartelle “config” di OpenVPN i ripettivi file di configurazione, con estensione “ovpn”:

Dragonet Client.ovpn

Excalibur Server.ovpn

Sul server avviare il servizio “OpenVPN Server” e impostarne l’avvio automatico. Sul client, collegato ad internet con la connessione 3G,  eseguire “OpenVPN GUI” in modalità amministratore, cliccare col tasto destro sull’icona nella systray e scegliere “connect”.

Effettuare dei test di connettività. In caso di problemi, i log di OpenVPN sono molto esplicativi già a verb 3.

Il keep-alive ping garantisce la pronta connessione automatica della VPN ogni qualvolta le due macchine sono attive.

Rimane ancora da risolvere un problemino:  la creazione di una rotta statica verso la subnet  192.168.2.0 e l’inibizione del naturale percorso di ritorno di Morgana tramite Internet.

Per risolverlo, installare su Excalibur la comoda utility Passport per Windows, che permette il  forwarding di tutte le porte IP di Excalibur 192.168.0.200 su Dragonet  102.168.2.200 e configurare sul router  Taliesyn la rotta statica verso 192.168.2.0 tramite Excalibur 192.168.0.200.

Il risultato finale è la piena raggiungibilità di Arduino (mioserver.dyndns.net:85/cmd) da Internet (via Taliesyn, Excalibur, Dragonet ed infine Arduino 192.168.2.177:85).

Vai a Domus parte4: App Android 

One Reply to “Domus – Internet of Things per la domotica (parte 3)”

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...