Network Address Translation

Il NAT (Network Address Translation) è integrato nel router o nel firewall che separa una LAN da una WAN.

NAT opera sostituendo l'indirizzo sorgente quando un pacchetto generato da una stazione della LAN attraversa il router per uscire sulla WAN ed effettua la sostituzione dell'indirizzo destinazione quando il pacchetto ritorna al router per rientrare nella LAN.

Le stazioni della LAN devono possedere un indirizzo privato.

Si consideri un router che si collega alla WAN tramite l'indirizzo pubblico: 137.76.29.7 e abbia su una delle sue linee le stazioni di una sottorete con indirizzi IP privati di classe A,

Indirizzo dell'interfaccia del router lato WAN
137.76.29.7

Router

Indirizzi delle stazioni della LAN
10.0.0.1
10.0.0.2
10.0.0.3

  1. La stazione 1 della LAN genera un pacchetto avente i campi Source address = 10.0.0.1:1165 e Destination address = 128.119.140.186:80

  2. Il pacchetto viene consegnato al router. Qui l'indirizzo privato della stazione sorgente viene sostituito con l'indirizzo dell'interfaccia connessa alla WAN. La porta dell'applicazione in esecuzione sulla stazione sorgente viene sostituita con un numero che rappresenta la riga della tabella di traduzione degli indirizzi dove è contenuta l'associazione tra gli indirizzi entrante e uscente.

     Tabella di traduzione (NAT)
     Lato WANLato LAN
    1137.76.29.7:110.0.0.1:80
    2137.76.29.7:210.0.0.1:1165
    3137.76.29.7:310.0.0.3:3345
  3. Il pacchetto verrà rilasciato dal router sulla linea collegata alla WAN con i campi: Source address = 137.76.29.7:2 (in cui 2 è il numero della riga della tabella) e Destination address = 128.119.140.186:80.

  4. Il pacchetto di risposta, che ritornerà dal destinatario al router, contiene l'intestazione: Source address = 128.119.140.186:80 e Destination address = 137.76.29.7:2.

  5. Il router accede alla tabella di traduzione degli indirizzi, modifica l'indirizzo destinazione prelevandolo dalla riga 2, ed emette il pacchetto sulla LAN, con l'intestazione: Source address = 128.119.140.186:80 e Destination address = 10.0.0.1:1165.

Il protocollo NAT fa apparire una rete come un singolo host. Ad esempio, se la rete LAN contiene molte stazioni, ma il provider ha fornito solo 14 indirizzi IP, con NAT la rete LAN appare dall'esterno come se fosse composta da soli 14 host, mentre, in realtà ve ne possono essere molti di più.

È sufficiente costruire una tabella in cui differenti indirizzi interni sono associati allo stesso indirizzo esterno. Il protocollo traduce ogni indirizzo della rete LAN in un indirizzo della rete WAN, fino ad esaurimento. Esiste un meccanismo di timeout per cui, se una riga della tabella di traduzione non viene utilizzata per un determinato tempo, viene rimossa.

Vantaggi dell'uso del NAT:

Difetti del NAT:

Proxy Server.

Un proxy server è un programma che si interpone tra un client e un server inoltrando le richieste e le risposte dall'uno all'altro.

Il client si collega al proxy e gli invia le richieste, il proxy si collega al server e inoltra la richiesta del client, riceve la risposta e la inoltra al client. Per l'applicazione server, il client è il proxy server.

I proxy si possono dividere in proxy di applicazione e proxy a livello di circuito.

I proxy di applicazione lavorano a livello di applicazione e sono specifici per certi protocolli. Il proxy di applicazione più comune è il proxy server che gestisce l'accesso al Web.

I proxy a livello di circuito sono più flessibili perchè non sono specifici per un singolo protocollo, ma funzionano per qualsiasi servizio; si limitano ad effettuare un tunnel tra client e server. I proxy a livello di circuito sono anche semplici da implementare.

Il proxy può essere usato per:

connettività: permette a una rete privata di accedere all'esterno, o meglio a un client e un server che appartengono a due reti diverse di stabilire una connessione anche quando non è disponibile un instradamento diretto (routing) tra le reti; un computer con due interfacce, una verso la rete interna e una verso Internet, viene configurato in modo che faccia da proxy tra gli altri computer e Internet; si ha un unico computer connesso all'esterno, che però permette a tutti gli altri di accedere a Internet; è un modo per gestire gli accessi a Intemet dalle stazioni di una rete locale che non richiede la presenza di un router nella rete; di solito in questo caso il proxy viene usato anche come firewall;

caching: memorizza i risultati delle richieste in modo da migliorare le prestazioni; offre due vantaggi principali: l'accesso rapido alle risorse già accumulate nella cache e la riduzione del traffico nella rete che precede il proxy stesso;

controllo: può applicare regole per determinare quali richieste inoltrare o rifiutare e limitare l'ampiezza di banda usata dai client;

monitoraggio: permette di tenere traccia delle operazioni effettuate da una stazione, identificata dal suo indirizzo IP, o da un utente, identificato dall'account con cui si è autenticato (anche se ciò può creare problemi di privacy);


Nota: II proxy usato per offrire connettività ad Internet può richiedere obbligatoriamente l'autenticazione; in questo modo possono accedere ad Internet solo utenti autenticati ed è possibile registrare le operazioni compiute da ciascun utente.

Sicurezza: nasconde lo schema di indirizzi della rete interna e quindi rende più difficoltoso l'accesso agli intrusi; sulla rete locale si possono usare gli indirizzi presi dagli intervalli di indirizzi privati; le reti esterne possono vedere solo l'indirizzo IP del proxy; tutte le conversioni fra rete interna ed esterna vengono gestite dal proxy;

privacy: maschera gli indirizzi IP del client; come indirizzo del client viene visto solo l'indirizzo dei proxy.

Quando il proxy viene usato principalmente per migliorare le prestazioni di un segmento di rete con l'uso della cache il proxy può essere installato su qualsiasi computer, basta che sia accessibile dal segmento di rete che lo deve utilizzare e che a sua volta sia in grado di accedere all'esterno.

Se il proxy viene usato per offrire connettività, deve essere installato su un computer con almeno due interfacce, una connessa alla rete locale con indirizzi privati e una connessa alla rete esterna; in questo modo permette ai client della rete privata di avere accesso all'esterno attraverso il proxy stesso. L'accesso si limita ai protocolli gestiti dal proxy (usando un proxy di applicazione spesso si tratta solo di HTTP e FTP).

II proxy può ricoprire anche un ruolo di filtro e inoltro di pacchetti tra la rete privata e la rete esterna. Per usare un proxy si può configurare il client in modo che si colleghi al proxy, oppure configurare il NAT in modo da realizzare un servizio di proxy trasparente (facendo in modo che le connessioni vengano indirizzate automaticamente al proxy).

PROXY HTTP

L'utente usa normalmente il browser per visitare pagine Web su Internet; le richieste vengono effettuate tramite il server proxy, che riceve le risposte e le invia al browser interessato. Quando effettua una richiesta il server proxy memorizza le risorse ricevute in una cache per future richieste dello stesso o di altri client; questo permette di ridurre il traffico verso l'esterno migliorando le prestazioni (comunque non bisogna dimenticare che tutti i dati in ingresso vengono elaborati due volte, una dal proxy e una dal client e questo può rallentare le prestazioni). L'uso del server proxy permette anche di controllare le richieste che possono essere effettuate (per esempio a quali siti è consentito e a quali siti è vietato accedere.) e di tenere traccia delle operazioni effettuate, per esempio di tutte le pagine web visitate.