Il Destination NAT modifica nell’intestazione dei pacchetti IP l’indirizzo IP di destinazione.
Il caso più comune di DNAT è il port forwarding (chiamato a volte anche tunneling).
Il port forwarding permette di concedere l’accesso dall’esterno a un nodo della rete locale che ha un indirizzo privato.
Il port forwarding è indispensabile quando la rete dispone di un solo indirizzo IP pubblico e deve consentire l’accesso a qualche computer interno, per esempio per rendere disponibile un servizio realizzato internamente, come un server Web.
Il server Web della rete interna viene reso visibile all’esterno mediante l’indirizzo assegnato dal provider.
Con il port forwarding il router abbina un numero di porta a un indirizzo privato interno; una richiesta proveniente dall’esterno e diretta a una determinata porta viene diretta a un nodo ben preciso della rete locale.
Per fare questo il router annota delle ridirezioni statiche riferite alla richiesta di porte particolari.
Una porta sul dispositivo NAT è in realtà un puntatore a una porta attiva su un altro computer; tutte le richieste di connessione sulla porta del dispositivo NAT vengono inoltrate al servizio attivo sull’altra porta sull’altro computer.
Per esempio un router ridirige sistematicamente le connessioni provenienti dall’esterno, dirette alla porta 80, verso un nodo locale che offre un servizio HTTP.
Per esempio se all’esterno il server Web è raggiungibile all’indirizzo 200.1.2.3:80; una richiesta proveniente dall’esterno a questo indirizzo viene diretta all’indirizzo 192.168.0.100:80.
Altri usi del destination NAT
-
Proxy trasparente
ridirige il traffico diretto a una certa porta, verso una porta differente di un certo nodo; di solito è usato per reindirizzare le connessioni HTTP a un proxy server (che ovviamente deve essere configurato correttamente per gestire tale situazione); in questo modo il browser usa sempre il proxy automaticamente; non è necessario configurare il browser perché usi il proxy.
È una tecnica usata per esempio dagli ISP per ridurre l’uso della banda senza richiedere ai client di configurare il browser.
-
Bilanciamento del carico di lavoro
reindirizza una connessione destinata a un server a un altro server scelto a caso tra un insieme di server a disposizione, per migliorare le prestazioni;
-
Fault tolerance
reindirizza la connessione a un server secondario se il server principale non è attivo.