NAT & PAT
Notizia del 11/06/2007
Il tutorial è frutto di qualche lezione che mi sta dando Mr. Z, che ringrazio (soprattutto per la tenacia e determinazione impiegate a colmare le mie lacune ;); in calce al post il glossario dei termini usati.
Vediamo come funziona "meccanicamente" l'inoltro di una richiesta da parte del client di una LAN a un server di una WAN.
Nello schema qui sotti i nodi coinvolti:
- il client, ovvero il personal computer parte di una rete locale da cui sarà inviata attraverso il browser una richiesta per Google
- il router, cioè l'apparecchio che rappresenta il gateway, il punto di connessione tra la rete locale e Internet
- il server di Google che riceverà e smaltirà la richiesta
Gli indirizzi IP coinvolti sono:
- 192.168.1.10 -> il numero del personal computer; per l'esattezza il numero del computer è solo 10, il resto è il numero della sottorete a cui è collegato
- 192.168.1.254 -> il numero del router dal lato rivolto verso la rete locale e 65.249.87.126 il numero univoco con cui il router è collegato e identificabile in Internet
- 216.239.59.147 -> l'indirizzo di un server di Google.it
Il client fa partire una richiesta per il server remoto; la "busta" (il pacchetto) avrà come indirizzo del mittente 192.168.1.10 (quello del client) e come indirizzo del destinatario 216.239.59.147 (quello del server).
Siccome però dallo stesso client potrebbero partire più richieste in contemporanea, le si distingue tra loro attraverso l'indicazione della porta: nel nostro caso, la richiesta è uscita attraverso la porta 2457; per quanto riguarda la porta di destinazione invece sarà sempre la porta 80, cioè quella di default in entrata per il protocollo http.
Riepilogando, il mittente sarà 192.168.1.10:2457 e il destinatario 216.239.59.147:80:
Nota: la porta di partenza è stata indicata a caso; l'esempio avrebbe potuto essere fatto con la porta 3982 oppure 1843 etc.
Il pacchetto raggiunge il router e quest'ultimo provvede a sostituire l'indirizzo del client - non valido per Internet - con quello con cui il router stesso è identificabile in rete, cioè 65.249.87.126; scrive su una tabella gestita da una tecnica di mappatura chiamata NAT (Network Address Translation) la corrispondenza della richiesta in modo da sapere a quale client inoltrare la risposta quando arriverà.
Modifica anche il numero di porta di riferimento, sostituendola con una propria compresa per convenzione tra 1024 e 4999 incluse: la tecnica di mappatura che provvederà al cambio si chiama PAT (Port Address Translation).
Il pacchetto uscirà quindi dal router avendo come indirizzo del mittente 65.249.87.126:1024 e come indirizzo del destinatario 216.239.59.147:80:
***
Il server provvede a smaltire la richiesta e inoltra la risposta a quello che per lui risulta essere il mittente. La risposta avrà quindi come mittente l'indirzo del server 216.239.59.147:80 e come destinatario l'indirizzo IP del router rivolto verso Internet, 65.249.87.126:1024:
***
Il router dopo aver ricevuto il pacchetto procede a modificare in base alla proprie tabelle NAT e PAT l'indirizzo del destinatario, in modo da inoltrarlo al reale richiedente. Dopo la modifica, il pacchetto avrà come mittente l'indirizzo del server 216.239.59.147:80 e come destinatario l'indirizzo del client 192.168.1.10:2457:
***
Glossario
- Client: un computer che effettua la richiesta a un altro computer; un personal computer collegato in rete è il client per antonomasia.
- Gateway: normalmente un router, un dispositivo in grado di porre in comunicazione reti di tipologie differenti, come una rete locale (LAN) e una rete pubblica (WAN).
- LAN: Local Area Network, ovvero rete locale. Normalmente si estende all'interno di un'azienda, un'abitazione, due edifici vicini etc.
- Mappa: è il termine con cui si indica la tabella delle corrispondenze per gli indirizzi "tradotti".
- NAT: Network Address Translation, ovvero la tabella di mappatura che si occupa di trasformare un indirizzo di rete locale in un indirizzo di rete pubblica. La tabella del NAT è installata all'interno del router. Attenzione! Il NAT entra in funzione solo nel caso in cui la comunicazione sia fatta tra un nodo interno di una LAN e un nodo pubblico. Un computer collegato in rete tramite un semplice modem non utilizzerà questo sistema, né ovviamente userà il PAT.
- Pacchetto: un blocco di dati contraddistinto da un contenuto (chiamato payload), un indirizzo IP di partenza e un indirizzo IP di destinazione. Ogni file trasmesso da un nodo all'altro di una rete viene segmentato in uno o più pacchetti prima di essere trasmesso.
- PAT: Port Address Translation: è la tabella di mappatura che si occupa di tradurre la porta di partenza di una richiesta in una porta disponibile del router.
- Porta: una porta è un canale di comunicazione che collega due dispositivi; esistono porte dedicate (la porta 80 gestisce sempre il protocollo HTTP, la porta 21 il protocollo FTP etc) e porte usate a seconda delle necessità.
- Protocollo: insieme di regole di codifica di un determinato comportamento.
- Protocollo HTTP: Hyper Text Transfer Protocol protocollo che si occupa della trasmissione di informazioni via web.
- Server: computer depositario di informazioni, programmi etc a disposizione dei client che ne fanno richiesta. Un server è normalmente sempre acceso e può essere interno come il file server di un'azienda, oppure esterno, come i web server dove sono ospitati i siti web.
- WAN: Wide Area Network. Rete che copre grandi superfici; la WAN per antonomasia è Internet, che copre tutto il globo terrestre.
I campi con * sono obbligatori.
Commenti
1 - Scritto da gioi il 11/06/2007 alle 20:55
incredibile!!
tu e Mr. Z non state facendo lezioni per utonti, ma per quelli ancora più sotto, considerando il fatto che questa lezione l'ho capita pure io ;)
2 - Scritto da reb il 11/06/2007 alle 23:12
intanto non buttarti troppo giu', che quel che sai di informatica lo so bene e non e' cosi' poco come vai raccontando eppoi se l'hai capita tu vuol dire soprattutto... che IO l'ho capita abbastanza da riuscire a spiegartela :D