1/25 N etwork A ddress T ranslation & Port Forwarding I protocolli per far lavorare le reti private...
-
Upload
erminia-perini -
Category
Documents
-
view
212 -
download
0
Transcript of 1/25 N etwork A ddress T ranslation & Port Forwarding I protocolli per far lavorare le reti private...
1/25
Network Address Translation& Port Forwarding
I protocolli per far lavorare lereti private in Internet...
prof. F. Cesarin
2/25Network Address Translation & Port Forwarding
Obiettivi, Destinatari e Prerequisiti
Obiettivi1. Comprendere i protocolli che
rendono possibile lo scambio di dati tra due o più sottoreti LAN di Internet quando si adoperano applicativi client/server
2. Acquisire competenze sulla configurazione di rete per un applicativo server di una sottorette che accetta richieste daInternet e i relativi problemi di sicurezza
DestinatariClassi V di Informatica Industriale per l’Obiettivo 1 e 2Gruppo Scelto tra gli allievi delle classi V per approfondire FireWall, VPN e Virtualizzazione
ApplicazioniDagli applicativi standard di Internet (http, ftp, smtp, etc) ai vantaggi offerti dagli Application Services Provider (gli applicativi più diffusi in questo tipo di servizio sono gli ERP, i CRM, gli applicativi di e-commerce, di e-procurement, di data warehousing, di business intelligence e, in taluni casi, applicativi per l'automazione di ufficio)Dalle reti Peer-to-Peer (eMule, multiplayer game servers, etc) alle VPN
PrerequisitiConoscenza delle reti LANConsigliata la conoscenza del TCP/IPConsigliata la conoscenza base di qualche programma client/server come FTP o Telnet
3/25Network Address Translation & Port Forwarding
Contenuti
Introduzione
Richiami sul protocollo IP e le porte di comunicazione
Cenni ai Router
Internet e il problema degli indirizzi Pubblici/Privati
NAT a lavoro
Port ForwardingBibliografia
4/25Network Address Translation & Port Forwarding
Introduzione [1/2]
Nello studio dei protocolli di rete, Internet viene spesso indicata con una nuvoletta…
…e quando questa scompare, appare una ragnatela di interconnessioni tra particolari apparati di rete, i Router, con i loro complessi algoritmi di instradamento la cui conoscenza difficilmente interessa a chi non è addetto ai lavori o deve semplicemente configurare aspetti più semplici ma tuttavia importanti per il funzionamento delle applicazioni tra sottoreti!!!
Infatti vedremo altre funzionalità dei Router, in parte automatiche, come il NAT, e altre manuali, come il Port Forwarding, che sono essenziali per il livello applicazione e le relative sessioni client/server tra sottoreti di Internet!!!
5/25Network Address Translation & Port Forwarding
Introduzione [2/2]
Ogni computer, se fosse connesso direttamente a Internet, avrebbe un suo unico indirizzo IP…
…ma se lo stesso computer, come accade negli ambiti lavorativi, fa parte di una LAN connessa a Internet, allora deve condividere questo unico indirizzo esterno con gli altri computer della sua stessa rete e questo situazione viene ovviamente gestita dal protocollo di NAT che svolge un ruolo di intermediario tra indirizzi interni e quello esterno sfruttando le porte del protocollo TCP/IP
Premessa una conoscenza di base delle reti LAN, accenneremo il protocollo IP, quindi i Router, poi alle porte di comunicazione e al livello applicativo, tutto ciò per meglio comprendere come opera il protocollo NAT all’interno dei Router…
6/25Network Address Translation & Port Forwarding
Il protocollo IP [1/5]
Il protocollo IP stabilisce che ogni computer (o host) di una stessa rete deve possedere un unico identificativo espresso su 32 bit (4 byte), o, in modo equivalente, ma più leggibile, su una quaterna di byte, detta quaterna di Ottetti, in rappresentazione decimale e separati da un punto:
A.B.C.D con A, B, C e D che assumono valori da 0 a 255
Per motivi di gestione delle reti, i valori 0 e 255 non sono sempre adoperabili come vedremo in seguito e quindi esempi sicuramente validi di indirizzi IP possono essere
10.0.0.1 oppure 192.168.0.254
Inoltre, il protocollo IP stabilisce che lo stesso indirizzofornisca informazioni sulla rete di appartenenzain base a una classificazione gerarchica fattasui primi Ottetti di un indirizzo IP…
7/25Network Address Translation & Port Forwarding
Il protocollo IP [2/5]
La classificazione standard riportata nella tabella a lato indica quale tipo di indirizzamento scegliere in base alla grandezza della rete
Ad esempio, una rete di classe C, del tipo 192.168.10, può contenere fino a un massimo di 254 host con il seguente intervallo di indirizzi
da 192.168.10.1 a 192.168.10.254
Classe
Valori per gliottetti di Rete
Esempio intervallo per gli Host
A 1 a 126(127 x il Loopback)
1.0.0.1a
1.255.255.254
B128.0
a191.255
128.0.0.1a
128.0.255.254
C192.0.0
a223.255.255
192.168.0.1a
192.168.0.254
D e E224
a255
Multicast e riservati
Esempi di sottoreti possono essere:
quella dell’operatore FastWeb dove la Subnet Mask è
255.255.248.0 con un intervallo di 8*256-2 host possibili e i primi 21 bit
riservati alla sottorete
quella di una rete PowerLine o BlueTooth con un massimo di 2 host per cui la Subnet Mask è
255.255.255.252
Questa classificazione, però, presenta suddivisioni non adeguate a reti di dimensioni intermedie (ad esempio, per reti di 1000 host la classe C è troppo piccola e quella B è troppo grande):
a tal fine è stato introdotto il Subnet Mask (maschera di sottorete) come un ulteriore parametro di rete che, attraverso una sequenza di altrettanti 32 bit, consente di stabilire fino a quale bit dei più significativi di un indirizzo IP è da considerarsi di rete e il restante per gli hostun esempio classico di Subnet Mask è il valore 255.255.255.0 che individua nei primi 3 ottetti l’indirizzo della rete e sull’ultimo quello relativo agli host consentendo lo stesso intervallo di indirizzamento di una classe C…
8/25Network Address Translation & Port Forwarding
Il protocollo IP [3/5]
Nelle reti di calcolatori, le porte sono lo strumento utilizzato per realizzare la multiplazione delle connessioni a livello di trasporto (liv. 4 del modello OSI), ovvero per permettere ad un calcolatore di effettuare più connessioni contemporanee verso altri calcolatori, facendo in modo che i dati contenuti nei pacchetti in arrivo vengano indirizzati al processo (programma in esecuzione) che li sta aspettando.
Le porte sono numeri (in TCP e UDP sono a 16 bit) utilizzati per identificare una particolare connessione di trasporto tra quelle al momento attive su un calcolatore. I pacchetti appartenenti ad una connessione saranno quindi identificati dalla quadrupla [<indirizzo IP sorgente>, <indirizzo IP destinazione>, <porta sorgente>, <porta destinazione>]. I pacchetti nella direzione opposta avranno ovviamente sorgente e destinazione scambiati.
Per poter inviare con successo un pacchetto con una certa porta destinazione, ci deve essere un processo che è "in ascolto" su quella porta, ovvero che ha chiesto al sistema operativo di ricevere connessioni su quella porta. L'operazione di impegnare una porta TCP o UDP da parte di un processo è detta "bind", dal nome della chiamata di sistema Unix che la realizza.
La porta sorgente utilizzata in una connessione viene scelta dal calcolatore che inizia la connessione tra una di quelle al momento non impegnate.
9/25Network Address Translation & Port Forwarding
Il protocollo IP [4/5]
Esegui “ipconfig” x conoscere la config. di rete di questo computer
Verrà fornito l’indirizzo IP, la subnet-mask e l’indirizzo IP del gateway di cui parleremo più avanti.
Esegui “Tcpview” x conoscere le porte di comunicazione dei processi attivi.
La tabella delle Classi per gli indirizzamenti IP viene qui riproposta per farne riferimento durante
l’esecuzione del comando IPconfig.
Classe Valori per gliottetti di Rete
Esempio intervallo per gli Host
A 1 a 126(127 x il Loopback)
1.0.0.1a
1.255.255.254
B128.0
a191.255
128.0.0.1a
128.0.255.254
C192.0.0
a223.255.255
192.168.0.1a
192.168.0.254
In Internet, c'è una convenzione per cui ad alcuni numeri di porta sono associati determinati protocolli di livello applicativo. Ad esempio, se voglio contattare il server HTTP eventualmente in esecuzione su un certo calcolatore, so che devo tentare di stabilire una connessione verso la porta 80.
Le porte conosciute sono assegnate dall'Internet Assigned Numbers Authority (IANA), sono quelle inferiori a 1024, e sono generalmente utilizzate a livello di sistema operativo o di processi di sistema. In genere rimangono in ascolto su queste porte applicazioni con funzioni di server. Alcuni esempi possono essere le applicazioni che utilizzino protocolli FTP (21), SSH (22), TELNET (23), SMTP (25) e HTTP (80). Sono dette porte ben note.
10/25Network Address Translation & Port Forwarding
Il protocollo IP [5/5]
Come abbiamo visto, il protocollo IP è un protocollo che consente indirizzamenti gerarchici che stabiliscono regole di appartenenza di un host ad una rete indipendentemente dalla struttura fisica della stessa rete e ciò non era possibile adoperando i MAC Address in quanto sono semplici indirizzi seriali
Per meglio comprendere definitivamente la differenza tra indirizzo IP e indirizzo MAC, supponiamo che gli host siano delle persone,
l’indirizzo IP è paragonabile alla Nazione, Città, Via e Civico di residenza + il Nome della persona
mentre l’indirizzo MAC è paragonabile al Codice Fiscale di una persona che per quanto la identifichi non consente informazioni immediate sulla sua raggiungibilità fisica, in pratica, il Codice Fiscale di una persona non contiene informazioni su dove andare per trovare tale persona
A questo punto sono necessari nuovi dispositivi per gestire l’indirizzamento IP basandosi su funzionalità assimilabili a un servizio postale: i Router.
11/25Network Address Translation & Port Forwarding
I Router [1/4]
Il protocollo IP è stato progettato avendo in mente l’idea di un sistema di reti mondiale dove:
la strutturazione gerarchica degli indirizzamenti consente l’individuazione degli host tra più reti interconnesse, come appena visto
l’affidabilità basata sulla ridondanza delle interconnessioni consente di adoperare più strade per raggiungere uno stesso computer e ciò non era possibile con le tecnologie delle reti LAN su grandi distanze
la scalabilità di un sistema mondiale consente di interconnettere nuovi nodi e quindi nuovi host senza minare la stabilità del sistema stesso
Di fatto il protocollo IP è uno strato intermedio (livello 3 del modello OSI) tra i protocolli delle Reti appositamente inserito per “gestire” i dati che devono essere spostati da una LAN ad un’altra
La gestione dello spostamento (instradamento) dei dati tra 2 o più reti è realizzata dai Router che interconnettono reti e altri Router consentendo di formare una rete che dispone di più strade per raggiungere uno stesso host
12/25Network Address Translation & Port Forwarding
I Router [2/4]
Dall’animazione sopra si può meglio comprendere come i dati, per raggiungere una destinazione, possono seguire anche più strade
I Router gestiscono l’instradamento dei dati basandosi su delle Tabelle di Routing
Queste tabelle, che possono essere Statiche (cioè inserite da un amministratore di rete) o Dinamiche (aggiornate continuamente da algoritmi di routing), consentono di indirizzare i dati verso altri Router “vicini” che “conoscono” la rete da raggiungere
13/25Network Address Translation & Port Forwarding
I Router [3/4]
Ma come è visto un Router dall’interno di una rete?!
Innanzitutto un Router non è un dispositivo trasparente nella configurazione di una rete come può essere per molti dispositivi Switch
Infatti necessità di un indirizzo IP appartenente a ogni rete a cui è collegato, cioè ha più interfacce di rete ciascuna con la sua configurazione
Dunque, possedendo un proprio indirizzo IP per una rete a cui è collegato, potrebbe essere visto come un host su quella rete
Di fatto anche un computer host può svolgere le funzioni di Router se possiede 2 o più interfacce e ne gestisce il traffico dati
Ad ogni modo, che sia un computer o un dispositivo dedicato a fare il routing dei dati, entrambi sono visti dagli altri computer della stessa rete come una via di uscita verso altre reti, da cui il nome Gateway
Di conseguenza, se un Router interconnette 2 reti, allora esso, avendo per entrambe un proprio indirizzo IP, è un Gateway dell’una rispetto all’altra ...
14/25Network Address Translation & Port Forwarding
I Router [4/4]
Osserviamo in questa simulazione che
il Router0 ha 2 interfacce con indirizzamento diverso per ciascuna rete
i pacchetti IP provenienti dal Pc 192.168.0.1 (ad esempio per un Ping) vengono correttamente instradati verso il Pc 10.0.0.1
ed in particolare questo non richiede alcuna manipolazione dei pacchetti in quanto per piccole reti non ci sono limiti di indirizzamento a patto di evitare duplicazioni comunque non ammesse
192.168.0.254
10.0.0.254
15/25Network Address Translation & Port Forwarding
Internet e il problema degli indirizzi Pubblici/Privati [1/3]
Internet, com’è noto, rappresenta la rete mondiale basata sul protocollo IP, e per quanto detto in precedenza, si evidenziano le seguenti considerazioni:
ogni computer ad essa collegato ha un suo unico indirizzo IP e quindi non sono ammessi duplicati
la sua crescita esponenziale negli ultimi anni ha reso pressoché esaurita la disponibilità di ulteriori indirizzi IP (questo ha anche motivato la nascita di IPv6)
a causa di questo, la società IANA (Internet Assigned Number Authority) che gestisce gli indirizzi IP, ne limita l’assegnazione alle varie società ISP (Internet Services Provider) e queste a loro volta rivendono a pagamento i singoli indirizzi IP per i computer da collegare a Internet
addirittura, data la “continua” insufficienza di indirizzi, per molti ISP è stata fatta nel tempo la distinzione “a pagamento” traindirizzo Statico e Dinamico
A questo punto, poiché l’esigenza di collegarsi conpiù postazioni da parte di enti, piccole e medieimprese, ecc, è irrefrenabile …
16/25Network Address Translation & Port Forwarding
Internet e il problema degli indirizzi Pubblici/Privati [2/3]
… si è pensato di ricorrere all’uso di indirizzi Privati (in contrapposizione a quelli Pubblici di Internet) per computer non presenti direttamente su Internet ma collegati a LAN che accedono alla grande rete attraverso un apposito Router che:
possiede almeno 2 interfacce, una per la LAN, e quindi con un indirizzo privato appartenente a tale rete, e l’altra per Internet, con dunque un IP pubblico assegnato da un ISP
e, mediante il protocollo NAT (Network Address Translation), traduce gli indirizzi della LAN nell’unico IP pubblico conservando traccia di tale traduzione (ma come?! è quanto vedremo in seguito)
per A 1010.0.0.1
a10.255.255.254
per B172.16
a172.31
172.16.0.1a
172.16.255.254
per C192.168.0
a192.168.255
192.168.0.1a
192.168.0.254
A questo punto, la configurazione degli indirizzi privati, essendo tradotti, potrebbe essere qualunque, ma tale pratica è sconsigliata per evitare sovrapposizioni tra indirizzi pubblici e privati qualora non ci fosse il NAT,e vengono individuati e proposti 3 blocchi di indirizzi privati (e quindi non usati in Internet), ciascuno per le prime 3 Classi degli indirizzi IP (tabella a lato)
17/25Network Address Translation & Port Forwarding
Internet e il problema degli indirizzi Pubblici/Privati [3/3]A questo punto riEseguiamo
“IPconfig” x conoscere la configurazione di rete per questo computer
Ad esempio, se l’indirizzo visualizzato inizia con 192.168, allora questo computer fa parte di una LAN privata e ha un GateWay con indirizzo sull’interfaccia interna appartenente alla stessa rete.Attenzione, però, si potrebbe anche non ricavare un indirizzo di una classe privatama … http://www.iana.org/assignments/ipv4-address-space/ !
per A 1010.0.0.1
a10.255.255.254
per B172.16
a172.31
172.16.0.1a
172.16.255.254
per C192.168.0
a192.168.255
192.168.0.1a
192.168.0.254
La tabella degli intervalli per gli indirizzi privati viene qui riproposta per farne riferimento durante l’esecuzione dei
comandi di rete.E infine apriamo la pagina web “CesarinFabio.it“ per conoscere con quale IP si è visti su Internet
Se questo IP non coincide con quello ricavato dalla config. di rete, allora significa che si è su una rete privata e si è visti su Internet con l’IP pubblico assegnato all’interfaccia esterna dell’ultimo GateWay di frontiera…
È possibile eseguire “tracert CesarinFabio.it“ per avere più informazioni su punti di passaggio (attenzione, i punti di passaggio, in quanto nodi di una rete, specialmente per quelli intermedi, potrebbero non essere sempre gli stessi) per raggiungere il sito tracciato!
18/25Network Address Translation & Port Forwarding
NAT a lavoro [1/4]
Il protocollo NAT lavora a livello 3 e 4 del Modello OSI intervenendo sul singolo pacchetto IP in uscita da una rete locale verso Internet e agendo sull’indirizzo Sorgente, e la relativa Porta, e trascrivendo tale manipolazione in un apposita tabella detta “Lookup Table” (tecnica detta del Source NAT o Port Address Tanslation)
Per semplicità, data una rete LAN privata collegata mediante un apposito Router (con NAT attivo) a Internet
per i pacchetti in partenza da uno degli host della Lan verso Internet, il Router in questione ne analizza l’intestazione IP e sostituisce:
l’indirizzo sorgente con quello proprio sulla rete di destinazione
e la porta sorgente con un identificativo dell’indirizzo sorgente sostituito registrando tali sostituzioni nella “lookup table”
LAN Privata
Lookup Table del NAT
192.168.0.1 : 1074 -> 5001
IP sorgente11.0.0.1
Porta sorgente5001
IP Pubblico fornito dal ISP
11.0.0.1Pacchetti in partenza da192.168.0.1
IP sorgente192.168.0.1Porta sorgente1074
IP destinazioneA.B.C.DPorta destinazioneX
19/25Network Address Translation & Port Forwarding
NAT a lavoro [2/4]Abbiamo visto i pacchetti in partenza da un host di una LAN privata
Ora vediamo i pacchetti in risposta a quelli partiti proponendo come esempio la classica navigazione web…
si ha un PC di una LAN privata, con indirizzo 192.168.0.1 e IP pubblico 195.210.91.83, che deve realizzare una navigazione web
uno dei siti web da sfogliare si trova su un computer pubblico con IP 212.48.4.217 e Web Server in ascolto sulla porta 80195.210.91.83
LAN Privata
Pacchetti in partenzaper richiesta sito web
IP sorg. 192.168.0.1Porta sorg. 1074IP dest. 212.48.4.217Porta dest. 80
Lookup Table del NAT192.168.0.1 : 1074 > 5001
IP sorg. 195.210.91.83Porta sorg. 5001IP dest. 212.48.4.217Porta dest. 80
Pacchetti in rispostaper richiesta sito web
IP sorg. 212.48.4.217Porta sorg. 80IP dest. 195.210.91.83Porta dest. 5001
Lookup Table del NAT192.168.0.1 : 1074 > 5001
IP sorg. 212.48.4.217Porta sorg. 80IP dest. 192.168.0.1Porta dest. 1074
20/25Network Address Translation & Port Forwarding
NAT a lavoro [3/4]
Abbiamo appena visto che i pacchetti in risposta provenivano da un Web Server presente su un computer collegato direttamente a Internet
Adesso invece il Web Server si trova sulla macchina 10.0.0.2 che fa parte di una LAN privata ed è sempre in ascolto sulla porta 80: il NAT presentato prima sarà sufficiente per raggiungere tale macchina ammesso di conoscere l’IP pubblico della LAN 2 ?!
LAN Privata 1 LAN Privata 2Pacchetti in partenzaper richiesta sito web
IP sorg. 192.168.0.1Porta sorg. 1074IP dest. 212.48.4.217Porta dest. 80
L’IP di destinazione deve essere pubblico perché quelli privati non sono visibili su Internet!
195.210.91.83 212.48.4.217
Lookup Table del NAT192.168.0.1:1074 > 5001
IP sorg. 195.210.91.83Porta sorg. 5001IP dest. 212.48.4.217Porta dest. 80
Problema sul Router1 ?!
E’ arrivato:IP sorg. 195.210.91.83Porta sorg. 5001IP dest. 212.48.4.217Porta dest. 80
A quale host di questa LAN deve essere girato ?!
21/25Network Address Translation & Port Forwarding
Considerazioni sul NAT [4/4]
Dunque il Source NAT (o Port Address Translation) non è sufficiente come protocollo gestito in automatico per realizzare la perfetta comunicazione client/server di applicativi presenti su host di diverse lan private e si renderà necessario un intervento manuale detto Port Forwarding che vedremo a breve
Ad ogni modo il NAT altera l’idea iniziale degli indirizzi IP e di Internet
Il NAT è usato anche nei FireWall
La Lookup Table viene ripulita da connessioni non più adoperate mediante meccanismi di scadenza
22/25Network Address Translation & Port Forwarding
Il Port Forwarding [1/3]
Il Port Forwarding (o Destination NAT) è stato pensato per rendere accessibile dall’esterno gli host di una rete privata fornendo all’amministratore di rete la possibilità di configurare, sempre con la tecnica della porte, i computer raggiungibili da richieste esterne
Alcuni dispositivi predispongono un Port Forwarding bilanciato, che per semplicità non tratteremo ma che aumenta l’affidabilità di un servizio disponibile su più host di una stessa rete privata
Nel seguito tratteremo un Port Forwarding semplice:
consideriamo ancora un Web Server su una macchina con IP 10.0.0.2 che fa parte di una LAN privata e sia sempre in ascolto sulla porta 80: stavolta, però, predisponiamo un Port Forrwarding sul Router1!
LAN Privata 1 LAN Privata 2
195.210.91.83 212.48.4.217
Port Forwarding Table80 > 10.0.0.2 : 80
23/25Network Address Translation & Port Forwarding
Il Port Forwarding [2/3]
A seguito del Port Forwarding sul Router 1, la connessione già accennata viene ad instaurarsi tra web-client e web-server
LAN Privata 1 LAN Privata 2
Pacchetti in partenzaper richiesta sito web
IP sorg. 192.168.0.1Porta sorg. 1074IP dest. 212.48.4.217Porta dest. 80
L’IP di destinazione deve essere pubblico perché quelli privati non sono visibili su Internet!
195.210.91.83
Lookup Table del NAT192.168.0.1:1074 > 5001
IP sorg. 195.210.91.83Porta sorg. 5001IP dest. 212.48.4.217Porta dest. 80
In base al Port Forwardingil pacchetto diventa
IP sorg. 195.210.91.83Porta sorg. 5001IP dest. 10.0.0.2Porta dest. 80
212.48.4.217
Port Forwarding Table80 > 10.0.0.2 : 80
Pacchetti in rispostaper richiesta sito web
IP sorg. 10.0.0.2Porta sorg. 80IP dest. 195.210.91.83Porta dest. 5001
24/25Network Address Translation & Port Forwarding
Il Port Forwarding [3/3]
L’uso di NAT e Port Forwarding garantisce certamente un maggior livello di sicurezza.
Indipendentemente dal NAT e dal Port Forwarding, l’uso di IP pubblici Dinamici assegnati dai contratti Flat di molti Provider ADSL rende inaffidabile la raggiungibilità di qualunque applicativo server non garantendo un servizio stabile (ad esempio un Web Server in una rete aziendale o un Game Server in una rete domestica)
Ulteriori argomenti da approfondire sono i FireWall, le VPN e la nuova frontiera della Virtualizzazione.
25/25
“Cisco Networking Academy Program” – Cisco Systems Inc – Pearson Education Italia – 2004
“Internet e Reti di Calcolatori” – Douglas Comer - Pearson Education Italia - 2000
PC Professionale n. 204 – Gianluca Marcoccia – Mondadori – 2008
Articoli di Wikipedia.it
Documentazione del Modem-ADSL/Router/Switch NetGear DG 814
AONet Srl – www.aonet.it
Network Address Translation & Port Forwarding
Bibliografia e altri riferimenti