Entrambi "cambiano l'indirizzo IP", ma su livelli del tutto diversi e con scopi diversi. Il NAT è una tecnica di routing, il proxy invece è un server intermediario. Capire la differenza spiega anche perché il router di casa tua non è un proxy.
Differenza di livello e di metodo
Il NAT modifica gli header dei pacchetti e non esamina affatto il contenuto. Il proxy invece termina la connessione e ne apre una nuova per proprio conto.
Differenza fondamentale: terminazione della connessione
È la distinzione più importante tra le due tecniche:
Con il NAT il pacchetto resta lo stesso pacchetto; cambiano solo i campi degli indirizzi. Con il proxy invece esistono due connessioni distinte e il proxy copia i dati tra le due.
Il NAT di casa tua
Il tuo router di casa fa NAT: traduce gli indirizzi privati dei dispositivi interni in un unico IP pubblico. Non è un proxy perché:
- Non devi effettuare alcuna configurazione sui tuoi dispositivi.
- Il router non termina la connessione, si limita a inoltrare i pacchetti.
- Non legge, non filtra e non mette in cache il contenuto.
- Non richiede autenticazione.
Il CGNAT, il suo equivalente su scala operatore, lo in un articolo a parte abbiamo trattato — la forza dei mobile proxy deriva esattamente da lì.
Differenza di visibilità
Anche se il risultato sembra simile, il meccanismo è diverso. Il proxy può rivelare il client reale aggiungendo header; il NAT non può farlo perché non tocca affatto il livello applicativo.
Conseguenze pratiche
| Esigenza | Basta il NAT? | Serve un proxy? |
|---|---|---|
| Far uscire più dispositivi da un unico IP | Sì | No |
| Uscire da un altro paese | No | Sì |
| Filtraggio dei contenuti | No | Sì |
| Uscite diverse per applicazione | No | Sì |
| Accesso con autenticazione | No | Sì |
| Tenere un registro degli accessi | Limitato | Sì |
Se dici "voglio nascondere il mio indirizzo IP", il NAT lo fa già, ma solo all'interno della tua rete locale. Se dici "voglio uscire da un altro paese o con un'altra identità", allora serve un proxy.
Port forwarding e connessioni in entrata
Un limite noto del NAT è l'impossibilità di accettare connessioni provenienti dall'esterno. Per superarlo si ricorre al port forwarding. Se sei dietro CGNAT non puoi fare port forwarding, perché l'IP pubblico non è sotto il tuo controllo.
Con il proxy la situazione è diversa: il forward proxy serve già per le connessioni in uscita; accettare connessioni in entrata è compito del reverse proxy. La distinzione nel nostro articolo su forward e reverse proxy del nostro blog.
Riepilogo
Il NAT è una tecnica di routing che riscrive gli header dei pacchetti a livello di rete; il proxy invece è un server intermediario che termina la connessione e ne apre una nuova per proprio conto. Il NAT non richiede alcuna configurazione ed è ignaro del contenuto; il proxy può invece fare autenticazione, filtraggio, caching e scelta dell'uscita geografica. Il router di casa tua fa NAT, non proxy — per questo, quando vuoi uscire da un altro paese, serve un proxy. Per le opzioni residenziale e ISP proxy potete consultare le nostre pagine.