[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Nat



On Wednesday 01 February 2006 11:54, Paolo Larcheri wrote:
> > > Secondo quesito ( approfitto dai che se no mi tocca fare 2 OT :) ):
> > > c'e' un modo di 'scavalcare' i NAT da due host dietro NAT (con
> > > protocollo UDP) senza un terzo server pubblico che faccia da
> > > intermediario?
>
> Si, per esempio usando una VPN site2site tra i due border-gateway
> delle reti che vuoi collegare... a quel punto devi avere anche sui
> due gateway le rotte giuste per instadare i pacchetti tra le due sottoreti.
> Non so se mi sono spiegato...

rispondo a te e Alessandro.

Purtroppo la situazione e' peggiore: l'idea e' quella di avere una 
conversazione tra due host dietro nat diversi tramite internet con un 
protocollo udp. Diciamo che i due host conoscono il loro indirizzo esterno 
(ossia quello dei gateway, volendo anche quello interno ma non credo se ne 
facciano molto) e devono comunicare ma ovviamente sono nattati e quindi, una 
volta arrivati alla macchina nat dell'altro host, non sanno a quale porta 
consegnare il pacchetto. 

H1--------N1-------GW1-------|@°#  internet  §_:#@|-------GW2------N2------H2

GW1 e GW2 hanno IP pubblici noti ad entrambi gli host H1 e H2.
Possiamo assumere per semplicita' che GW1 = N1 e GW2 = N2 (di fatto non 
dovrebbe cambiare molto).

La mia idea era che se H1 conosce la porta assegnata ad H2 da N2 per una 
comunicazione su internet, allora puo' mandare i pacchetti all'indirizzo di 
N2 con porta "esterna" di H2 di modo che quei pacchetti vengano dati proprio 
a H2. E viceversa.

H1--->pak(S:i1,pi  D:ie2,pe2 --->
NAT1--->pak(S:ie1,pe1 D:ie2,pe2)--->
NAT2--->pak(S:ie1,pe1 D:ii1,pi2)--->
H2

dove pi = porta interna, pe = porta esterna,
ii = indirizzo interno, ie = indirizzo esterno
S = sorgente
D = destinazione
pak = pacchetto

Il problema sostanzioso e' far conoscere a H1 la coppia ( ie2, pe2 ) e 
viceversa.
Purtoppo questo e' tutt'altro che facile visto che H1 non puo' comunicare 
direttamente con H2 e viceversa causa NAT.

Il discorso sarebbe invece fattibile se ci fosse un server pubblico a cui H1 e 
H2 mandano un pacchetto UDP e il server risponde ad H1 con la porta esterna 
sul N2 di H2 e ad H2 con la porta esterna su N1 di H1. Ora entrambi conoscono 
le porte esterne e gli indirizzi pubblici dei NAT opposti e possono 
comunicare.

Se vi viene in mente qualche metodo alternativo...

Spero di non avere confuso ancora piu' la spiegazione. Ad ogni modo se e' 
troppo OT possimao continuare in privato.

Grazie

fede



Reply to: