NAT - Traslazione di indirizzi, port forwarding e port triggerin

Il meccanismo della traslazione d'indirizzi (in inglese Network Address Translation sigla NAT) è stato elaborato per rispondere alla penuria di indirizzi IP con il protocollo IPv4 (il protocollo IPv6 mise fine a questi problemi). In effetti, nell'indirizzamento IPv4 il numero di indirizzi IP da inserire nel router (quindi unici al mondo) non è sufficiente per permettere a tutti i terminali di essere connessi a internet.

Principio del NAT

Il principio del NAT consiste quindi nell'usare un gateway di connessione a internet, con almeno un'interfaccia di rete connessa alla rete interna e almeno un'interfaccia di rete connessa ad internet (con un indirizzo IP per il router), per connettere l'insieme dei terminali di rete:

Gateway NAT

Si tratta di realizzare, a livello del gateway, una traslazione (letteralmente una «traduzione») dei pacchetti provenienti dalla rete interna verso quella esterna.

Così, ogni terminale di rete che ha bisogno di accedere ad Internet è configurato per usare il gateway NAT (precisando l'indirizzo IP del gateway nel campo «Gateway» con i suoi parametri TCP/IP). Quando un terminale di rete effettua una richiesta verso Internet, il gateway effettua la richiesta al suo posto, riceve la risposta, poi la trasmette al terminale che l'ha richiesta:

Principio della translation di indirizzi

Dato che il gateway camuffa completamente l'indirizzamento interno della rete, il meccanismo di traslazione di indirizzi permette di assicurare una funzione di sicurizzazione. In effetti, per un osservatore esterno alla rete, tutte le richieste sembrano provenire dall'indirizzo IP del gateway.

Spazio di indirizzamento

L'organismo che gestisce lo spazio di indirizzamento pubblico (indirizzi IP per i router) è l'Internet Assigned Number Authority (IANA). La RFC 1918 definisce uno spazio di indirizzamento privato che permette ad ogni organizzazione di attribuire degli indirizzi IP ai terminali della sua rete interna senza il rischio di entrare in conflitto con un indirizzo IP pubblico indicato dall'IANA. Questi indirizzi a cui non si può fare rooting corrispondono ai campi di indirizzi seguenti:

Classe A, range da 10.0.0.0 a 10.255.255.255;

Classe B range da 172.16.0.0 a 172.31.255.255;

Classe C, range da 192.168.0.0 a 192.168.255.55;

Tutti i terminali di una rete interna, connessi a internet attraverso un router e senza indirizzo IP pubblico devono usare un indirizzo contenuto in uno di questi range. Per le piccole reti domestiche, si usa generalmente il range di indirizzi da 192.168.0.1 a 192.168.0.255.

Traslazione statica

Il principio del NAT statico associa un indirizzo IP pubblico ad un indirizzo IP privato interno alla rete. Il router (o più esattamente il gateway] permette quindi di associare ad un indirizzo IP privato (ad esempio 192.168.0.1) un indirizzo IP pubblico smistato su internet di fare la traduzione, in un senso come nell'altro, modificando l'indirizzo nel pacchetto IP.

La traslazione di indirizzo statico permette quindi di connettere dei terminali della rete interna a internet in maniera trasparente ma non risolve il problema della penuria di indirizzo nella misura in cui n indirizzi IP smistati sono necessari per connettere n terminali della rete interna.

Traslazione dinamica

Il NAT dinamico permette di condividere un indirizzo IP routabile (o un numero ridotto di indirizzi IP smistati) fra più terminali in indirizzamento privato. Così, tutti i terminali della rete interna hanno virtualmente, visti dall'esterno, lo stesso indirizzo IP. Questa è la ragione per cui il termine «maschera IP» (IP masquerading) è talvolta usato per designare il meccanismo di traslazione di indirizzo dinamico.

Per «multiplexare» (condividere) i diversi indirizzi IP su uno o più indirizzi IP smistati il NAT dinamico usa il meccanismo di traslazione della porta (PAT - Port Address Translation), cioè l'attribuzione di una porta sorgente diversa ad ogni nuova richiesta in maniera tale da poter mantenere una corrispondenza tra le richieste che provengono dalla rete interna e le risposte dei terminali su internet, tutte indirizzate all'indirizzo IP del router.

Port Forwarding

La traslazione di indirizzo permette di collegare solo delle richieste che provengono dalla rete interna verso quella esterna, il che significa che è impossibile in quanto tale per un terminale esterno inviare un pacchetto verso un terminale della rete interna. In altri termini, i terminali della rete interna non possono funzionare come server verso l'esterno.

Per questa ragione, esiste un'estensione del NAT detta «port forwarding» che consiste nel configurare il gateway per trasmettere ad un terminale specifico della rete interna, tutti i pacchetti ricevuti su una particolare porta. Così, se si vuole accedere ad un server web (porta 80) funzionante su un terminale 192.168.1.2 dall'esterno, sarà necessario definire una regola di forwarding della porta sul gateway, ridirigendo tutti i pacchetti TCP ricevuti sulla sua porta 80 verso il terminale 192.168.1.2.

Port Triggering

La maggior parte delle applicazioni client-server effettuano una richiesta su un host remoto su una data porta e aprono una porta di ritorno per recuperare i dati. Tuttavia, alcune applicazioni usano più di una porta per scambiare i dati con il server, è il caso ad esempio del protocollo FTP, per cui si stabilisce una connessione con la porta 21, ma i dati sono trasferiti dalla porta 20. Così, con il meccanismo NAT, dopo una richiesta di connessione sulla porta 21 di un server FTP remoto, il gateway aspetta una connessione su una sola porta e rifiuterà la richiesta di connessione alla porta 20 del client.

Esiste un meccanismo derivato del NAT, detto «triggering di porta», che permette di autorizzare la connessione su certe porte (port forwarding) se si verifica una condizione (richiesta). Si tratta quindi di un port forwarding condizionale, che permette di non lasciare aperta una porta in permanenza, ma solo quando un'applicazione ne ha bisogno.

Ulteriori informazioni

Per ulteriori informazioni si consiglia di fare riferimento a quest'altro articolo, relativo alla traslazione di indirizzo:

Traslazione di indirizzo - Network Address Translation (NAT).

Le RFC 1918 e 3022 descrivono dettagliatamente il principio dello spazio di indirizzamento interno e di traslazione di indirizzo:

RFC 3022 - Traditional IP Network Address Translator (Traditional NAT).

RFC 1918 - Address Allocation for Private Internets.

Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Potrebbe anche interessarti
Il documento intitolato « NAT - Traslazione di indirizzi, port forwarding e port triggerin » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.