Autore Topic: Problemi di NAT  (Letto 8770 volte)

€n20_C#

  • Newbie
  • *
  • Post: 41
  • La Morte dell'Arte...
    • Mostra profilo
Problemi di NAT
« il: 07 Gennaio 2008, 12:20:37 »
Hola, ciao a tutti e buon proseguimento d'anno a tutti!

Allora, riepilogo la mia situazione: ho messo WiPeX 1Mbps (seppure mi pare di vedere che la banda è scesa nel periodo festivo, siamo sui 200-300kbps per download ed upload). Ho fatto un "abbonamento" VoIP con Eutelia (abbonamento tra virgolette perchè non c'è canone), ho provato a telefonare da PC con ekiga e, come vi dicevo, il problema degli scatti si è risolto.

Eravamo rimasti qui, adesso la mia situazione è progredita. Finalmente ho comprato il router, e finalmente ho comprato l'adattatore telefonico (in seguito, ATA).
Mezza giornata per configurare il router, ma 2 settimane per configurare quel cavolo di ATA!! Sia per il grande numero di opzioni offerte da esso (è un PAP2T della Linksys), sia per un problemino che non mi permetteva di ricevere chiamate.

Ad ogni modo, ho alcune domande a proposito del router: cosa sono il Port Forwarding ed il Port Triggering?
Correggetemi se sbaglio:
1. Port Forwarding: può far sì che il traffico verso una o più porte (lato WAN) del mio router venga spedito (sulle stesse porte) ad un PC lato LAN.
2. Port Triggering: meglio un esempio... C'è un server in Internet che ascolta sulla porta 1111, porta resa disponibile per un servizio che prevede l'invio delle risposte sulla porta 2222 che è in ascolto sul client. Allora quando il client effettua una richiesta verso la 1111 del server, ed il server invia la risposta verso la 2222, NAT (che di norma scarterebbe questa risposta perchè permette solo il transito delle info verso la strada aperta dalla richiesta, cioè verso la porta 1111) indirizzerà la risposta verso la porta 2222 del client. Che casino...

A parte questo, vi dicevo del mio problemuccio nel configurare l'ata. Sono sotto il NAT del mio router, e sotto il NAT della Unipex. Ho abilitato lo STUN, ma nulla... Insomma, non vi dico tutto quello che ho fatto se no ci passiamo la settimana. Alla fine ho scoperto che (ho STUN attualmente attivo) dovevo cambiare la porta che l'ATA usa per ascoltare e per inviare informazioni SIP. Per default era la 5060, ma questa mi causava il non poter ricevere chiamate. Attualmente ho messo la porta 4444 (per semplicità), e funziona tutto alla perfezione.

Secondo voi, che ha che non va la 5060?

Altra cosa: se uso la 5060, quando l'ATA fa una richiesta al SIP Proxy l'ATA mette nell'header VIA del pacchetto SIP uscente l'indirizzo pubblico (l'IP su Internet degli utenti WiPeX, il 89.202.179.222, per capirci) e la porta 5060, che sarebbe l'indirizzo a cui il SIP Proxy deve spedire la risposta. E la risposta che il SIP Server spedisce indietro al mio ATA ha nell'header VIA gli stessi parametri. Quindi tutto ok, ma come vi ho già detto non funziona.

Se invece non uso la 5060, la risposta inviata dal SIP Server cambia l'header VIA, inserendo come porta quella che io ho usato, ma come IP il famoso 172.16.x.y, cioè l'indirizzo della porta WAN del mio router, assegnatomi da WiPeX. Ma come fa il SIP Proxy ad avere questa informazione, dato che il NAT di WiPeX dovrebbe aver rimosso ogni riferimento a questo IP sostituendolo con quello pubblico?

Altra cosa: lo STUN sostituisce all'IP privato dell'ATA (192.168.x.y) l'IP visto su Internet (correttamente, il famoso 89.202.179.222), ma non effettua alcuna sostituzione della porta. Cioè la porta 4444 privata su cui il mio ATA è in ascolto viene mappata sullo stesso numero di porta pubblica. Ovvero l'indirizzo privato 192.168.x.y:4444 viene mappato da NAT come 89.202.179.222:4444.
Io pensavo che NAT sostituisse anche la porta, invece mi sono accorto che esistono più tipi di NAT. Quello che dovrebbe utilizzare la WiPeX è un "Restricted Cone NAT", che se ho capito bene permette l'invio di dati da parte di un server Internet verso un client sotto tale NAT su qualsiasi porta di tale client, fermo restando che prima il client abbia fatto una richiesta a quel server. Quindi ho pensato che è per questo che la porta non viene sostituta: potendo un server spedire a qualsiasi porta di un client, che senso ha sostituire i numeri di porta? Il server vuole inviare alla 4444 del client sotto NAT, e allora invia alla 4444 dell'IP pubblico, logica ineccepibile. Giusto fin qui?

Ma allora sorge l'altro problema: se non c'è la sostituzione delle porte, e se due ATA fanno una richiesta allo stesso SIP Proxy, dalla stessa porta privata, come fa poi l'ATA a sapere dove inviare le risposte?
Esempio: l'ATA 192.168.0.1:5060, mappato dal router come 172.16.20.20:5060, viene sostituito dal NAT di Unipex come 89.202.179.222:5060. Ma anche l'ATA di un altro utente, mappato dal router come 172.16.20.21:5060, finisce per essere associato al 89.202.179.222:5060. E allora? Se le richieste dei due ATA sono dirette allo stesso server, questo poi spedirà due risposte (una per richiesta), entrambe al 89.202.179.222:5060. E come fa il NAT di Unipex a separare le risposte e mandarle l'una al 172.16.20.20:5060, l'altra al 172.16.20.21:5060?

Questi sono i problemi che mi affliggono... Prendetevi pure tutto il tempo che vi serve, ma vi prego, rispondetemi!

Ciao e grazie!

P.S.: Andrea, ora ho capito perchè non sopporti il NAT...

wipex

  • Provider
  • Jr. Member
  • ****
  • Post: 79
    • Mostra profilo
Re: Problemi di NAT
« Risposta #1 il: 12 Gennaio 2008, 15:33:42 »
Citazione
Allora, riepilogo la mia situazione: ho messo WiPeX 1Mbps (seppure mi pare di vedere che la banda è scesa nel periodo festivo, siamo sui 200-300kbps per download ed upload)
Vero. Stiamo rimediando

Citazione
Ho fatto un "abbonamento" VoIP con Eutelia
Abbiamo visto/ci hanno riferito che ha un po' di problemi. Hai provato con mc-link?

Citazione
<cut>
E come fa il NAT di Unipex a separare le risposte e mandarle l'una al 172.16.20.20:5060, l'altra al 172.16.20.21:5060?

Non lo fa. Per fare quello che vuoi è necessario un ip pubblico.

Se ti servono maggiori info, puoi contattarci (anche) direttamente

Andrea

  • Full Member
  • ***
  • Post: 235
    • Mostra profilo
Re: Problemi di NAT
« Risposta #2 il: 13 Gennaio 2008, 13:50:21 »
Hola, ciao a tutti e buon proseguimento d'anno a tutti!

Allora, riepilogo la mia situazione: ho messo WiPeX 1Mbps (seppure mi pare di vedere che la banda è scesa nel periodo festivo, siamo sui 200-300kbps per download ed upload). Ho fatto un "abbonamento" VoIP con Eutelia (abbonamento tra virgolette perchè non c'è canone), ho provato a telefonare da PC con ekiga e, come vi dicevo, il problema degli scatti si è risolto.

Ok bene!

Citazione
(è un PAP2T della Linksys), sia per un problemino che non mi permetteva di ricevere chiamate.

Ottimo la cisco è un ottima marca....

Citazione
Ad ogni modo, ho alcune domande a proposito del router: cosa sono il Port Forwarding ed il Port Triggering?
Correggetemi se sbaglio:
1. Port Forwarding: può far sì che il traffico verso una o più porte (lato WAN) del mio router venga spedito (sulle stesse porte) ad un PC lato LAN.

diciamo di si.....


Citazione
2. Port Triggering: meglio un esempio... C'è un server in Internet che ascolta sulla porta 1111, porta resa disponibile per un servizio che prevede l'invio delle risposte sulla porta 2222 che è in ascolto sul client. Allora quando il client effettua una richiesta verso la 1111 del server, ed il server invia la risposta verso la 2222, NAT (che di norma scarterebbe questa risposta perchè permette solo il transito delle info verso la strada aperta dalla richiesta, cioè verso la porta 1111) indirizzerà la risposta verso la porta 2222 del client. Che casino...

Questa non la sapevo, non si finisce mai di imparare....^^

Citazione
Ho abilitato lo STUN, ma nulla... Insomma, non vi dico tutto quello che ho fatto se no ci passiamo la settimana. Alla fine ho scoperto che (ho STUN attualmente attivo) dovevo cambiare la porta che l'ATA usa per ascoltare e per inviare informazioni SIP. Per default era la 5060, ma questa mi causava il non poter ricevere chiamate. Attualmente ho messo la porta 4444 (per semplicità), e funziona tutto alla perfezione.
Secondo voi, che ha che non va la 5060?
Sembra che la porta da qualche parte venisse filtrata.....

Citazione
Altra cosa: se uso la 5060, quando l'ATA fa una richiesta al SIP Proxy l'ATA mette nell'header VIA del pacchetto SIP uscente l'indirizzo pubblico (l'IP su Internet degli utenti WiPeX, il 89.202.179.222, per capirci) e la porta 5060, che sarebbe l'indirizzo a cui il SIP Proxy deve spedire la risposta. E la risposta che il SIP Server spedisce indietro al mio ATA ha nell'header VIA gli stessi parametri. Quindi tutto ok, ma come vi ho già detto non funziona.


Si ma la risposta arriva mica al tuo PC?? Arriva al router di wipex sulla porta 5060, e poi che se ne fa il router?? nulla dato che dubito che abbia regole di snat per ridirigere la richiesta a te....

Citazione
Se invece non uso la 5060, la risposta inviata dal SIP Server cambia l'header VIA, inserendo come porta quella che io ho usato, ma come IP il famoso 172.16.x.y, cioè l'indirizzo della porta WAN del mio router, assegnatomi da WiPeX. Ma come fa il SIP Proxy ad avere questa informazione, dato che il NAT di WiPeX dovrebbe aver rimosso ogni riferimento a questo IP sostituendolo con quello pubblico?

Qua sono le magie che fa STUN credo, sistema che non conosco al 100% ma vediamo di capire....

Citazione
Se invece non uso la 5060, la risposta inviata dal SIP Server cambia l'header VIA, inserendo come porta quella che io ho usato


la 4444 credo, e fino a qui OK

Citazione
ma come IP il famoso 172.16.x.y, cioè l'indirizzo della porta WAN del mio router, assegnatomi da WiPeX. Ma come fa il SIP Proxy ad avere questa informazione, dato che il NAT di WiPeX dovrebbe aver rimosso ogni riferimento a questo IP sostituendolo con quello pubblico?

Si ma Stun serve anche proprio a  questo  e sapere vita morte e miracoli della rete interna e come viene mappata verso l'esterno.

Citazione
Altra cosa: lo STUN sostituisce all'IP privato dell'ATA (192.168.x.y) l'IP visto su Internet (correttamente, il famoso 89.202.179.222), ma non effettua alcuna sostituzione della porta. Cioè la porta 4444 privata su cui il mio ATA è in ascolto viene mappata sullo stesso numero di porta pubblica. Ovvero l'indirizzo privato 192.168.x.y:4444 viene mappato da NAT come 89.202.179.222:4444.

E be si, giusto, tu non sai come viene rimappata la porta, lo fa il router di frontiera di wipex, la porta 4444 è quello che serve al server stun per capire chi sei, e sapere la porta con cui esci e usare quella per chiamarti....un po un casino

Citazione
Io pensavo che NAT sostituisse anche la porta, invece mi sono accorto che esistono più tipi di NAT. Quello che dovrebbe utilizzare la WiPeX è un "Restricted Cone NAT", che se ho capito bene permette l'invio di dati da parte di un server Internet verso un client sotto tale NAT su qualsiasi porta di tale client, fermo restando che prima il client abbia fatto una richiesta a quel server.


Il nat, sostituisce ANCHE le porte! Si ma quello che viene usato per mascherare + Utenti dietro un solo IP pubblico DEVONO anche sostituire le porte. Cmq si il "Restricted Cone NAT" funziona cosi, ed è anche il modo + diffuso di implementare il nat.


Citazione
Quindi ho pensato che è per questo che la porta non viene sostituta: potendo un server spedire a qualsiasi porta di un client, che senso ha sostituire i numeri di porta? Il server vuole inviare alla 4444 del client sotto NAT, e allora invia alla 4444 dell'IP pubblico, logica ineccepibile. Giusto fin qui?

Infatti non funziona cosi, il server non puo inviarlo alla 4444, ma deve inviarla all porta che è stata dinamicamente rimappata per corrispondere con quella del client.

in pratica il nat funziona cosi:

Struttura pacchetto TCP/IP
+-------------------------+-------------------+-------------------------------+------------------------+
|Indirizzo IP sorgente|Porta sorgente |Indirizzo IP destinazione |Porta destinazione |
+-------------------------+-------------------+-------------------------------+------------------------+

Esempio di comunicazione con NAT:
Richiesta cliente dentro NAT:

+-------------------------+-------------------+-------------------------------+------------------------+
|       192.168.1.1       |        8549         |         80.50.100.50         |             80              |
+-------------------------+-------------------+-------------------------------+------------------------+

Router Nat modifica il pacchetto :

+-------------------------+-------------------+-------------------------------+------------------------+
|       70.50.15.1         |        8550         |         80.50.100.50         |             80              |
+-------------------------+-------------------+-------------------------------+------------------------+

Come vedi ha sostituito l'ip con quello pubblico, e ha anche modificato la porta sorgente inserendo la prima
porta disponibile.

Risposta del server:

+-------------------------+-------------------+-------------------------------+------------------------+
|      80.50.100.50      |           80         |          192.168.1.1           |             8549          |
+-------------------------+-------------------+-------------------------------+------------------------+


Come vedi  il server risponde sulla porta rimappata dal router.....

Router Nat modifica il pacchetto in entrata:
Attraverso la sua tabella interna di NAT sa che a quella porta corrisponde un IP preciso con una porta precisa.
+-------------------------+-------------------+-------------------------------+------------------------+
|      80.50.100.50      |           80         |          70.50.15.1             |             8550          |
+-------------------------+-------------------+-------------------------------+------------------------+


la connessione è stabilita ed avvenuta....FINE!

Citazione
Ma allora sorge l'altro problema: se non c'è la sostituzione delle porte, e se due ATA fanno una richiesta allo stesso SIP Proxy, dalla stessa porta privata, come fa poi l'ATA a sapere dove inviare le risposte?
Esempio: l'ATA 192.168.0.1:5060, mappato dal router come 172.16.20.20:5060, viene sostituito dal NAT di Unipex come 89.202.179.222:5060. Ma anche l'ATA di un altro utente, mappato dal router come 172.16.20.21:5060, finisce per essere associato al 89.202.179.222:5060. E allora? Se le richieste dei due ATA sono dirette allo stesso server, questo poi spedirà due risposte (una per richiesta), entrambe al 89.202.179.222:5060. E come fa il NAT di Unipex a separare le risposte e mandarle l'una al 172.16.20.20:5060, l'altra al 172.16.20.21:5060?

Infatti non può le porte devono essere rimappate altrimenti non funziona un tubo.....!




Citazione
Ciao e grazie!
P.S.: Andrea, ora ho capito perchè non sopporti il NAT...

Be si, da + problemi che altro , poi come avrai capito dentro Nat non puoi avere servizi server quali:
HTTP---->80
Posta----> 25,110
ecc.

€n20_C#

  • Newbie
  • *
  • Post: 41
  • La Morte dell'Arte...
    • Mostra profilo
Re: Problemi di NAT
« Risposta #3 il: 21 Gennaio 2008, 17:44:11 »
Accidenti!
Ragazzi prima di tutto mi scuso con voi, per non avervi risposto subito. Ma evidentemente devo essermi dimenticato di abilitare la ricezione di posta nel caso di risposte al thread, perchè non ho mai ricevuto nulla e ho sempre pensato che nessuno finora mi avesse risposto. Poi ultimamente ho poco tempo a disposizione, ed è solo per caso che oggi sono tornato sul sito e-moka ed ho visto che ho avuto ben due risposte, che per un post così complicato come il mio sono già molte!

Mi scuso anche se ovviamente le info che vi darò adesso vi costringeranno a rileggere (tutto o almeno in parte) la mia discussione iniziale, parecchio lunga, impestata e noiosa!

Dunque prima di tutto rispondo a wipex:

Citazione
Allora, riepilogo la mia situazione: ho messo WiPeX 1Mbps (seppure mi pare di vedere che la banda è scesa nel periodo festivo, siamo sui 200-300kbps per download ed upload)
Vero. Stiamo rimediando

Mi fa molto piacere! Comunque si, solo nel periodo festivo. Per il resto mi pare ok!

Citazione
Citazione
Ho fatto un "abbonamento" VoIP con Eutelia
Abbiamo visto/ci hanno riferito che ha un po' di problemi. Hai provato con mc-link?

... No, di cosa si tratta? Di un altro provider? Comunque non ho avuto alcun problema con Eutelia, credo che i miei problemi siano dovuti alla configurazione della rete wipex.

Citazione
Citazione
<cut>
E come fa il NAT di Unipex a separare le risposte e mandarle l'una al 172.16.20.20:5060, l'altra al 172.16.20.21:5060?

Non lo fa. Per fare quello che vuoi è necessario un ip pubblico.

Ah, scusate ma a questo punto sono molto preoccupato.
Voi dite che serve un IP pubblico, mi era arrivata anche una vostra mail che diceva che, dopo alcune prove con certi providers VoIP, avevate constatato che serviva l'IP pubblico.
Il fatto è che io ho sempre inteso la mail come "potrebbe servire un IP pubblico, in base alle scelte compiute da ciascun provider VoIP". Quindi ho sempre ignorato la cosa, perchè dopo aver risolto il mio problema iniziale, riesco a telefonare e ricevere chiamate senza alcun IP pubblico, con Eutelia.

Allora, non vi nascondo la mia preoccupazione... In pratica volete dirmi che sono l'unico che sta utilizzando il VoIP senza IP pubblico? Se è così, non è che adesso che lo sapete, di punto in bianco cercate il come mai a me funziona, e mi piantate la cosa costringendomi a mettere un IP pubblico?

Vi prego non fatelo, ho speso parecchio tempo per configurare l'ATA, ed adesso che funziona vorreste cambiarmi la situazione?! Ho già dato il mio numero a parecchia gente, se scoppiano casini è un casino! Se volete esaminare la questione, potete farlo, ma vi prego se trovate qualcosa nella mia configurazione che non è corretta, parliamone. Se avete ragione voi sarò ben lieto di acquistare l'IP pubblico, del resto anch'io ci tengo al fatto che la rete WiPeX non abbia problemi o configurazioni errate da qualche parte.

Non toglietemi però la possibilità di telefonare da un giorno all'altro!
Per maggiori chiarimenti, sono a disposizione, a questo punto in privato.

Grazie, arrivederci.

€n20_C#

  • Newbie
  • *
  • Post: 41
  • La Morte dell'Arte...
    • Mostra profilo
Re: Problemi di NAT
« Risposta #4 il: 21 Gennaio 2008, 18:20:21 »
Ciao Andrea.
Ti rigiro le mie scuse per non essermi fatto più sentire, pensavo che nessuno mi avesse ancora risposto!
Dunque, vediamo cosa ho da dirti. Ci tengo prima di tutto a sottolineare che attualmente tutto funziona, posso fare e ricevere chiamate, e (dopo parecchie prove) sto "ufficialmente" utilizzando la telefonia VoIP da inizio gennaio.

Ad ogni modo, ho alcune domande a proposito del router: cosa sono il Port Forwarding ed il Port Triggering?
Correggetemi se sbaglio:
1. Port Forwarding: può far sì che il traffico verso una o più porte (lato WAN) del mio router venga spedito (sulle stesse porte) ad un PC lato LAN.

diciamo di si.....

Come "diciamo di si"? E' giusto o no? Potrei tranquillamente aver capito male io, eh? Contrariamente a quanto possa sembrare, io di queste cose non so nulla...

Citazione
Citazione
2. Port Triggering: meglio un esempio... C'è un server in Internet che ascolta sulla porta 1111, porta resa disponibile per un servizio che prevede l'invio delle risposte sulla porta 2222 che è in ascolto sul client. Allora quando il client effettua una richiesta verso la 1111 del server, ed il server invia la risposta verso la 2222, NAT (che di norma scarterebbe questa risposta perchè permette solo il transito delle info verso la strada aperta dalla richiesta, cioè verso la porta 1111) indirizzerà la risposta verso la porta 2222 del client. Che casino...

Questa non la sapevo, non si finisce mai di imparare....^^

Non è detto che sia come dico, infatti cercavo conferme. Dopo aver spulciato un po' la rete, mettendo assieme le varie informazioni ho trovato la soluzione a cui sono giunto, che mi pare anche logica.

Citazione
Citazione
Altra cosa: se uso la 5060, quando l'ATA fa una richiesta al SIP Proxy l'ATA mette nell'header VIA del pacchetto SIP uscente l'indirizzo pubblico (l'IP su Internet degli utenti WiPeX, il 89.202.179.222, per capirci) e la porta 5060, che sarebbe l'indirizzo a cui il SIP Proxy deve spedire la risposta. E la risposta che il SIP Server spedisce indietro al mio ATA ha nell'header VIA gli stessi parametri. Quindi tutto ok, ma come vi ho già detto non funziona.

Si ma la risposta arriva mica al tuo PC?? Arriva al router di wipex sulla porta 5060, e poi che se ne fa il router?? nulla dato che dubito che abbia regole di snat per ridirigere la richiesta a te....

E invece no, scusa, deve avere regole per redirigerla a me! Il mio ATA fa una richiesta, e mette nell'header VIA l'indirizzo pubblico a cui è raggiungibile (abbiamo detto il 89.202.179.222:5060).

(Apro una parentesi: il mettere l'indirizzo internamente al pacchetto SIP francamente non mi è chiaro, anzi è proprio per questo che sorgono casini col NAT, secondo me... Se si utilizzava solo l'IP e la porta nel pacchetto IP che incapsula i pacchetti SIP, tutto funzionava senza problemi, cioè il NAT era trasparente, esattamente come lo è per richieste HTTP, ... . Ma come al solito potrei sbagliarmi, io di queste cose non so un piffero.)

Successivamente, il pacchetto IP contenente la richiesta SIP viene trasmessa dall'ATA al mio router (che cambia l'indirizzo IP nel pacchetto IP (e non SIP) con quello assegnatomi da WiPeX. La richiesta giunge poi ai routers di Unipex, che di nuovo sostituiscono all'indirizzo 172.16.... il classsico 89.202.179.222. Il pacchetto in questione viene poi ricevuto dal SIP Proxy, che spedisce la risposta a 89.202.179.222. Il NAT di Unipex DEVE indirizzare per forza questo pacchetto al mio IP 172.16...., dal momento che da lì è uscita la richiesta!
E infine, il mio router DEVE dare all'ATA la risposta, poichè è lui che ha fatto la richiesta.

Ma, come si diceva, non va... Secondo me il problema è tutto della 5060, come dicevi tu viene filtrata (ma da chi e perchè? Che senso ha che proprio la porta destinata al VoIP sia bloccata da Unipex?).
Usando la 4444, il tutto funziona, quindi la mia logica è corretta, almeno pare...

Citazione
Citazione
Se invece non uso la 5060, la risposta inviata dal SIP Server cambia l'header VIA, inserendo come porta quella che io ho usato, ma come IP il famoso 172.16.x.y, cioè l'indirizzo della porta WAN del mio router, assegnatomi da WiPeX. Ma come fa il SIP Proxy ad avere questa informazione, dato che il NAT di WiPeX dovrebbe aver rimosso ogni riferimento a questo IP sostituendolo con quello pubblico?

Qua sono le magie che fa STUN credo, sistema che non conosco al 100% ma vediamo di capire....

Può essere...

Citazione
Citazione
Se invece non uso la 5060, la risposta inviata dal SIP Server cambia l'header VIA, inserendo come porta quella che io ho usato


la 4444 credo, e fino a qui OK

Beh, la 4444 perchè ho usato quella. Ma potevo usare una qualsiasi altra porta, solo la 5060 non va...
Nello specifico, ho provato (con successo) anche le porte 4050 e 1025!

Citazione
Citazione
Altra cosa: lo STUN sostituisce all'IP privato dell'ATA (192.168.x.y) l'IP visto su Internet (correttamente, il famoso 89.202.179.222), ma non effettua alcuna sostituzione della porta. Cioè la porta 4444 privata su cui il mio ATA è in ascolto viene mappata sullo stesso numero di porta pubblica. Ovvero l'indirizzo privato 192.168.x.y:4444 viene mappato da NAT come 89.202.179.222:4444.

E be si, giusto, tu non sai come viene rimappata la porta, lo fa il router di frontiera di wipex, la porta 4444 è quello che serve al server stun per capire chi sei, e sapere la porta con cui esci e usare quella per chiamarti....un po un casino

Non sono tanto d'accordo... Secondo me il router di WiPeX non cambia proprio la porta! Nel senso, STUN serve a far conoscere al mio ATA l'IP e la porta ESTERNI da cui è raggiungibile. E nella scheda "Info" dell'ATA rilevo proprio queste informazioni:

External IP: 89.202.179.222
Mapped SIP Port: 4444

Vale a dire che STUN ha fatto un test, ed ha fatto sapere all'ATA che per raggiungerlo occorre inviare pacchetti alla porta 4444 dell'IP 89.202.179.222, perchè 89.202.179.222:4444 è l'indirizzo visto per l'ATA dallo STUN Server.

Citazione
Citazione
Io pensavo che NAT sostituisse anche la porta, invece mi sono accorto che esistono più tipi di NAT. Quello che dovrebbe utilizzare la WiPeX è un "Restricted Cone NAT", che se ho capito bene permette l'invio di dati da parte di un server Internet verso un client sotto tale NAT su qualsiasi porta di tale client, fermo restando che prima il client abbia fatto una richiesta a quel server.

Il nat, sostituisce ANCHE le porte! Si ma quello che viene usato per mascherare + Utenti dietro un solo IP pubblico DEVONO anche sostituire le porte. Cmq si il "Restricted Cone NAT" funziona cosi, ed è anche il modo + diffuso di implementare il nat.

Anch'io pensavo che il NAT sostituisse anche le porte, ma dopo aver visto 'sto casino con l'ATA, pare proprio che la sostituzione delle porte venga compiuta solo da NAT simmetrici o "Port Restricted Cone".

Citazione
Citazione
Quindi ho pensato che è per questo che la porta non viene sostituta: potendo un server spedire a qualsiasi porta di un client, che senso ha sostituire i numeri di porta? Il server vuole inviare alla 4444 del client sotto NAT, e allora invia alla 4444 dell'IP pubblico, logica ineccepibile. Giusto fin qui?

Infatti non funziona cosi, il server non puo inviarlo alla 4444, ma deve inviarla all porta che è stata dinamicamente rimappata per corrispondere con quella del client.

Esatto. Per questo sono arrivato alla conclusione che porta mappata e porta sorgente sono le stesse, ovvero il NAT non sostituisce le porte, per capirci nè il NAT del mio router, nè il NAT del router WiPeX.

Citazione
in pratica il nat funziona cosi:

Struttura pacchetto TCP/IP
+-------------------------+-------------------+-------------------------------+------------------------+
|Indirizzo IP sorgente|Porta sorgente |Indirizzo IP destinazione |Porta destinazione |
+-------------------------+-------------------+-------------------------------+------------------------+

Esempio di comunicazione con NAT:
Richiesta cliente dentro NAT:

+-------------------------+-------------------+-------------------------------+------------------------+
|       192.168.1.1       |        8549         |         80.50.100.50         |             80              |
+-------------------------+-------------------+-------------------------------+------------------------+

Router Nat modifica il pacchetto :

+-------------------------+-------------------+-------------------------------+------------------------+
|       70.50.15.1         |        8550         |         80.50.100.50         |             80              |
+-------------------------+-------------------+-------------------------------+------------------------+

Come vedi ha sostituito l'ip con quello pubblico, e ha anche modificato la porta sorgente inserendo la prima
porta disponibile.

Invece a me succede questo (perdona la mia non voglia di ricorrere alla grafica...):
il mio ATA effettua la richiesta SIP, che viene incapsulata in un pacchetto IP con questi campi:
indirizzo src: 192.168.1.2:4444
indirizzo dst: sip.server.voip:5060 <-- porta di default per il protocollo SIP

Dopo il transito attraverso il mio router, il pacchetto IP contiene questa informazione:
indirizzo src: 172.16.x.y:4444
indirizzo dst: sempre quello precedente, ovviamente.

Dopo il transito attraverso il router di Unipex, il pacchetto IP contiene questa:
indirizzo src: 89.202.179.222:4444
indirizzo dst: il solito.

In tutti i casi, il pacchetto SIP all'interno del pacchetto IP contiene, nell'header VIA, l'indirizzo pubblico dell'ATA, che sarà utilizzato dal SIP Proxy per inviare la risposta. Esso è:
89.202.179.222:4444.

Ma nel pacchetto spedito dal SIP Proxy in risposta alla mia request, si ha nell'header VIA questo:
172.16.x.y:4444, anche se è strano perchè il SIP Server non dovrebbe avere da nessuna parte questo indirizzo.

Si nota a questo punto che la porta è rimasta invariata durante tutto il tragitto.
Solo se usavo in origine la 5060, c'erano delle modifiche sulla porta (ad esempio, mi forniva nell'header VIA porte
tipo 4704, che se poi usavo manualmente (cioè aggirando STUN) l'ATA funzionava, mentre se non le usavo, l'ATA non ce la faceva, e come ho già detto la cosa non funzionava. 'sta 5060...).

Citazione
Citazione
Ma allora sorge l'altro problema: se non c'è la sostituzione delle porte, e se due ATA fanno una richiesta allo stesso SIP Proxy, dalla stessa porta privata, come fa poi l'ATA a sapere dove inviare le risposte?
Esempio: l'ATA 192.168.0.1:5060, mappato dal router come 172.16.20.20:5060, viene sostituito dal NAT di Unipex come 89.202.179.222:5060. Ma anche l'ATA di un altro utente, mappato dal router come 172.16.20.21:5060, finisce per essere associato al 89.202.179.222:5060. E allora? Se le richieste dei due ATA sono dirette allo stesso server, questo poi spedirà due risposte (una per richiesta), entrambe al 89.202.179.222:5060. E come fa il NAT di Unipex a separare le risposte e mandarle l'una al 172.16.20.20:5060, l'altra al 172.16.20.21:5060?

Infatti non può le porte devono essere rimappate altrimenti non funziona un tubo.....!
Sono d'accordo con te! Ma perchè allora mi funziona! Vuoi che è solo legato al fatto che sono l'unico ad utilizzare quella porta? Mentre la 5060 era usata da più persone, e questo incasinava la cosa?

Citazione
Citazione
P.S.: Andrea, ora ho capito perchè non sopporti il NAT...

Be si, da + problemi che altro , poi come avrai capito dentro Nat non puoi avere servizi server quali:
HTTP---->80
Posta----> 25,110

... a meno di non abilitare il port forwarding, il port triggering, o la DMZ sul router...
Ciao e grazie!

€n20_C#

  • Newbie
  • *
  • Post: 41
  • La Morte dell'Arte...
    • Mostra profilo
Re: Problemi di NAT
« Risposta #5 il: 22 Gennaio 2008, 20:18:43 »
Ciao a tutti.

Dunque, dopo aver letto il post di Andrea, mi sono messo a pensare, ed ho tirato fuori la teoria che vi espongo qui. E' solo una mia teoria, se avete voglia leggetevela e sappiatemi dire che ne pensate. Io attualmente non ho più tempo (ne ho già speso troppo vicino a questa storia), quindi la verifica di questa teoria la farò più in là.

Prima di tutto, preciso che la telefonia VoIP è basata principalmente su due flussi di informazioni: quello che gestisce lo stabilimento di una connessione tra i due utenti che si chiamano (gestito dal protocollo SIP), e quello che regola il trasporto della voce (protocollo RTP). Giacchè il funzionare / non funzionare del mio ATA è determinato principalmente dalla porta impostata come ascolto / generazione di pacchetti SIP, ne deduco che il problema sta in questo protocollo, mentre l'RTP funziona bene.

La prima fase della telefonia VoIP consiste nella registrazione della linea su un server SIP. Per compiere questo scopo, il mio ATA genera un pacchetto SIP di registrazione, contenente tra le altre cose un header VIA. In tale header, l'ATA deve inserire l'indirizzo (IP:porta) a cui è raggiungibile, ovvero a cui il SIP Proxy deve inviare la risposta alla registrazione. Servendosi dello STUN Server, l'ATA riesce ad ottenere l'informazione su quale sia il suo indirizzo pubblico, ed inserisce questo indirizzo all'interno dell'header VIA.

Supponiamo che lo STUN Server non sia in grado di adempiere completamente al suo compito, ovvero sia in grado di fornire all'ATA l'indirizzo IP pubblico, ma non la porta pubblica.

Caso A (quello che non funziona):
l'indirizzo privato dell'ATA 192.168.1.2:5060 viene sostituito dall'indirizzo pubblico 89.202.179.222:5060.
Caso B (quello che funziona):
l'indirizzo privato dell'ATA 192.168.1.2:4444 viene sostituito dall'indirizzo pubblico 89.202.179.222:4444.

Il pacchetto SIP di registrazione viene a questo punto spedito al mio router. Esso cambia l'indirizzo IP sorgente nel pacchetto IP che incapsula la richiesta SIP:
192.168.1.2 => 172.16.x.y

Quanto alla porta, supponiamo che il mio router la mappi sullo stesso numero di porta SE QUESTO NON E' ANCORA STATO ASSEGNATO AD ALTRE RICHIESTE. Nel mio caso è così, quindi nel pacchetto IP si hanno queste sorgenti:
Caso A: 172.16.x.y:5060
Caso B: 172.16.x.y:4444

Il pacchetto giunge a questo punto al router di Unipex, che supponiamo adotti la stessa politica del mio router circa la mappatura della porta. Il caso B risulta "avantaggiato", perchè la porta 4444 difficilmente è utilizzata da altre richieste di altri utenti. Il caso A invece risulta "svantaggiato", perchè l'utente medio che si trova a configurare un ATA come il mio tende a lasciare sull'ATA la porta privata di default, ovvero la 5060. Il che significa che è possibile che la porta pubblica 5060 sia già stata assegnata a qualcun altro. Il pacchetto IP uscente dal router di Unipex avrà allora questi valori di indirizzo sorgente:
Caso A: 89.202.179.222:4704
Caso B: 89.202.179.222:4444
ove si è supposto che la 4704 sia la porta pubblica assegnata dal router di Unipex alla richiesta partita dalla porta privata 5060 del mio ATA.

La richiesta SIP giunge al SIP Proxy, che se la vede arrivare da questi indirizzi:
Caso A: 89.202.179.222:4704
Caso B: 89.202.179.222:4444
(ovviamente gli stessi di prima). Tuttavia, nel caso A c'è una discrepanza tra questo indirizzo pubblico, e quello che è stato inserito inizialmente dall'ATA (tramite STUN) nell'header VIA della richiesta SIP.
Il server SIP consente la registrazione (se le credenziali sono esatte), e genera la risposta "AUTORIZZATO" per l'ATA. Supponiamo che il SIP Proxy sia stato impostato per inviare la risposta alla richiesta, in caso di discrepanza, non (come si dovrebbe fare normalmente) all'indirizzo letto nell'header VIA della richiesta, bensì all'indirizzo da cui la richiesta è arrivata (questo è possibile, lo prevede il protocollo SIP). Supponiamo anche (altra cosa prevista dal protocollo) che il SIP Proxy sia stato impostato in modo tale da segnalare all'ATA la discrepanza negli indirizzi in questione.

Caso A:
il SIP Server inserisce, nell'header VIA della risposta, questo parametro: rport=4704, ad indicare che si è visto arrivare la richiesta dalla porta 4704, quando nell'header VIA l'ATA aveva specificato come porta pubblica la 5060.
La risposta viene inviata all'indirizzo 89.202.179.222:4704.

Caso B:
non c'è alcuna discrepanza negli indirizzi, il SIP Server spedisce la risposta a 89.202.179.222:4444.

In entrambi i casi, il router di Unipex sarà in grado di indirizzare il pacchetto al mio IP 172.16.x.y:5060/4444, dal momento che l'associazione nelle tabelle di NAT è presente per opera della richiesta di registrazione partita dall'ATA.

Il pacchetto raggiunge infine il mio router, che di nuovo sarà (in entrambi i casi) in grado di spedirlo all'ATA, che a questo punto si considera registrato. Il SIP Proxy sa (essendo l'ATA registrato, con ad esempio il numero di telefono 1234) che per raggiungere il numero 1234, deve spedire richieste agli indirizzi:
Caso A: 89.202.179.222:4704 (perchè così è stato impostato in caso di discrepanze)
Caso B: 89.202.179.222:4444 (nessuna discrepanza)

Il mio problema si manifestava solo ed esclusivamente nelle chiamate in entrata.
Supponiamo quindi che un fisso chiama il numero 1234. Una tabella reindirizza questo numero al gateway VoIP più vicino, ovvero il chiamante viene messo in contatto con questo gateway. Il gateway in questione si darà da fare per cercare presso chi è registrato il numero 1234, lancerà apposite richieste ai vari servers SIP, e una tra esse raggiungerà il mio SIP Proxy. Esso si accorge che il numero richiesto dal fisso è registrato presso di se, e sa come raggiungerlo. Pertanto inoltra la richiesta all'indirizzo:
Caso A: 89.202.179.222:4704
Caso B: 89.202.179.222:4444

La richiesta raggiunge il mio ATA (perchè le tabelle di NAT hanno ancora il "percorso" aperto grazie a dei messaggi di Keep-Alive, inviati appositamente e periodicamente dall'ATA verso il SIP Proxy). Il mio telefono squilla.
Io alzo la cornetta. L'ATA si accorge che ho acconsentito alla chiamata, quindi spedisce un messaggio di conferma al mio SIP Proxy (stesso discorso visto per la spedizione della richiesta di registrazione), e dal canto suo il SIP Proxy trasmetterà la conferma al gateway VoIP da cui è partita la chiamata.

A questo punto, il SIP Proxy si chiama fuori, dal momento che se la devono sbrigare il mio ATA, ed il gateway VoIP. Essi devono sapere come raggiungersi, e per poter fare ciò il SIP Proxy ha fornito all'ATA l'indirizzo del gateway (durante la segnalazione dal proxy all'ATA che qualcuno mi stava chiamando), ed ha fornito al gateway l'indirizzo (pubblico) dell'ATA (durante l'invio dal proxy al gateway della conferma che il numero 1234 ha accettato la chiamata). Ma quale indirizzo viene spedito al gateway? Supponiamo che il SIP Proxy fornisca l'indirizzo che trova nella mia conferma, inviata dopo il sollevamento della cornetta:
Caso A: 89.202.179.222:5060 (perchè STUN non ha mai fatto bene il suo lavoro)
Caso B: 89.202.179.222:4444 (neanche qui STUN ha fatto il suo lavoro, ma la porta è stata rimappata sullo stesso numero)

Supponiamo infine che sia il chiamante a dover cominciare la conversazione SIP (mi pare lo faccia realmente, con un messaggio di Acknowledgement). I pacchetti SIP dovrebbero a questo punto servire per negoziare il codec, le porte UDP per il trasporto della voce, ... . Il gateway deve spedire i pacchetti SIP al mio ATA, e lo farà a questi indirizzi:
Caso A: 89.202.179.222:5060
Caso B: 89.202.179.222:4444
Ma nel caso A l'indirizzo è errato, dal momento che il router di Unipex non detiene la corrispondenza.
Quindi nel caso A la comunicazione SIP tra gateway e ATA è compromessa, pertanto non si avrà neanche il corrispondente transito di RTP, nonostante io abbia sentito il telefono squillare.
Il caso B invece funziona, ammesso però che comunque sia il mio ATA (che è sotto NAT) ad inviare preventivamente un messaggio al gateway (che per esempio viene ignorato da questo), giusto per far sì che il router di Unipex possa ricevere (sugli indirizzi 89.202.179.222:4704 del caso A e 89.202.179.222:4444del caso B) pacchetti dal gateway, che altrimenti sarebbero scartati.

Nel caso fossi stato io a chiamare, invece, avrei dovuto lanciare io l'ACK al gateway, e sempre nell'ipotesi che il gateway inviasse poi risposte all'indirizzo da cui si vede arrivare le richieste, il dialogo sarebbe stato correttamente stabilito.

Sono solo ipotesi, ma alcune cose mi sono state confermate dai pacchetti SIP che ho avuto modo di esaminare, in entrata ed in uscita dall'ATA, come ad esempio l'inserimento da parte del SIP Proxy del parametro rport.

Concorda con questa teoria anche il fatto che, nel caso A, tutto funzionava se bypassavo ciò che STUN trovava, ovvero inserendo nel parametro "Mapped SIP Port" il valore statico 4704. Questo confermerebbe che la porta viene effettivamente mappata dal router di Unipex, ma STUN non funziona completamente.

Se avete tempo di darci una letta...

Ciao ciao.

P.S.: se la teoria fosse valida, non servirebbe fare uso di un IP pubblico (come vi ripeto, io sono sotto NAT ed attualmente non ho problemi di alcun tipo, se non un po' di eco ogni tanto). Basterebbe far sì che STUN funzioni (cosa impossibile da compiere dalla mia parte), o basterebbe far sì che l'ATA bypassi lo STUN, inserendo nell'header VIA non l'indirizzo fornito da STUN, bensì la coppia "received:rport" fornita dal SIP Proxy all'ATA durante la registrazione di quest'ultimo. Questo può essere fatto.

Grazie ancora!
« Ultima modifica: 22 Gennaio 2008, 20:23:25 da €n20_C# »

wipex

  • Provider
  • Jr. Member
  • ****
  • Post: 79
    • Mostra profilo
Re: Problemi di NAT
« Risposta #6 il: 23 Gennaio 2008, 14:36:37 »
Citazione
Citazione
Citazione
Allora, riepilogo la mia situazione: ho messo WiPeX 1Mbps (seppure mi pare di vedere che la banda è scesa nel periodo festivo, siamo sui 200-300kbps per download ed upload)
Vero. Stiamo rimediando

Mi fa molto piacere! Comunque si, solo nel periodo festivo. Per il resto mi pare ok!

Ora non dovrebbe più capitare, anche nei momenti di maggior congestione/utilizzo contemporaneo

Citazione
Citazione
Citazione
Ho fatto un "abbonamento" VoIP con Eutelia
Abbiamo visto/ci hanno riferito che ha un po' di problemi. Hai provato con mc-link?

... No, di cosa si tratta? Di un altro provider? Comunque non ho avuto alcun problema con Eutelia, credo che i miei problemi siano dovuti alla configurazione della rete wipex.
Si e sembra essere nettamente migliore, almeno per semplicità di configurazione e funzionamento al primo tentativo!

Citazione
Citazione
Citazione
<cut>
E come fa il NAT di Unipex a separare le risposte e mandarle l'una al 172.16.20.20:5060, l'altra al 172.16.20.21:5060?

Non lo fa. Per fare quello che vuoi è necessario un ip pubblico.

Ah, scusate ma a questo punto sono molto preoccupato.
Voi dite che serve un IP pubblico, mi era arrivata anche una vostra mail che diceva che, dopo alcune prove con certi providers VoIP, avevate constatato che serviva l'IP pubblico.
Il fatto è che io ho sempre inteso la mail come "potrebbe servire un IP pubblico, in base alle scelte compiute da ciascun provider VoIP". Quindi ho sempre ignorato la cosa, perchè dopo aver risolto il mio problema iniziale, riesco a telefonare e ricevere chiamate senza alcun IP pubblico, con Eutelia.

Allora, non vi nascondo la mia preoccupazione... In pratica volete dirmi che sono l'unico che sta utilizzando il VoIP senza IP pubblico? Se è così, non è che adesso che lo sapete, di punto in bianco cercate il come mai a me funziona, e mi piantate la cosa costringendomi a mettere un IP pubblico?
Vi prego non fatelo...
<-cut preoccupazioni->

L'unico non credo, visto che gli utenti non ci dicono perché voglio IP pubblico e se fanno voip e con chi. Sappiamo per certo che eutelia ha problemi (ma non sempre?) senza ip pubblico.

In merito alla possibile causa dei non funzionamenti, al massimo potremmo analizzare il problema, ma non modificare alcuna configurazione. Lo confermo!

€n20_C#

  • Newbie
  • *
  • Post: 41
  • La Morte dell'Arte...
    • Mostra profilo
Re: Problemi di NAT
« Risposta #7 il: 23 Gennaio 2008, 15:29:37 »
Citazione
Citazione
Citazione
Allora, riepilogo la mia situazione: ho messo WiPeX 1Mbps (seppure mi pare di vedere che la banda è scesa nel periodo festivo, siamo sui 200-300kbps per download ed upload)
Vero. Stiamo rimediando
Mi fa molto piacere! Comunque si, solo nel periodo festivo. Per il resto mi pare ok!
Ora non dovrebbe più capitare, anche nei momenti di maggior congestione/utilizzo contemporaneo

Mi fa molto piacere che vi diate da fare!
Quanto a mc-link, grazie per la segnalazione. Appena posso ci darò un'occhiata.

Citazione
Sappiamo per certo che eutelia ha problemi (ma non sempre?) senza ip pubblico.
Non so cosa dirvi... Non nego di non aver avuto problemi, questo sicuramente.
Però alla fine sono riuscito a far funzionare tutto. A parte quella questione che ho esposto sopra (in breve, se la mia teoria fosse giusta, vorrebbe dire che la cosa funziona finchè l'ATA rimane collegato alla rete. Al primo temporale estivo che mi obbligherà a staccarlo per sicurezza, i routers ovviamente chiuderanno l'associazione tra indirizzo pubblico dell'ATA ed indirizzo privato, e quando riattacco l'ATA un'altra associazione dovrà essere creata. Che però, se STUN ha dei problemi come dicevo sopra, non è detto funzioni. Avendo capito il meccanismo, posso tornare a farlo funzionare. Ma sarebbe una seccatura perchè alla peggio dovrei analizzare i pacchetti SIP per leggere rport ogni volta che riconnetto l'ATA alla rete...).

Ad ogni modo ho ancora alcune prove da fare, adesso non ho tempo e mi prometto di farle appena posso.
Se funzionano, posso in caso postare la configurazione che ho adottato dell'ATA, per utenti un po' meno esperti di me (ripeto, di queste cose io non so nulla anche se forse dai posts che metto sembrerebbe di no!).

Citazione
In merito alla possibile causa dei non funzionamenti, al massimo potremmo analizzare il problema, ma non modificare alcuna configurazione. Lo confermo!

Grazie, questo mi tranquillizza molto  :)
Volevo in ogni caso farvi notare che le mie prove non fanno nulla di illecito, dal punto di vista della configurazione della vostra rete. Nel senso, prima mi documento sulla correttezza nel fare una cosa, e poi la faccio. ;)

Grazie per le vostre risposte, a risentirci a presto!