Network address translation

tecnica utilizzata nelle reti telematiche

Nel campo delle reti telematiche, il network address translation o NAT, ovvero traduzione degli indirizzi di rete, è una tecnica che consiste nel modificare gli indirizzi IP dei pacchetti in transito su un sistema. La modifica automatica degli indirizzi può essere impiegata per realizzare un sistema che permette a più computer di utilizzare un unico indirizzo pubblico per effettuare la connessione ad Internet.

Si può distinguere tra source NAT (SNAT) e destination NAT (DNAT), a seconda che vengano modificati gli indirizzi della sorgente o gli indirizzi della destinazione dei pacchetti. Il NAT è spesso implementato dai router e dai firewall.

IP masquerading

 
Un esempio di comunicazione mascherata.

Il source NAT può essere utilizzato per realizzare una comunicazione tra due host, in cui uno dei due host utilizza l'indirizzo IP di un terzo host, che quindi funge da router, attraverso il quale si realizza un canale di comunicazione.

Ad esempio in una connessione tra due host A e B, A invia i dati con il proprio indirizzo sorgente a un terzo host, R, il quale modifica l'indirizzo sorgente inserendo il proprio indirizzo e spedisce i dati a B. Quando B vuole rispondere ad A, invierà i dati a R, in quanto B ha ricevuto dei dati che avevano come sorgente l'indirizzo di R e ignora completamente l'esistenza di A. R riconosce che i dati sono in realtà destinati ad A, quindi impostata l'indirizzo di A come destinazione e inoltra il pacchetto.

Se al posto di A abbiamo una rete locale e al posto di B la rete pubblica Internet, è facile comprendere come sia possibile connettere gli host di una rete privata ad Internet usando un solo indirizzo pubblico, nell'esempio di sopra quest'unico indirizzo pubblico sarà l'indirizzo di R. Questa tecnica è definita IP masquerading, ovvero mascheramento dell'IP. Per permettere a un router di smistare il traffico dei dati correttamente, si utilizza la tecnica denominata Port Address translation (PAT) o IP Overloading, che consiste nell'associare a ciascuna connessione proveniente dalla rete interna una porta TCP dell'indirizzo pubblico.

Questa tecnica viene ampiamente usata per risparmiare indirizzi IP pubblici e per "nascondere" dall'esterno una rete privata.

Double NAT

Talvolta è necessario far comunicare tra loro due LAN connesse ad Internet tramite IP Masquerading (ad esempio, due sedi di una stessa azienda). In questi casi viene generalmente utilizzata una VPN (Virtual Private Network) tra i due router che connettono le reti ad Internet, indirizzando sulla VPN il traffico tra le due LAN.

In alcuni casi però capita che le LAN utilizzino gli stessi range di indirizzi IP, quindi non è possibile collegarle direttamente, ma sarebbe necessario rinumerare una delle due reti, ovvero riassegnare indirizzi IP in una diversa sottorete a tutti gli host. Questa operazione è normalmente faticosa, comporta disservizi e spese, per cui spesso si preferisce ricorrere a configurazioni di "double NAT", che nascondono reciprocamente le due reti, permettendo loro di comunicare come se non usassero indirizzi IP sovrapposti.

Possibili usi del destination NAT

  • Bilanciamento del carico di lavoro: tramite il destination NAT si può realizzare un sistema in cui quando una connessione è destinata a un server essa in realtà viene reindirizzata a un altro server scelto a caso tra un insieme di server che si hanno a disposizione. Questo permette di distribuire il carico di lavoro tra diversi server, migliorando così le prestazioni del servizio di rete offerto dal sistema.
  • Gestione dei fallimenti: il destination NAT può essere usato per realizzare un sistema ad alta disponibilità. Un sistema di questo tipo deve essere sempre in grado di offrire il servizio di cui è responsabile. Tutti i server sono soggetti a possibili fallimenti. Se si fa uso di un router con destination NAT, il router può rilevare il fallimento del server principale e reindirizzare le connessioni a un server secondario, mantendo così il servizio attivo.
  • Trasparenza del servizio di proxy: il destination NAT può reindirizzare le connessioni HTTP a un server speciale, chiamato proxy, che ha a disposizione una memoria temporanea in cui memorizza il contenuto di siti web visitati in precedenza. Se la connessione richiesta da un client è verso un indirizzo di cui il proxy ha già a disposizione il contenuto, esso invierà al client i dati richiesta senza la necessità di effettuare una vera connessione a Internet. Questa tecnica è usata dagli Internet Service Provider per ridurre l'uso della banda di trasmissione senza richiedere ai client di configurare il loro browser per il supporto del proxy.

Voci correlate

  • Port forwarding: un tipo particolare di DNAT.
  • iptables: un programma per realizzate il NAT sui sistemi Linux.
  • STUN : acronimo di Simple Traversal of User Datagram Protocol (UDP) Through Network
  Address Translators (NATs). STUN è un protocollo che permette a particolari applicazioni di scoprire la presenza ed i tipi di NAT e firewall presenti tra loro e la rete pubblica. STUN permette a quari progtrammi di scoprire gli indirizzi pubblici IP allocati tramite NAT. STUN opera con molti NAT presistenti e non richiede particolari comportamenti da essi. Come risltato, STUN assicura ad una grande varietà di applicazioni IP (ad esempio, i telefoni VoIP) di lavorare attraverso le varie strutture NAT presistenti.

Collegamenti esterni