Nell'ambito delle reti informatiche, il network address translation (abbreviato in NAT e traducibile in italiano con “traduzione degli indirizzi di rete”) è un meccanismo che permette di modificare l'indirizzo IP dei pacchetti in transito attraverso apparati di rete - come router o firewall - all'interno di una comunicazione in corso tra due o più nodi della rete.
Il principio del network address translation
Il meccanismo del NAT è diventato fondamentale nel momento in cui gli indirizzi IP del protocollo IPv4 hanno cominciato a scarseggiare. L'aumento esponenziale dei dispositivi connessi alla Rete ha fatto sì che gli indirizzi disponibili in questo spazio di rete (4 miliardi e 300 milioni circa) si esaurissero in fretta. Il NAT è stato quindi utilizzato per poter nascondere dietro un unico indirizzo pubblico decine e decine di indirizzi privati (e quindi altrettanti device). Nonostante l'introduzione del protocollo IPv6, questa tattica di “mascheramento” degli indirizzi privati è molto utilizzata sia per semplice comodità sia perché capace di garantire un certo numero di vantaggi.
Il NAT utilizza un gateway con almeno un'interfaccia connessa alla rete interna e almeno un'interfaccia di rete connessa al web (e quindi all’esterno della LAN). Grazie a questo “portale”, tutti i dispositivi connessi alla LAN potranno accedere a Internet utilizzando, e quindi “consumando”, un singolo indirizzo IP pubblico: quello del gateway stesso. In questo caso il gateway si occupa di fare una traslazione - o traduzione - degli indirizzi IP dei pacchetti in transito attraverso il router stesso: quando un terminale della rete interna effettua una richiesta verso Internet, l'indirizzo IP di partenza risultante sarà quello, pubblico, del gateway stesso e non quello privato del dispositivo che effettua la richiesta; nel caso di pacchetti in entrata, invece, il gateway si occupa di reindirizzare il traffico verso i dispositivi di destinazione appartenenti alla rete modificando l’IP di destinazione di conseguenza.
Il NAT in pratica
Nella pratica, il network address translation si riduce a tre casi principali: un dispositivo della rete locale che si connette al web; un dispositivo esterno alla LAN che cerca di comunicare con un dispositivo interno alla LAN; due dispositivi della LAN che comunicano tra di loro.
Da LAN ad Internet. In questo caso il NAT si risolve nel “mascheramento” degli indirizzi dei pacchetti originati dalla LAN (tramite traslazione statica o dinamica a seconda del numero di dispositivi appartenenti alla rete locale, come spiegato in seguito) in modo che l'unico indirizzo ad apparire in Internet sia l'IP pubblico assegnato dall'ISP (acronimo di Internet service provider, fornitore dei servizi Internet) al router.
Da Internet alla LAN. Con le tecniche di port forwarding e port triggering si permette a dispositivi esterni alla LAN (siano essi dei server appartenenti alla Rete mondiale o dispositivi di altre LAN) di comunicare con alcuni nodi della rete locale. Se, ad esempio, un agente di commercio deve connettersi al server del magazzino o mandare in stampa un ordinativo con la stampante di rete dell'ufficio, basterà nattare il traffico in arrivo dall'esterno verso le porte di comunicazione utilizzate in maniera esclusiva dal server o dalla stampante.
Comunicazione interna alla LAN. In quest'ultimo caso non ci sono particolari difficoltà comunicative tra i vari nodi. Così come accade nella navigazione sul web, i due nodi non avranno bisogno né di traslare il proprio indirizzo, né di utilizzare particolari tecniche per superare ostacoli o barriere opposte dal gateway. I dispositivi potranno comunicare liberamente, scambiando pacchetti dati in maniera diretta.
La rete aziendale su Internet
Un esempio classico della prima casistica elencata si risolve nell'esempio della rete locale domestica o di un ufficio di piccole-medie dimensioni che vuole connettersi al web. In questo caso uno dei computer connessi alla LAN aziendale deve inviare una richiesta al gateway del router o del firewall per poter avere accesso a Internet. Il gateway agisce quindi da "portale" verso l'esterno, creando un ponte comunicativo tra la rete privata e Internet. In questo processo l'indirizzo IP privato del computer in locale viene tradotto nell'IP pubblico, in modo che le richieste di connessione inviate ai server sembrino essere originate da un unico indirizzo, e cioè dal gateway stesso.
La traduzione degli indirizzi (la addess translation descritta sopra) può avvenire in due modalità differenti. Una traduzione 1 a 1 - detta traslazione statica -, nella quale ad un singolo indirizzo IP privato (ad esempio 192.168.0.1) viene collegato un singolo indirizzo pubblico (ad esempio 79.85.254.200); oppure una traduzione 1 a molti - detta traslazione dinamica -, dove un singolo indirizzo IP pubblico è condiviso tra più indirizzi IP appartenenti alla rete locale. Nel primo caso il dispositivo di rete è collegato in maniera trasparente al web (il suo unico indirizzo IP privato è associato direttamente e univocamente ad un preciso indirizzo pubblico ed è pertanto facilmente identificabile e quindi direttamente contattabile anche da un nodo esterno alla rete locale) ma non risolve il problema della penuria di indirizzi IP pubblici. Nel caso della traslazione dinamica è molto utilizzata la tecnica della traslazione della porta (abbreviata in PAT, port address translation), che consiste nell’attribuire una porta sorgente di rete differente ad ogni singolo canale di scambio dati instaurato tra l’interno e l’esterno della LAN.
Questa metodologia di lavoro offre all'utente un ulteriore livello di sicurezza. Gli indirizzi IP della rete privata non compariranno mai tanto per i pacchetti in uscita, quanto per i pacchetti in entrata (essendo questi sempre mascherati, ovvero modificati durante il passaggio attraverso il gateway): per il resto dalla rete tutte le richieste sembreranno pervenire dall'indirizzo IP del gateway, nascondendo di fatto il nodo della rete locale che effettivamente ha fatto richiesta di quella certa informazione. Un osservatore esterno, quindi, non sarà mai in grado di determinare quale dispositivo della LAN abbia effettuato la richiesta, né quanti siano i dispositivi che compongono la LAN. A meno di impostazioni di reindirizzamento particolari, un utente esterno alla LAN non riuscirà ad accedere al singolo dispositivo di rete interno ma sarà costretto a “fermarsi” allo sbarramento opposto dal router e, più in generale, dal gateway di quella particolare rete locale.
Dal web alla rete locale
Il percorso appena descritto può avvenire anche al contrario: un PC connesso alla Rete esterna che tenta di accedere ad una risorsa della LAN (una stampante di rete o un server). Anche in questo caso la gestione del processo è affidata al gateway, che si occupa di analizzare le richieste in ingresso e dirigerle verso la risorsa cercata. Per fare in modo che ciò avvenga, il traffico generato da questa richiesta deve essere indirizzato verso una porta di comunicazione specifica del router, in modo che raggiunga la risorsa di rete associata a quella porta senza alcun tipo di filtro che ne rallenti lo scambio di dati o renda difficoltosa la comunicazione.
Questa operazione è detta di port forwarding e permette di stabilire che tutti i dati transitanti attraverso una porta del gateway (ad esempio la porta 80, utilizzata dai browser per la navigazione nel web) siano destinati al nodo ben preciso facente parte della rete locale (individuato, ad esempio, dall'IP 192.168.0.192). Per mettere in atto questa tecnica è dunque necessario agire sul router, stabilendo una regola interna di reindirizzamento. Accedendo alle impostazioni del dispositivo e successivamente alla sezione NAT o port forwarding, si dovrà stabilire "manualmente" il percorso da seguire, indicando quale sia l'IP privato verso il quale indirizzare tutto il traffico che passa da una determinata porta di rete del router.
Questo tipo di comunicazione, però, espone la LANa possibili attacchi da parte di hacker e altri "pirati della rete". Una volta stabilita la regola, infatti, la porta resta aperta anche se non è in corso alcuna comunicazione telematica. Per ovviare a questa problematica si preferisce utilizzare il port triggering, una sorta di port forwarding condizionale che attiva e apre la porta solo in caso di comunicazione attiva. Un altro metodo, utilizzato soprattutto da società di dimensioni medio-grandi, consiste nel creare una connessione VPN all'interno della quale i due dispositivi possano scambiare dati e informazioni al riparo da occhi indiscreti. Una rete VPN crea una sorta di tunnel all'interno della Web dove far transitare dati e informazioni in completa sicurezza.