Attenzione: articolo per Nerds !!!
Il NAT (Network Address Translation) è un meccanismo delle reti che serve per tradurre gli indirizzi IP delle macchine.
Vediamo di capire con un esempio pratico.
Ruggiero ha una rete LAN composta da 2 PC fissi ed un portatile, e si connette ad internet attraverso un router ADSL.
Ogni computer, per connettersi alla Grande Rete, ha bisogno di un proprio indirizzo IP, ma il problema è che il numero totale di indirizzi (circa 4 miliardi) non è sufficiente per tutti i PC (ed apparati).
Inoltre il service provider di Ruggiero gli fornisce un solo IP, quindi dovrebbe connettersi solo con un computer alla volta… 🙁
E invece no!
Ecco che ci viene incontro il NAT: in pratica il gateway (punto d’uscita, è la macchina al quale tutti i pc della mia rete chiedono: “ehi, io voglio questo indirizzo, su, dammelo!!!”, quindi nel nostro esempio è il router ADSL) si tiene per sè l’indirizzo assegnato dal provider, e si prende l’incarico di gestire le connessioni, è come un rappresentante di un’azienda: lui parla con il cliente, il quale non vedrà mai tutto il sistema aziendale che ha incaricato questo nostro rappresentante.
Ok, ma cosa fa in pratica?
Ogni pacchetto TCP/IP ha delle bolle di accompagnamento, tra cui l’indirizzo del mittente e quello del destinatario; il router non fa altro che sostituire l’indirizzo del mittente con il suo (assegnato dal provider), e segnarsi su un block notes (tabella di NAT) che le risposte che torneranno andranno recapitate al determinato mittente della rete locale.
Così facendo, i pacchetti che vengono iniettati su internet hanno come indirizzo mittente quello del router, e il destinatario risponderà sempre a quell’indirizzo (conosce solo quello!), e il router smisterà i pacchetti che gli arrivano dall’esterno.
Nel caso più generale, il gateway può non essere un router, ma anche un PC vero e proprio, magari una linux box.
Questo procedimento è detto MASQUERADING, ovvero il router maschera all’esterno il vero mittente.