NAT e socket

di il
6 risposte

NAT e socket

Come faccio a capire se mi trovo dietro un NAT?
Dato che penso che la mia LAN utilizzi un router NAT, sto creando un socket server e vorrei assegnargli un IP accessibile dall'internet globale.
Come posso assegnargli un IP univoco scavalcando il NAT??
Apprezzo qualsiasi consiglio e grazie

6 Risposte

  • Re: NAT e socket

    In pratica ho un server dietro un NAT, e vorrei che qualsiasi client possa inviargli una richiesta.
    Ho letto che è possibile la tecnica "hole punching".
  • Re: NAT e socket

    Non è una questione banale ma puoi leggere

    http://www.brynosaurus.com/pub/net/p2pnat

    per avere un'idea e questo progetto

    http://sourceforge.net/projects/stun
  • Re: NAT e socket

    Grazie mille
  • Re: NAT e socket

    Riprendo il post, dato che ho letto davvero tanto sulle possibili stategie del NAT transversal per le app P2P.
    La soluzione più facile da implementare senza l'utilizzo di librerie esterne o soluzioni del tipo (STUN, TURN, hole punching, SIP, ecc...), mi sembra quella di far settare in automatico all'app la porta di inoltro nel NAT tramite il protocollo uPnP. Anche se sarebbe difficile gestire più utenti della stessa app, sotto lo stesso NAT.
    Se nel mondo ci fossero solo indirizzi IPv6, il problema non sussisterebbe neppure. Sarei anche curioso di sapere le strategie personali di famosi sistemi P2P come Skype, Whatsapp, Telnet.
  • Re: NAT e socket

    È molto più semplice di quello che sembra. si usano tabelle che instradano certe porte (dall'IP pubblico) verso altre porte (di IP privati), normalmente corrispondenti ma non necessariamente.

    puoi ad esempio mappare la porta 443 dell'IP pubblico X.Y.Z.K => porta 443 dell'IP privato 192.168.1.2
    o magari la porta 80 dell'IP pubblico X.Y.Z.K => porta 443 dell'IP privato 192.168.1.3
    Quindi non è detto, a priori che la porta X venga inviata sulla porta X locale.
    Ovviamente bisogna in questo caso essere consci e gestire la situazione.

    Il meccanismo di Skype etc non c'entrano nulla, sono inizializzati con flussi dall'INTERNO verso l'ESTERNO, cui seguono l'utilizzo tipicamente permesso di flussi esterni=>interni se aperti dall'interno (verificando lo stato della connessione, in altri termini)

    PS telnet non ha niente del p2p
  • Re: NAT e socket

    Grazie per la risposta e scusa mi sono confuso, intendevo Telegram.
Devi accedere o registrarti per scrivere nel forum
6 risposte