[Lugge] idea pazza per un progetto pazzo

  • From: Giorgio Andreoletti <giorgio.andreoletti@xxxxxxxxxxxxxx>
  • To: lugge <lugge@xxxxxxxxxxxxx>
  • Date: Tue, 09 Jul 2002 14:42:40 +0200

ciao a tutti,
ho deciso di esporvi un progetto che mi frulla in testa da un po' : non so se qualcuno in rete ci abbia già pensato (forse si, ma non conosco nessuno), ma l'idea mi sembra carina : solo mi mancano alcune conoscenze specifiche sulla suite TCP/IP , oltre che quelle di programmazione ... tutte cose alle quali con un po' di buona volontà potrei ovviare, ma intanto vi propongo il progetto.


Scopo :
riuscire a connettersi tramite internet ad un PC posto in una rete locale, configurato con IP di classe privata, "nascosto" da almeno un router che consideriamo intoccabile.


Motivazioni:
a breve mi arriverà la fibra a casa, e ho bisogno (per lavoro) di tenere sempre online il mio serverillo domestico per potermi scaricare files di config, docs, etc. ogni volta che (da un cliente) se ne presenti la necessità; ora il tutto funziona perchè il router ADSL è configurato per far passare tutto, ma come ben sappiamo con la fibra non si ha la possibilità di aprire una porta verso l'esterno.


Requisiti:
1 pc connesso ad internet tramite fibra ottica (da ora in poi lo chiamerò CASA), 1 server connesso ad internet (SRV) attraverso un' altro tipo di linea (indifferente quale, purchè accetti connessioni in ingresso), 1 client (CLT) che cerca di connettersi ad un servizio di CASA.


La mia idea:
Su SRV gira un demone in ascolto su di una porta che stabiliremo, diciamo la 5050.
CASA effettua una connessione tcp a SRV ogni 30 secondi, richiede se c'è qualcosa di nuovo per lui, e se non trova nulla chiude la connessione. Nel fare questo, il router di CASA deve aprire una porta sull' if esterna, aspettando su quella porta la risposta di SRV alla connessione di CASA, e reindirizzando questa risposta a CASA stesso.
Supponiamo che io, CLT, decida di voler stabilire una connessione con CASA : lancio un client scritto ad hoc, che si connette alla 5050 di SRV, e tramite questo client invio a SRV delle informazioni contenenti la mia volontà di collegarmi con CASA ; a questo punto, SRV aspetta che CASA faccia la sua consueta connessione (quindi aspetta max 30 sec), e nel momento in cui CASA si connette, SRV si configura per fare da gateway tra CLT e CASA, sfruttando la porta appena aperta sul router di CASA per effettuare la connessione a SRV ; visto che la connessione è già avvenuta, SRV può sostenere il dialogo con CASA senza dovere inviare delle syn, dialogo che, a questo punto, non dovrebbe incontrare nessun ostacolo nel router di CASA. Per il router tutto il traffico sarà tra CASA e SRV, ma in realtà SRV prende i comandi da CLT : in pratica, se tutto funzionasse a dovere, avrei ottenuto che CLT ha scambiato dei dati con CASA, e sembrerebbe quasi che sia stato CLT a connettersi a CASA.
L'idea sarebbe ancor più versatile e interessante se riuscissimo ad estrapolarla dal contesto di un singolo servizio : sarebbe cioè interessante studiare un protocollo di dialogo tra CASA - SRV - CLT in modo che tramite questa hack si possano effettuare connessioni su qualunque porta di CASA, a prescindere dal tipo di dati da trasportare (dovremmo cioè lavorare a livello di trasporto, se le mie reminescenze di modelli ISO/OSI non mi ingannano)


Linguaggio:
l'unico che conosco decentemente è il python, anche se a naso direi che questa è una idea da realizzare in C (che conosco molto poco).


si accettano idee / consigli / suggerimenti / insulti / finanziamenti miliardari

ciao
Giorgio



==============================
Giorgio Andreoletti - mentelocale S.r.l.
responsabile hardware e networking
responsabile sviluppo web
www.mentelocale.it
giorgio.andreoletti@xxxxxxxxxxxxxx
==============================

<========----------
Prima di scrivere in m-list per favore leggi il regolamento
http://www.lugge.net/soci/manifesto.htm#list

Archivio delle e-mail postate in lista
http://www.freelists.org/archives/lugge/

----------========>
Incontri in sede: martedì 15:00-18:00 e sabato 9:30-12.30


Other related posts: