Indirizzi IP privati e pubblici, Nat e Pat


IP pubblici e privati

Indirizzi IP pubblici e indirizzi IP privati

Gli indirizzi IP pubblici, sono utilizzati in internet, quelli privati, sono invece utilizzati nelle lan.

I primi, sono univoci a livello mondiale, i secondi possono essere uguali ad altri nodi in altre lan

La foto sopra ci chiarisce meglio la questione e ci permette di fare 2 osservazioni:

  • Nel Router0 sono presenti 2 interfacce di rete e, quindi, 2 indirizzi IP: quello esposto verso internet (201.4.22.5) è pubblico, questo significa che, in tutto il mondo esisterà solo un nodo con quell’indirizzo e che sarà raggiungibile direttamente da internet. L’indirizzo IP 192.168.1.1 è invece privato e quindi sarà raggiungibile soltanto all’interno della Lan A.
  • Possiamo poi vedere che, il Router1, oltre ad avere un IP pubblico diverso da quello di Router0, ha assegnato anche un IP privato identico a quello di Router0.

Vediamo di capire meglio il meccanismo, supponiamo che PC1 voglia mandare un messaggio a PC2, che è sulla sua stessa rete. Il pacchetto IP conterrà nel campo “source address” 192.168.1.10 e nel campo “destination address” 192.168.1.11.

Essendo i due nodi sulla stessa rete, non è necessario fare altro.

Vediamo ora il caso più complicato in cui PC1 vuole mandare un messaggio a PC3.

Qui dobbiamo dividere il processo in più fasi:

  • PC1 scrive nel campo “source address” il valore 192.168.1.10 e nel campo “destination address” l’indirizzo ip pubblico del router collegato alla Lan B e, cioè, 140.6.3.2
  • Essendo il destinatario del pacchetto esterno alla Lan A, questo verrà mandato al default gateway, cioè 192.168.1.1
  • il Router0 quindi, dopo averlo ricevuto sull’interfaccia a cui è assegnato l’indirizzo ip privato “passa” il pacchetto all’interfaccia a cui è assegnato l’indirizzo ip pubblico, cambiando però il campo “source address” con il valore “201.4.22.5”.
  • A questo punto il messaggio arriverà a Router1 che lo manderà dall’interfaccia con ip pubblico 140.6.3.2 all’interfaccia con indirizzo ip privato 192.168.1.1 che, a sua volta lo girerà a PC3.


Abbiamo detto che i Router “traducono” gli indirizzi ip privati in indirizzi ip pubblici e, viceversa, gli indirizzi ip pubblici in indirizzi ip privati, vediamo nel dettaglio come questa funzione viene implementata.

NAT, PAT e Port Forwarding

NAT sta per Network Address Translation: è il meccanismo che si occupa di “tradurre” gli indirizzi ip privati in pubblici e viceversa utilizzando una tabella apposita, vediamo come riprendendo l’esempio di cui sopra in cui PC1 manda un messaggio a PC3, supponendo che su PC3 sia in esecuzione un web server in ascolto sulla porta 80.

Per semplicità ci limiteremo a guardare le cose solo dal punto di vista della lan A.

  • PC1 manda il messaggio con destinatario 140.6.3.2:80 (vedi socket per maggiori dettagli su questa sintassi) e mittente 192.168.1.10:2000
  • Non trovandosi l’ip pubblico sulla sua stessa rete, questo giungerà al default gateway, nell’esempio il Router0.
  • Router0 prima di mandare il messaggio su internet, cambierà il mittente in 201.4.22.5:3000 e salverà in una tabella la corrispondenza 192.168.1.10:2000 <—-> 201.4.22.5:3000
  • La risposta del server web conterrà come destinatario 2014.22.5:3000
  • Una volta che Router0 riceverà la risposta, consulterà la tabella, rileverà la corrispondenza 192.168.1.10:2000 <—-> 201.4.22.5:3000 cambierà il destinatario in 192.168.1.10:2000 spedirà il messaggio a PC1

Il limite di questo approccio è che è possibile traslare un solo ip per volta, quindi se dovesse arrivare da PC2 una richiesta identica, questo creerebbe dei problemi.

Per risolvere questa limitazione è stata sviluppata la tecnica PAT che sta per Port Address Translation.

PC1 ha fatto la sua richiesta e il suo indirizzo è stato traslato come sopra. Ora anche PC2 manda una richiesta con indirizzo 140.6.3.2:80 e mittente 192.168.1.11:2000

In caso utilizzassimo la tecnica NAT questa traslazione non sarebbe possibile, invece con la tecnica PAT, semplicemente, viene aggiunta nella tabella delle corrispondenze la riga 192.168.1.11:2000 <—-> 201.4.22.5:3001

Quando il destinatario risponderà, quindi invierà due risposte diverse, rispettivamente a 201.4.22.5:3000 e 201.4.22.5:3001.

Router0 consulterà la tabella PAT e sostituirà i destinatari rispettivamente in 192.168.1.10:2000 e 192.168.1.11:2000

Infine, come dicevamo sopra, supponiamo che PC3 sia un web server, in ascolto sulla porta 80 (HTTP), bisogna fare in modo che, quando arriva una richiesta su IP pubblico e porta 80 (140.6.3.2:80) questa venga mandata direttamente, da Router1 a PC3; questo è il Port Forwarding.

Lascia un commento

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Il blog

L’autore di questo blog insegna informatica e sistemi per le scuole superiori dal 2008.

Lo scopo è quello di fornire spiegazioni quanto più semplici possibile agli argomenti della disciplina per gli studenti delle scuole superiori e per chiunque voglia imparare le basi dell’informatica.

Se hai una domanda scrivila nel form qua sotto, risponderò appena possibile.

 

 

Fai una domanda

Disclaimer

Questo blog non rappresenta una testata giornalistica, in quanto viene aggiornato senza alcuna periodicità. Pertanto, non può considerarsi un prodotto editoriale ai sensi della Legge n. 62 del 07/03/2001