Newsgroup: it.comp.programmare.win32
Titolo: Problemi di rete

Ciao,
sto programmando sotto visual-c, ed ho questo problema:
come faccio a far connettere un server ed un client separati da un firewall
o un router? Praticamente il funzionamento dovrebbe essere molto simile a
quello che hanno che hanno programmi come ICQ e Mirc.
Da qualche parte ho trovato che si potrebbero usare i SOCKS, ma riesco a
trovare librerie solo sotto Unix.
Grazie a chi mi puo' aiutare

 o un router?
Per un router non serve niente di strano (qualsiasi pacchetto che
spedisci su Internet passa su minimo 4-5 router). Con un firewall
onestamente non so, io credo che le applicazioni per Windows che
"passano" attraverso un firewall siano molto rare.
Se invece ti riferivi ai "proxy", dipende tutto dal servizio che devi
far passare dato che la modalita` cambia da uno all'altro (ad es. per
HTTP e` molto semplice, mentre si complica per gli altri protocolli).
---
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/

 "passano" attraverso un firewall siano molto rare.
Anzittutto grazie per avermi ricordato la differenza tra firewall e router,
ed
effettivamente forse il problema non e' stato ben posto.
Vediamo ora di spiegarlo con una prova fatta stamane.
Oggi sono riuscito a far girare il mio prototipo di applicazione su una
macchina
collegata direttamente in internet (ovvero con IP internet 192.167...) e su
una
macchina privata (nel senso che e' collegata ad una LAN separata da un
router zyxel).
Quello che ho ottenuto sulla macchina collegata ad internet e l'IP privato
della
macchina su LAN privata. Mi spiego meglio con un esempio:
macchina A collegata direttamente ad Internet con IP 192.167.45.38
macchina B collegata su LAN privata e poi attraverso router IP 192.168.0.45
Quando su A ricevo i paccheti di B, li ricevo con numero 192.168.0.45, e
quindi non mi
e' possibile far un "reply" ai pacchetti ricevuti, perche indirizzati ad un
segmento
privato.
Poiche' ICQ e Mirc girano tranqullamente nella rete privata, mi chiedevo
come
riuscire a fare altrettanto, ovvero a spedire pacchetti da un numero IP
internet ad uno
su una rete LAN privato (ovvimente lavorando su un numero di porta
opportuno).
Ciao
Sergio

 come riuscire a fare altrettanto
Penso che ci siano due possibilita`:
1. Hanno effettivamente configurato il firewall per fargli fare il
masquerading dei pacchetti, "aprendo" solo le porte che servono
effettivamente (ad esempio se il firewall gira sotto Linux c'e`
ipchains, assieme ad altri moduli del kernel che permettono il
masquerading di protocolli particolarmente rognosi). In tal caso non
puoi fare quasi niente, a parte chiedere all'amministratore che ti apra
le porte che ti servono.
2. Hanno installato un proxy. Come ti dicevo, la maggior parte dei
software (inclusi, mi pare, ICQ e Mirc) sono in grado di passare
attraverso a dei *proxy*, che sono una cosa diversa dai firewall (molte
volte sono usati assieme). In questo caso ti serve ancora una volta che
il proxy sia abilitato a fare uscire i pacchetti che ti servono
(raramente vengono "aperte" tutte le porte), inoltre devi anche
modificare i protocolli che usi - e a seconda del servizio, queste
modifiche sono diverse.
In definitiva, devi prima capire come e` fatta la tua rete e in
particolare cosa gira sul firewall; non basta constatare che "con certi
programmi funziona". Intanto guarda se nei programmi che hai citato e`
impostato il proxy.


Scoperto l'arcano:
Io invio pacchetti UDP ed il router non maschera tali pacchetti!
Morale della favola mi devo gestire io il protocollo di mascheramento.
Ecco perche' Mirc e ICQ funzionano: lavorano con pacchetti TCP e vengono
opportunamente mascherati!
Grazie ancora

Ho detto una grossa cavolata!
Infatti da modem a modem con provider differenti (nonostante trasmetta
pacchetti UDP) il software funziona! Evidentemente il problema sta' nelle
funzioni utilizzate.
Studiero' ancora di piu' il problema