Network Address Translation

Il NAT, Network Address Translation, è un software eseguito presso il router di frontiera di una LAN (il router al “confine” tra questa LAN e Internet), che effettua la traduzione tra gli indirizzi IP privati e pubblici.

Ogni host della LAN ha un indirizzo IP privato, che non è visibile dall’esterno della LAN, e non può quindi essere utilizzato per comunicare su Internet. Allora, grazie al NAT, il router di frontiera mette a disposizione uno o più indirizzi pubblici, che vengono temporaneamente associati in modo dinamico agli host della LAN quando questi devono scambiare messaggi con host esterni. L’associazione degli indirizzi pubblici agli host è mantenuta dal NAT in una tabella di traduzione.

Esempio

Funzionalità del NAT

La traduzione degl indirizzi eseguita dal software NAT può essere sfruttata in vari modi, per realizzare diverse funzionalità:

Pooling di indirizzi IP

Si parla di pooling di indirizzi IP quando il NAT gestisce un insieme, chiamato appunto pool, di più indirizzi IP pubblici assegnati alla stessa rete. Quando un host interno alla rete, identificato da un indirizzo privato, ha bisogno di comunicare con l’esterno, il NAT sceglie uno degli indirizzi disponibili dal pool e lo associa all’indirizzo privato di tale host.

Il pooling viene spesso usato, ad esempio, nelle reti aziendali, che tendono ad avere a disposizione più di un indirizzo pubblico.

Supporto alla migrazione tra ISP

Il collegamento da una LAN a Internet è in genere fornito da un ISP, che assegna alla LAN (o meglio, al router di frontiera della LAN) uno o più indirizzi IP pubblici.

Se si passa a un altro ISP, cambiano anche gli indirizzi pubblici assegnati, ma, grazie al NAT, ciò richiede solo un aggiornamento della tabella di traduzione: la migrazione risulta del tutto trasparente agli host interni alla rete.

IP masquerading

L’IP masquerading permette l’associazione di un singolo indirizzo IP pubblico a più indirizzi privati contemporaneamente, ovvero consente a più host in una LAN di condividere uno stesso indirizzo pubblico.

Per distinguere i datagrammi di host diversi, la traduzione effettuata dal NAT viene estesa ai numeri di porta di livello 4 (TCP/UDP): ogni combinazione di un indirizzo IP e numero di porta privati viene associata allo stesso indirizzo IP pubblico, ma con un numero di porta diverso. Ad esempio: