Guide: passo per passo

Condividi:        

Network/P2P
PREMESSA: se non conoscete il significato di qualche parola consultate il nostro Glossario.
9. Funzionamento di NAT

Le Figure 1A e 1B, poste alla fine del documento, illustrano come funziona NAT. Il Gateway NAT separa fisicamente la rete interna dalla rete Internet pubblica, con lo spazio di indirizzi IP da una parte della rete e gli indirizzi pubblici dall'altra. La parte pubblica del Gateway può essere una piccola LAN, chiamata Demilitarized Zone (DMZ), alla quale è possibile collegare i Server Web di posta elettronica e altri che devono essere visibili al pubblico in generale. È necessario avere indirizzi IP pubblici solamente per le periferiche di questa LAN pubblica (almeno un indirizzo IP pubblico per il Gateway NAT).

Seguiamo ora il percorso di un pacchetto dall'interno della rete verso un server Web remoto su Internet. Nella Figura 1A, la Workstation A con indirizzo IP privato 10.0.0.22 vuole avviare una connessione HTTP (Hypertext Transport Protocol) con un Server Web remoto all'indirizzo IP pubblico 192.16.4.3. La Workstation A invia un pacchetto di apertura del collegamento verso l'indirizzo del server Web remoto instradandolo attraverso il Gateway NAT che la Workstation A considera come il proprio Gateway Internet (a volte detto Gateway "assunto"). Il pacchetto di apertura del collegamento comprende gli indirizzi IP del sistema di origine e del sistema di destinazione, oltre al numero della porta (80 per una connessione http). Il Gateway NAT riceve il pacchetto, riconosce che si tratta di una richiesta di apertura del collegamento e conserva l'indirizzo IP di origine della Workstation A (10.0.0.22) in una tabella insieme all'indirizzo IP di destinazione. Questa tabella, chiamata tabella dello stato del collegamento, è la chiave per la NAT. Essa permette al Gateway NAT di utilizzare un processo chiamato ispezione dello stato per eseguire la conversione degli indirizzi tra le periferiche della rete privata e quelle della rete pubblica.

Dopo aver creato la voce della tabella, il Gateway NAT inoltra il traffico verso il Server di destinazione, sostituendo l'indirizzo di origine di partenza con il suo indirizzo IP pubblico e instradando il pacchetto verso il vero Gateway Internet della rete. Il pacchetto di apertura del collegamento segue il proprio percorso attraverso Internet fino al Server di destinazione, il quale vede la richiesta come una richiesta proveniente dal Gateway NAT e non dalla Workstation A.

Il Server remoto quindi restituisce un pacchetto di accettazione del collegamento contenente un numero di porta TCP/IP unico (3250 nell'esempio) da utilizzare per le successive comunicazioni. Questo processo, chiamato sincronizzazione TCP/IP, costituisce un altro elemento essenziale di NAT. La combinazione di indirizzo IP di origine e destinazione, protocollo e numero di porta della sessione, identifica in modo univoco questa sessione TCP/IP tra tutte le altre, permettendo al Gateway NAT di tener traccia di chi sta comunicando.

Quando il Gateway NAT riceve il pacchetto di accettazione, individua la voce della tabella dello stato del collegamento corrispondente all'indirizzo IP del Server rispondente e la aggiunge al numero di porta IP della connessione assegnato dal Server di destinazione. Dato che ciascun utente interno probabilmente effettua connessioni a più host remoti, cosa che potrebbe dare origine a numeri di porta doppi, il Gateway NAT assegna anche un numero di porta unico alla connessione ad uso degli host interni (2364 nell'esempio). A questo scopo il Gateway NAT gestisce un contatore del successivo numero di porta disponibile.

Infine, dalla voce della tabella dello stato il Gateway NAT vede che l'origine della richiesta di connessione è l'indirizzo IP privato 10.0.0.22 e quindi inoltra l'accettazione alla Workstation A a questo indirizzo. Ora esiste una connessione stabilita tra la Workstation A ed il Server remoto, i quali sono quindi pronti a scambiarsi dati.

Lo scambio di dati è semplice (Figura 1B). La Workstation A invia un pacchetto al Gateway NAT, il quale riconosce il pacchetto come parte della sessione in corso, modifica l'indirizzo di origine sostituendolo con il proprio indirizzo pubblico e invia il pacchetto al Server di destinazione. Il Server di destinazione riceve il pacchetto e restituisce la propria risposta al Gateway NAT il quale quindi inverte il processo di conversione dell'indirizzo IP sostituendo l'indirizzo IP di destinazione e il numero di porta con i valori della tabella dello stato del collegamento per quella connessione. Alla fine uno dei partner della connessione invierà una richiesta CLOSE, chiedendo al Gateway NAT di cancellare la voce corrispondente dalla tabella dello stato del collegamento. La maggior parte dei Gateway cancella anche tutte le voci di connessioni che sono state inattive per un periodo di tempo predeterminato.

Vediamo ora cosa succede quando un client IP esterno tenta di avviare una connessione TCP/IP con un server della LAN privata. Dato che l'unico indirizzo IP visibile al mondo esterno è l'indirizzo IP pubblico del Gateway NAT, il client remoto dovrebbe inviare la propria richiesta al Gateway NAT. Il comportamento predefinito della maggior parte dei Gateway NAT consiste nel rifiutare semplicemente tutte queste richieste in entrata. Il Gateway NAT in questo modo funge da Firewall limitato. Quando si usa NAT su un AS/400, l'AS/400 funge similmente da Gateway Internet e da Firewall. Spesso non si usa l'AS/400 principale di produzione a questo scopo, in quanto un piccolo AS/400 server potrebbe comunque funzionare come Firewall multifunzionale, Gateway NAT e Server della posta.
Alcuni Gateway NAT (incluso l'AS/400) sono predisposti per accettare le richieste di connessione in entrata per protocolli specifici e per proiettarle sui singoli server nella LAN privata. Questo processo, detto NAT inversa, permette di avere Server pubblici sulla LAN privata. Tuttavia, questo comportamento permette agli utenti esterni di penetrare nella LAN interna, cosa che può dare origine a rischi di sicurezza. Solitamente è meglio tenere i server pubblici sulla LAN DMZ al di fuori del Gateway NAT.

Con queste nozioni di base sul funzionamento interno della NAT, possiamo vedere come l'OS/400 implementa la NAT e come questa può essere configurata; potremo inoltre analizzare alcune tecniche utili per utilizzare NAT in situazioni non comuni.


Network/P2P: Dylan666 [115 visite dal 20 Dicembre 04 @ 00:01 am]