domenica 19 luglio 2015

Collegare un Perseus Server che si trova in posto sperduto con solo connessione 3G ?

SI PUO' FARE !

Ultimamente non riesco più a provare piacere nell'ascolto della Radio dalla postazione di casa.
Troppi disturbi e, anche con l'antenna magnetica, ci sono delle porzioni di spetro completamente
inusabili. L'ultimo “noise” che si è affacciato e un wide band noise, a detta di esperti un
OFDM "Orthogonal Frequency Division Multiplexing", che ho scoperto venir veicolato dalla linea telefonica.

Invece nella casetta in montagna è tutta un altra musica, l'ambiente che la circonda è rurale e praticamente non esistono disturbi, il massimo per poter mettere il Perseus remoto.

Il problema da affrontare nella realizzazione è quello della connessione ad Internet. In montagna
l'unica possibilità è una connessione con chiavettina 3G, connessione con velocità internet sufficiente ma con il grossissimo problema di non avere un indirizzo pubblico.

Il fatto di non aver un indirizzo pubblico implica che non posso esporre un server in internet, ovvero non posso associare il mio PC con il Perseus Server ad un indirizzo internet da poter raggiungere da
un qualsiasi punto internet nel mondo.

Con qualche limitazione pero non tutto è perduto. Se ci limitiamo a l fatto di collegare il Perseus remoto solo da un punto, per esempio casa nostra, e di studiare un sistema per attivare la connessione dal PC Montagna, possiamo tornare ad ascoltare la radio.

Ricapitoliamo e proviamo ad ipotizzare una soluzione.

Il PC Montagna non può mettere nessun server in internet perché non ha un indirizzo pubblico.
Il PC Casa ha una connessione ADSL classica con un indirizzo pubblico dinamico (ovvero può' cambiare ma esistono dei metodi per poterlo referenziare sempre con lo stesso nome).

Ipotesi semplice
Se il PC Montagna potesse accendersi a orari prefissati con un timer, lui potrebbe attivare PerseusServer e poi collegarsi ad un server VPN installato sul PC Casa e attivare cosi un tunnel che collega i due PC.
A questo punto dal mio PC Casa attivo il Client Perseus e ascolto la radio fintanto che ne ho voglia poi, visto che c'è un tunnel che collega i due pc, posso dare il comando di spegnimento al PC Montagna. Il ciclo si ripete il giorno dopo.

Ipotesi intermedia (Più flessibile e quella attualmente realizzata)
Sfruttando il fatto che la connessione internet è demandata ad un router 3G (tipo TPLINK MR3420 assolutamente obbligatorio per gestire la connessione senza alcun tipo di software su pc)
e che nel mio caso ho installato sul router openwrt, questo mi permette di demandare un po di logica al router.
In pratica lascio acceso solo il router, con lo scheduler (crontab) faccio partire uno script ogni dieci
minuti. Questo script esegue un FTP verso un server FTP installato sul PC di casa e se è attivo manda un comando Wake on Line per accendere il PC Montagna e poi tutto procede come nell'ipotesi precedente.
In Pratica, quando voglio ascoltare la radio faccio partire l'FTP server sul mio PC Casa, ogni dieci minuti il router in montagna controlla se per caso è attivo e se attivo lancia il comando WOL e accenda il PC con il serverPerseus. Finito l'ascolto spengo il PC Montagna con il comando remoto
e quando voglio riaccenderlo rifaccio partire il server FTP.

Ipotesi Hardware
Si potrebbe comperare una di quelle scatole con dentro una sim che accendono o spengono delle cose con un SMS.


Qualche nota per realizzare l'ipotesi intermedia.


Sul PC Casa: (WinXP)
Creare un account per dinamic DNS (io ho usato DynDns.it)

Installare (cercare in internet inadyn.v1.96.2.zip) Creare un file inadyn.bat e metterlo in autostart

*************** inadyn.bat ***********************************************
inadyn --dyndns_server_name dyndns.it --dyndns_server_url /nic/update? --iterations 1 -u "mioutente" -p "miapassword" -a "mioserver".homepc.it
*****************************************************************************

Installare OpenVpn e configurare il server VPN, seguire questa guida alla lettera.
https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide

Mettere in automatico il servizio OpenVpn in modo che parta all'accensione del PC.

Installare semplice ftp server "babyftp"

Configuro il router/Firewall di Modena in modo da mappare il pc Modena all'esterno con le porte 21 (FTP) e la porta 1194 (OpenVpn) aperta.

Sul PC Montagna: (WinXP)

Installare OpenVpn e configurare il client VPN con le chiavi "client" generate durante l'installazione del server,
Mettere in automatico il servizio OpenVpn in modo che parta all'accensione del PC.

Installare il software Perseus e mettere nella partenza automatica PerseusServer (configurare per GPRS Connections)

Installare UltraVNC Server (Per prendere il controllo di tutto il pc alla bisogna)


Sul router:

Installare OpenWrt con supporto chiavettina 3G

Installare WOL ( Wake on Line )

Impostare crontab per eseguire script ogni 10 minuti "*/10 * * * * /root/wakeradio.sh"

Nello script fare controllare un server ftp per presenza di un file (power.txt) , se non c'e' NON fare nulla, se invece è presente eseguire WOL sul pc da accendere e cancellare il file.

In pratica accende il pc con il perseus che a sua volta attiva il Server Perseus e fa partire il VPN
client con una connessione verso il VPN server attivo sul pc di casa.

************************************** wakeradio.sh *********************
#!/bin/sh

wget ftp://"mioserver".homepc.it/power.txt

if [ -f power.txt ]; then
echo "il file esiste, accendo il PC Monteombraro."
wol 00:16:CB:86:88:B4 -h 192.168.0.255
echo "comando accensione dato, cancello il file"
rm power.txt
else
echo "il file NON esiste, non faccio nulla."
fi
****************************************************************************


Operatività:

Sul pc di casa attivo Babyftp,

Aspetto che venga contattato dal PC Montagna (ai minuti 00 10 20 30 40 50), vedo che è contattato dalla finestra di stato di Babyftp.
Chiudo il server BabyFTP

Attivo Perseus Client puntando a l'indirizzo generato dal client VPN sul PC Montagna 10.8.0.6 porta 8014 (L'indirizzo e un parametro scelto durante la configurazione VPN)

Ascolto quello che mi pare e poi alla fine chiudo il client Perseus

Do il comando per spegnere il PC Montagna: shutdown -s -f -t 0 -m \\10.8.0.6
=======================================================================
Mettere insieme il tutto non è stato proprio una passeggiata ma ne è valsa la pena.

Se l'argomento vi interessa e avete dubbi/domande contattatemi via Email

73 IW4ENS

Roberto

Nessun commento:

Posta un commento

I commenti sono aperti a tutti e sono soggetti insindacabilmente a moderazione.
NON SARANNO PUBBLICATI COMMENTI SE PRIVI DI NOME E COGNOME ED EMAIL.
IL SOLO NOMINATIVO RADIOAMATORIALE NON SOSTITUISCE IL NOME E COGNOME RICHIESTO.
Grazie.

Nota. Solo i membri di questo blog possono postare un commento.