PDA

View Full Version : Connettersi da remoto ad un IP privato


conemil
23-06-2014, 15:53
Buongiorno,

spero di non aver sbagliato sezione del forum, nel caso scusatemi.

Immaginiamo di avere un dispositivo collegato ad una scheda dotata di microcontrollore che ne gestisce e controlla vari dati (ad esempio temperatura, pressione, ecc). Questa scheda è collegata ad internet tramite un dispositivo WiFi integrato, che si connette a un router.

Tramite PC, da remoto, non riesco ad accedere ai dati contenuti nella scheda perchè l'indirizzo che il router assegna alla scheda è privato (non potendo essere pubblico per diverse ragioni), e questo non mi permette di sapere l'IP a cui collegarmi, perchè appunto il router assegna un IP NAT che non viene riconosciuto dal browser al quale ci si connette da PC.

Quindi, come posso da remoto accedere ad una scheda con un IP privato per modificarne o leggerne i parametri?

Per chiarezza, la scheda la progetto io quindi posso programmarla a piacere, il problema è che non so come da un PC connesso a remoto collegarmi direttamente alla scheda.

Grazie a chiunque risponderà.

stex21
23-06-2014, 23:13
ciao

1)per prima cosa occupiamoci della parte relativa al router.
Per connettersi in remoto ad una rete generalmente si può fare attraverso un IP o un nome.
Il router per navigare su internet ha un ip pubblico fisso o dinamico. Se hai un IP pubblico statico passa direttamente alla fase due sotto. Se hai un ip pubblico dinamico hai necessita di impostare sul tuo router un sistema tipo DynDns, che in pratica va ad assegnare un nome al tuo router che non cambierà anche se l'ip pubblico cambierà.

2) dovrai quindi impostare sul un portforwarding delle porte logiche che ti servono verso l'indirizzo ip privato che viene dato alla scheda di rete del dispositivo a cui ti devi collegare e il gioco è fatto ;)

chiedi pure se hai dubbi ;)

Alfonso78
24-06-2014, 08:30
La scheda deve obbligatoriamente possedere un indirizzo di tcp/ip. Non riesci ad individuarlo?

conemil
24-06-2014, 10:21
Innanzitutto grazie mille per le risposte.
@stex21 Sono riuscito a creare l'host che mi serve in Dyndns, quindi ora mi serve impostare il router (ho trovato qualche guida e mi sembra semplice) e poi inserire il port forwarding su qualcosa (non hai scritto la parola :D), e questo mi sembra più complicato, mi puoi aiutare?
@Alfonso78 Esatto non riesco ad individuare l'IP della scheda che mi serve per collegarmi ad essa per poterne gestire i dati, se hai anche tu qualche idea su come fare ti ringrazio.

conemil
24-06-2014, 11:06
Aspettate credo ci sia un errore di fondo nella soluzione che mi ha dato stex21.
L'IP che viene assegnato alla scheda è un IP NAT, il che significa che l'IP letto dal server Dyndns non è quello giusto, ma è quello del router alla "radice", non quello che viene assegnato realmente alla scheda, che è alla fine una sorta di sottoIP. Quindi quando il server prova a collegarsi, non riesce ad individuare la scheda e io non posso accedere ai dati.
Spero di aver spiegato meglio il problema.

Dumah Brazorf
24-06-2014, 11:17
Occorre creare una regola di port forward (detto anche virtual server su alcuni router).
La regola lega una porta esterna con un ip e porta interna.
Quindi quando tu da fuori raggiungi l'ip esterno del router alla porta indicata come esterna nella regola lui ridireziona la chiamata all'ip interno del sensore alla porta indicata come interna nella regola.

stex21
24-06-2014, 12:41
Innanzitutto grazie mille per le risposte.
@stex21 Sono riuscito a creare l'host che mi serve in Dyndns, quindi ora mi serve impostare il router (ho trovato qualche guida e mi sembra semplice) e poi inserire il port forwarding su qualcosa (non hai scritto la parola :D), e questo mi sembra più complicato, mi puoi aiutare?

ero un attimo in fase REM a quell'ora :asd::asd:

Router:
- impostazione dyndns
- portforwarding delle porte necessarie verso l'indirizzo ip del macchinario, in pratica devi dire al router che in caso di richieste dal lato internet verso le porte necessarie al macchinario deve girare tale richieste all'indirizzo ip del macchinario stesso ;) sul router deve esserci una parte di NAT/PAT dove poter fare tale operazione

ovviamente devi sapere quali porte logiche deve utilizzare il macchinario ;)

conemil
24-06-2014, 12:42
Grazie mille per la risposta Dumah Brazorf.
Puoi dirmi come impostare la regola di port forward nel router?
Potresti fare un esempio pratico con degli IP e delle porte "inventati"?
Scusami ma sono un po' acerbo riguardo questi argomenti, e in internet non ho saputo trovare nulla per raggirare il problema degli IP NAT, mi saresti davvero di aiuto.

stex21
24-06-2014, 12:54
se per esempio il macchinario ha indirizzo ip 192.168.0.20 e ha necessita della porta 8080 TCP, sul router devi andare nella sezione dedicata e impostare tali parametri. Generalmente è una tabella precompilata dove devi solo inserire i parametri sopra, poi ovviamente cambia da router a router.
Che router utilizzi?

conemil
24-06-2014, 13:20
Grazie mille per la spiegazione, ma il problema è nel caso io abbia un router, per esempio, fast web, o che sia collegato a reti come Vodafone o Wind che spesso danno indirizzi privati provenienti dai loro server che non si riescono(o almeno io non riesco) a sapere, come faccio? Scusa se insisto o non mi so spiegare :D

stex21
24-06-2014, 14:16
non si nasce imparati :D

se si chiedono le cose come fai tu, le spiegazioni si danno anche più volentieri :)

allora facciamo un attimo di chiarezza

ogni router ha una parte LAN e una parte WAN, rispettivamente parte interna e parte esterna.

Sulla parte interna si possono assegnare manualmente ai vari dispositivi collegati in rete gli indirizzi IP, oppure questi ultimi possono essere assegnati dal router (o da un qualsiasi altro dispositivo in grado di farlo sulla rete interna) attraverso il protocollo DHCP, ovvero un protocollo che assegna un indirizzo IP ad un dispositivo qualora questo lo richieda (non ti sto a spiegare come:D)
Generalmente in una rete LAN si hanno indirizzo del tipo 10.10.10.x oppure 192.168.0.x con una subnet mask che normalmente è impostata su 255.255.255.0

Nota di servizio
gli indirizzi nei range di seguito non possono essere utilizzati come indirizzi wan (quindi come IP Pubblici)
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255


Sulla parte esterna invece vengono assegnati quelli che vengono definiti IP pubblici, ovvero degli ip che possono essere pubblicati sulla rete internet e che fanno riconoscere il router univocamente nell rete internet stessa.
Questi indirizzi sono generalmente assegnati dinamicamente (cioè dal service provider) negli abbonamenti home, mentre nelle linee aziendali è frequente avere degli indirizzi ip pubblici statici, che vengono utilizzati per situazioni come la tua nel caso ci siano molte cose da pubblicare su internet (come funziona esattamente te lo spiego un altra volta :D)

Ora per ovviare a questo problema dell'indirizzo dinamico si usa il dyndns che ti fa riconoscere univocamente il router nel mondo internet anche se l'indirizzo ip cambia.

ora vorrei sapere che router e che linea hai, perché gli apparecchi forniti dai gestori sono sicuramente poco configurabili e anzi addirittura alcune volte devi chiedere di farti le modifiche perché non puoi accedere al loro apparato

:)

conemil
24-06-2014, 14:28
Spiego ancora meglio, pensavo di semplificare invece è meglio se vado nel dettaglio. :D
Il dispositivo su cui si trova la scheda deve poter essere collegato ad un router qualsiasi, può essere uno a cui viene destinato un IP statico, un IP pubblico, un IP privato, quindi collegato a qualsiasi rete presente ora in Italia. Se ci riferiamo alla rete, ad esempio, di una grande azienda che possiede un suo IP statico, ovviamente il problema di andare a leggere o modificare i dati della scheda non sussiste, perché so esattamente a quale IP collegarmi. Se l'IP che gestisce il router è pubblico o privato, anche in questo caso posso comunque ricavarlo attraverso il sistema, che anche voi avete consigliato, di utilizzare Dyndns, che "recupera" il mio IP anche se cambia ad ogni connessione, e basta inserire in questo caso l'URL che ho deciso di inserire.
Il problema è se un server gestito da Fastweb o Vodafone, ad esempio, mi assegna un "suo" IP proveniente da una rete NAT, e che quindi per sapere dove collegarmi dovrei chiedere ogni volta a loro, cosa ovviamente poco felice, primo perché mi risponderebbero probabilmente di comprarmi un IP statico e secondo perché probabilmente l'IP in questione cambia ad ogni connessione.
C'è un modo per ovviare a questo problema?

conemil
24-06-2014, 14:33
Scusami stavo scrivendo prima di leggere la tua risposta, ora mi è più chiaro come funziona il tutto e ti ringrazio, per fortuna nel mio commento ho in parte risposto a quanto mi chiedevi riguardo utilizzo di router e linea :)

Alfonso78
24-06-2014, 16:33
:stordita:

stex21
24-06-2014, 22:17
forse ho capito dove vuoi arrivare :mbe:

in pratica tu vuoi poter raggiungere questa macchina ovunque sia collegata, per esempio oggi è collegata sulla rete della ditta "pippo srl" e vuoi raggiungerla li, domani è collegata sulla rete della ditta "pluto spa" e vuoti raggiungerla li?

ho inteso bene?

il tutto senza dover cambiare impostazioni di router e quant'altro ;)

ciusto?:cool:

conemil
25-06-2014, 08:37
Mmmmh vediamo, considerala più come un dispositivo messo in commercio, io vorrei andare a casa di una persona qualsiasi, installare la macchina a casa sua, collegarla ad internet attraverso il suo router di casa e dire per esempio "se ti colleghi a questo indirizzo mentre sei fuori casa puoi accedere alle sue informazioni e (che ne so) accendere o spegnere la macchina"; oppure io installo il dispositivo da qualche parte e i nuovi proprietari del dispositivo mi dicono "c'è un problema, la macchina non funziona bene", e io senza andare fino a casa loro posso dal mio PC collegarmi al dispositivo e verificare i valori come temperatura, corrente, e cose simili, e anche modificarli.
Questa cosa è fattibile con chi ha un IP rintracciabile perché magari ha un IP statico o comunque pubblico che si possono raggirare con sistemi tipo Dyndns, ma chi ha nel router di casa fastweb o reti UMTS riceve IP NATtati gestiti dal loro server, che significa che hanno un IP "interno" come mi hai spiegato tu, un IP "esterno" farlocco (dato da loro) e un IP "reale" che però sa solo Fastweb perché, da quel che ho capito cercando in rete, loro con l'IP con cui si collegano ad internet, connettono diversi router di diversi clienti assegnando loro dei "sottoIP", che a loro volta poi danno un IP "interno" ai vari computer collegati al router. Questo per ovviare al problema dei pochi IPv4 rimasti in circolazione.

Una cosa del tipo:
IP "Fastweb" ---> IP "router esterno" ---> IP "router interno"
..........|............................|..............................|
non lo posso sapere....lo posso sapere...............lo so

Non so se riesco a spiegarmi o per un tecnico ho detto qualche sciocchezza, ma il discorso è questo diciamo :D

La domanda è: c'è un modo per ricavare l'IP "Fastweb"?
In alternativa, ho un modo per raggiungere la scheda senza passare per questo IP?

Grazie e scusa se continuo a essere poco chiaro forse :muro:

stex21
25-06-2014, 10:00
e dillo subito che Si tratta di fastweb :D:D


allora con loro il problema è noto perché hanno una loro intranet sul lato wan e quindi hai il famoso IP farlocco. Con loro la soluzione sarebbe prendere un ip pubblico vero che pero ovviamente devi pagare.

In alternativa ti posso consigliare un software tipo LogMeIN che in pratica ti crea una van tra te e il macchinario e non hai bisogno di dyndns, portaordini, nat e quant'altro ;)

https://secure.logmein.com/IT/ :read::read::read:

conemil
25-06-2014, 10:30
Grazie mille, scusa se non ho specificato prima ma sto scoprendo anche io quali sono i problemi veri un po' alla volta insistendo nella ricerca, e più vado avanti più la parola che si presenta è "Fastweb" :D
Ti chiedo un paio di cose che non ho capito (scusa lo sfruttamento):
- ho letto che LogMeIn funziona per connettersi ad un PC da remoto, è possibile anche connettersi a una scheda? Come?
- se io "vendessi" (magari, è per intenderci :D ) questa scheda a 50 persone con Fastweb, dovrei creare per ognuno un collegamento con LogMeIn tra me e la scheda (quindi pagarlo ogni volta, perché mi sembra a pagamento)?
- se io volessi accedere da 50 diversi dispositivi a una singola scheda (come nell'esempio che ti facevo dei proprietari che da smartphone vogliono spegnere la macchina, o io che da un mio PC voglio visionarne i parametri), devo installare LogMeIn su ognuno di questi dispositivi?
- c'è un software alternativo gratuito che si possa utilizzare (se ho capito bene ed è a pagamento), o almeno open source, sempre considerando che mi devo collegare ad una scheda, che è più limitata rispetto a un computer?

Ti ringrazio per l'ennesima volta :)

stex21
25-06-2014, 13:47
puoi usare un unica rete, ma io ti consiglio, anche per questioni di privacy, di creare una rete per ogni cliente in modo che tu possa collegarti con tutti, ma loro possono collegarsi solo ed esclusivamente con te

una volta che la van è instaurata te puoi collegarti all'indirizzo ip in questione via rcp, o attraverso l'interfaccia web, o come meglio credi, quindi non hai nessun tipo di limitazione ;)

un alternativa non te la saprei dare perché generalmente io mi creo la possibilità di accedere alle varie reti via VPN attraverso i firewall e i relativi client software; comunque basta che cerchi un po su google e qualcosa trovi sicuramente.

in alternativa se ci sono problemi ti puoi fare chiamare in teleassistenza con Teamviewer o similari :)

conemil
25-06-2014, 14:11
Ok perfetto, mi chiedevo solo, per ultima cosa, ho visto che tutte le guide di LogMeIn parlano di installare un software nei PC al quale ci si vuole collegare, nel mio caso, dato che la scheda non è dotata di sistema operativo, come faccio ad installarlo? Sai se c'è una soluzione fatta ad hoc per collegarsi ai non-PC?

Comunque mi hai dato un sacco di informazioni e consigli utili, ti ringrazio sono in debito con te :)

stex21
25-06-2014, 14:30
a quel punto installi il software su un pc all'interno della rete della scheda e poi una volta collegato con quel pc ti connetti alla scheda in questione ;)


sono 4 birre grazie :D:D:D

conemil
26-06-2014, 13:40
Solo 4?? :D
Ok comunque, mi sono informato un po' e ho visto che senza un PC nella stessa LAN (come mi hai correttamente suggerito tu) non se ne fa nulla, quindi purtroppo se devo fare una diagnosi della scheda a distanza che duri per un periodo lungo si dovrebbe tenere acceso e connesso il PC per tutto il periodo in questione, che è una soluzione poco comoda per me sfortunatamente. Però l'idea è buona e nel caso non trovassi altri metodi farò così, grazie ;)
Ho anche pensato ad un modo alternativo, usando un server a cui si connettano le schede tramite FTP, apro un altro post per cercare aiuto in questa direzione, se PER CASO ne sai qualcosa e mi vuoi dare una mano, le birre potrebbero crescere facilmente di numero :D

stex21
26-06-2014, 16:38
l'ftp a cosa ti servirebbe? al massimo la scheda programmata correttamente ti può uplodare dei report ma comunque non potresti comunque comandarla ;)