Il NAT (Network Address Translation) è una tecnica ampiamente utilizzata da provider di servizi internet (ISP) e organizzazioni per consentire a più dispositivi di condividere un unico indirizzo IP pubblico.
Grazie al NAT, i dispositivi connessi a una rete privata, come i PC di casa o i computer in ufficio, possono comunicare con il mondo esterno senza che ciascuno di essi abbia bisogno di un proprio indirizzo IP univoco pubblico.
Gli indirizzi IP pubblici sono una risorsa limitata. Con miliardi di dispositivi connessi alla rete globale, sarebbe impossibile assegnare un IP pubblico univoco a ognuno di essi. Il NAT risolve questo problema: l’ISP assegna un solo indirizzo IP pubblico al router di casa o aziendale, e tutti i dispositivi interni si “nascondono” dietro di esso.
Come funziona nella pratica
Immaginiamo di avere tre computer collegati alla tua rete domestica
- 192.168.1.11
- 192.168.1.12
- 192.168.1.13
Questi sono indirizzi IP privati, visibili solo all’interno della rete locale. Il router, invece, possiede un indirizzo IP pubblico assegnato dall’ISP, ad esempio 200.100.50.10, attraverso cui comunica con Internet.
Quando il computer 192.168.1.11 vuole contattare un server remoto, ad esempio 184.25.54.148, questo è quello che accade
- pacchetto in uscita: il computer invia un pacchetto con Source IP 192.168.1.11:5733 e Destination IP 184.25.54.148:443
- il router interviene: sostituendo l’indirizzo IP privato con il proprio IP pubblico, traducendo (NAT) il pacchetto con Source IP 200.100.50.10:5733 e Destination IP 184.25.54.148:443
- il server remoto risponde: la risposta torna al router 200.100.50.10 che consulta la propria tabella di NAT per capire a quale dispositivo interno inoltrarla
- pacchetto in entrata: il router ritraduce e consegna il pacchetto al computer originale 192,168.1.11:5733
Tutto questo è reso possibile dalla tabella NAT, una struttura che il router mantiene in memoria per tenere traccia delle connessioni attive
| Inside Private IP:Port | Inside Public IP:Port | Outside Public IP:Port |
|---|---|---|
| 192.168.1.11:5733 | 200.100.50.10:5733 | 184.25.54.148:443 |
| 192.168.1.11:6812 | 200.100.50.10:6812 | 184.25.54.148:443 |
| 192.168.1.11:7888 | 200.100.50.10:7888 | 184.25.54.148:443 |
Come si evince dalla tabella, tre dispositivi diversi stanno comunicando con lo stesso server esterno, tutti attraverso lo stesso IP pubblico 200.100.10.1, ma su porte diverse. È proprio la porta che permette al router di distinguere le sessioni e instradare correttamente i pacchetti di ritorno.
Tipi di NAT
Esistono diverse varianti del NAT, ognuna con caratteristiche specifiche
- Static NAT: mappa un indirizzo privato a uno pubblico in modo fisso (1:1). Usato spesso per server interni che devono essere raggiungibili dall’esterno
- Dynamic NAT: assegna dinamicamente un IP pubblico da un pool disponibile a ogni connessione privata
- PAT (Port Address Translation): è la forma più comune, molti IP privati vengono mappati su un unico IP pubblico usando porte differenti
Vantaggi e limiti del NAT
Vantaggi
- Risparmio di indirizzi IP pubblici, fondamentale per lo standard IPv4
- Sicurezza implicita, i dispositivi interni non sono direttamente raggiungibili dall’esterno
- Flessibilità, la rete interna può essere riorganizzata senza impatto sull’IP pubblico
Limiti
- Latenza aggiuntiva, ogni pacchetto richiede una traduzione
- Difficoltà con alcuni protocolli, applicazioni P2P, VoIP e gaming online possono avere problemi di connettività
- Non è un firewall, il NAT offre una protezione passiva, non sostituisce una soluzione di sicurezza dedicata
NAT e il futuro con IPv6
Con l’adozione crescente di IPv6, che offre un numero di indirizzi IP immensamente più grande rispetto a IPv4, il NAT diventerà tecnicamente superfluo e ogni dispositivo potrà avere il proprio IP pubblico univoco. Tuttavia, data l’enorme diffusione dell’infrastruttura IPv4 esistente, il NAT rimarrà rilevante ancora per molto tempo.
