Reti Private: VPN e NAT
Reti II
Stefano Leonardi
Reti Private - NAT -1
Reti private
 Rete privata: gruppo di nodi (server, host
router) inaccessibili al traffico di altri gruppi
 Implementazione tipica: affitto di linee tra i
nodi della rete privata
 Vantaggi potenziali
 Riuso degli indirizzi
 Riservatezza
Reti Private - NAT -2
Reti private: vantaggi
 Per “l’impresa”:
- sicurezza
- flessibilità nella gestione dell’indirizzamento:
 ampia disponibilità di indirizzi
 gestione privata dell’univocità
 Per la comunità:
 risparmio di indirizzi
Reti Private - NAT -3
Rete completamente isolata
Linea dedicata
Rete privata
 In questo caso la rete e’ completamente
inaccessibile dall’esterno
Reti Private - NAT -4
Reti ibride
 Linee dedicate connettono i diversi gruppi di
nodi che formano la rete privata
 Indirizzi IP pubblici
 Alcuni o tutti i gruppi sono connessi al resto di
Internet
 Possibilta’ di riservatezza. Es.:
 Traffico privato su linee dedicate
 Traffico da/verso il resto di Internet su linee
condivise
Reti Private - NAT -5
Reti ibride - esempio
Sottorete 1
Sottorete 2
Internet
R1
R2
Linea privata dedicata
 La Sottorete 1 puo’ comunicare con la Sottorete 2 in modo
riservato usando la linea dedicata
 L’accesso a Internet avviene attraverso i router R1 e R2
 La rete usa indirizzi IP validi
Reti Private - NAT -6
Reti virtuali private (VPN)
 Reti completamente private o ibride costose
 Es.: affitto o installazione linee dedicate
 Uso di Internet per la connessione tra
sottoreti non offre riservatezza
 Rete virtuale privata (VPN)
 Non usa linee dedicate
 Traffico da/verso nodi della rete privata criptato
Reti Private - NAT -7
Tecniche per il VPN
 Crittografia
 Datagrammi cifrati alla sorgente e decifrati a
destinazione
 Tunneling
 datagrammi cifrati incapsulati in datagrammi IP
standard come parte dati
 Unica parte visibile: intestazione del
datagramma esterno
 Parte dati contiene il datagramma originario cifrato
 Indirizzi IP sorgente e destinazione originali cifrati
Reti Private - NAT -8
Es.: Datagram da Host1 a Host2
Sottorete 2
Sottorete 1
D2
D2
Internet
D1
Host1
R1
R2
Cifratura
Decifratura
D1
Host2
 Datagramma D1 da Host1 a Host2
 D1 cifrato da R1 --> D2
 D2 giunge a R2 e viene decifrato --> D1
 D1 e’ consegnato a Host2
Reti Private - NAT -9
Esempio - cont.
H1
Parte dati di D1
Cifratura
H2
D1 cifrato
D2
 H2 non e’ cifrato
 Indirizzi IP in H2 sono quelli di R1 ed R2
rispettivamente
 Indirizzi di Host1 e Host2 contenuti in H1 e
percio’ cifrati
Reti Private - NAT -10
Es.: tabella di routing di R1
R1
R3
Internet
R4
R2
Rete
128.10.2.0
Destinazione
Next hop
128.10.2.0
R2
192.5.48.0
Tunnel verso R3
default
Router di ISP
Rete
192.5.48.0
 La entry di default indica che il Datagram e’ inviato a
Internet senza cifratura e tunneling
Reti Private - NAT -11
Indirizzi privati
 La specifica CIDR prevede alcuni blocchi di
indirizzi riservati all’uso su inter-reti private
non direttamente connesse a Internet
 Indirizzi non instradabili
 Un datagram destinato a un indirizzo privato viene
riconosciuto da un router di Internet
Reti Private - NAT -12
Indirizzi privati - cont.
 Blocchi di indirizzi privati
 10.0.0.0/8
 172.16.0.0/12
 192.168.0.0/16
 192.254.0.0/16
 Piu’ sottoreti di Internet possono usare questi
blocchi di indirizzi, purche’ non siano
accessibili dall’esterno
 Una VPN spesso usa indirizzi privati per i
nodi interni
Reti Private - NAT -13
Terminologia
 stub domain: una rete in cui viaggiano pacchetti
provenienti o destinati alla rete stessa ma nessun
pacchetto in transito
 address realm: una rete in cui gli indirizzi identificano
univocamente gli host all’interno di essa
– realm diversi potrebbero avere indirizzi sovrapposti
– Internet è un realm
– un realm può essere connesso ad altri realm... con
precauzione!
 public/global/external network: idirizzi ottenuti da
IANA
 private/local network: idirizzi non ottenuti da IANA
Reti Private - NAT -14
VPN con indirizzi privati
223.190.16.1
10.1.0.1
220.128.3.2
R2
10.2.0.1
R3
Internet
Internet
10.1.0.0/16
10.2.0.0/16
 Le due sottoreti della VPN usano blocchi di indirizzi
privati
 R1 ed R2 hanno bisogno di due indirizzi
globablmente validi per il tunneling
Reti Private - NAT -15
Vantaggi/svantaggi
 Servono meno indirizzi globali
 Problema: gli host delle sottoreti locali non
hanno accesso a Internet
 Per avere accesso a Internet serve un indirizzo IP
globale
 Soluzioni
 Application gateway
 NAT: Network Address Translation - traduzione
degli indirizzi di rete
Reti Private - NAT -16
Application gateway
10.1.0.1
220.16.32.2
H
Internet
Internet
10.1.0.0/16
 H esegue programmi applicativi (appl.
gateway) per ogni servizio disponibile (es.
HTTP, FTP)
 Inoltra verso Internet le richieste dalla rete
interna e verso questa le risposte da Internet
Reti Private - NAT -17
Svantaggi
 Occorre avere un Application gateway per
ogni servizio di rete
 L’application gateway lavora al livello
applicativo con corrispondente rallentamento
dei servizi
 Limita il numero di servizi disponibili a quelli
stabiliti dal gestore di rete
Reti Private - NAT -18
NAT - Network Address Translation
 Il NAT permette un accesso a livello IP
 Requisiti
 Singola connessione a Internet
 Almeno un indirizzo IP valido
 L’uso di Application Gateway permette agli
host l’accesso a determinati servizi ma non a
livello IP
Reti Private - NAT -19
NAT - funzionamento base
10.1.0.1
223.190.16.1
R
D2
Internet
Internet
D1
10.1.0.2
Router NAT
Traduzione per i Datagram da/verso 10.1.0.2
 IP sorgente di D1: 10.1.0.2 --> 223.190.16.1
 IP destinazione di D2: 223.190.16.1 --> 10.1.0.2
 D.: come fa R a capire che D2 e’ diretto a 10.1.0.2?
Reti Private - NAT -20
Problemi implementativi
 Tutti i pacchetti in arrivo ad R da Internet
hanno lo stesso indirizzo di destinazione (es.:
223.190.16.1)
 Come distinguere la destinazione all’interno
della rete locale?
 Es.: D2 e’ la risposta a D1, quindi la
destinazione reale di D2 e’ 10.1.0.2
 Soluzioni
 Tabelle
 NAT multi-indirizzo
 NAT con mappatura delle porte
Reti Private - NAT -21
Tabelle di traduzione NAT
 Servono ad instradare datagrammi in
ingresso all’host interno corretto
 Si ricordi che tutti i datagrammi in arrivo al router
NAT hanno lo stesso IP di destinazione
 Si basano sulla seguente assunzione:
 Se l’host interno H invia un datagramma all’host di
Internet A allora i datagrammi provenienti da A
sono diretti a H
 Funziona se al piu’ 1 host interno puo’ inviare
datagrammi allo stesso host globale
Reti Private - NAT -22
Tabelle NAT - esempio
10.1.0.3
225.12.3.28
R
Internet
Internet
Router NAT
10.1.0.2
Provenienza
Dest. host
225.12.3.28
10.1.0.2
225.12.3.25
10.1.0.3
Tabella di traduzione di R
225.12.3.25
 10.1.0.2 comunica con
225.12.3.28
 10.1.0.3 comunica con
225.12.3.25
Reti Private - NAT -23
Inizializzazione delle tabelle NAT
 Binding statico:
 Manuale: definizione delle corrispondenze tra IP
esterni ed indirizzi privati.
 Datagram in uscita: la prima volta che R riceve un
datagram da 10.1.0.2 per 225.12.3.28 crea l’entry
(225.12.3.28, 10.1.0.2 ) nella tabella NAT soluzione piu’ usata. Non permette l’inizio della
comunicazione da parte di un Host esterno
 Binding dinamico:
 Inizializzazione basata sui nomi di dominio. R
risponde con il proprio indirizzo quando rileva la
richiesta di risoluzione di un nome di dominio
interno alla rete
Reti Private - NAT -24
Inizializzazione delle tabelle NAT,
cont.
 Svantaggio principale: al massimo 1
macchina locale puo’ accedere a una stessa
macchina su Internet
 La comunicazione può iniziare dall’esterno
solo con la configurazione manuale o con la
richiesta di risoluzione di un nome di
dominio
Reti Private - NAT -25
NAT multi-indirizzo
 L’interfaccia esterna del router NAT ha piu’
indirizzi globali associati
 Gli indirizzi globali sono assegnati a rotazione
come indirizzi sorgente dei datagrammi
uscenti
 K indirizzi globali permettono fino a K
connessioni di host interni con la stessa
macchina su Internet
Reti Private - NAT -26
Es.: NAT multi-indirizzo (K=2)
10.1.0.3
223.190.16.1
223.190.16.2
10.1.0.1
10.1.0.4
R
225.12.3.28
Internet
Internet
Router NAT
10.1.0.2
225.12.3.25
Provenienza IP global dest.
Dest. host
225.12.3.28
223.190.16.1
10.1.0.2
225.12.3.28
223.190.16.2
10.1.0.4
225.12.3.25
223.190.16.1
10.1.0.3
Tabella di traduzione di R
 10.1.0.2 e 10.0.0.4
comunicano con
225.12.3.28
 10.1.0.3 comunica
con 225.12.3.25
Reti Private - NAT -27
Modifica dei pacchetti IP
Reti Private - NAT -28
NAT con mappatura delle porte
 Il router NAT individua le destinazioni
(interne) dei datagrammi provenienti da
Internet anche in base al protocollo di
trasporto
 Usato quando i datagrammi trasportano
segmenti TCP o UDP
 Usa anche i numeri di porta
 Necessita’ di estendere le entry della tabella
di traduzione NAT
Reti Private - NAT -29
Es.: Mappatura delle porte
10.1.0.1
10.1.0.3
10.1.0.2
223.190.16.1
R
10.1.0.5
128.10.19.20
Internet
Internet
Router NAT
10.1.0.6
 10.0.0.1 e 10.0.0.5 hanno ciascuno una connessione
HTTP verso 128.10.19.20
 Gli altri host hanno connessioni TCP verso altre
macchine non mostrate in figura
Reti Private - NAT -30
Esempio - tabella NAT
Indirizzo
privato
10.0.0.5
Porta
privata
21023
Indirizzo esterno
128.10.19.20
Porta
esterna
80
Porta
NAT
14003
10.0.0.1
386
128.10.19.20
80
14010
10.0.0.6
26600
207.200.75.12
21
14012
10.0.0.3
1274
128.210.1.5
80
14007
 Tabella NAT
 Le prime due righe corrispondono alla figura precedente
 Manca colonna protocollo di trasporto (TCP in tutti i casi)
Reti Private - NAT -31
Esempio - cont.
 Il router NAT mantiene un numero di porta NAT
distinto per ciascuna connessione
 Due host locali potrebbero scegliere lo stesso
numero di porta privata
 La macchina 128.10.19.20 individua le due
connessioni corrispondenti alle prime due righe
della tabella precedente cosi’:
(223.190.16.1, 14003, 128.10.19.20, 80)
(223.190.16.1, 14010, 128.10.19.20, 80)
Reti Private - NAT -32
Modifica pacchetti TCP
Reti Private - NAT -33
Interazione con altri protocolli
 Il NAT interagisce con i protocolli di strati
superiori e con ICMP
 Il NAT deve:
 Modificare gli header IP
 Modificare i numeri di porta TCP e UDP
 Ricalcolare i checksum (perche’ gli header
cambiano)
 Gestire esplicitamente messaggi ICMP (es. ping)
 Traduzione di numeri di porta in sessioni FTP
Reti Private - NAT -34
Interazione tra NAT e FTP
 Client contatta il Server FTP alla porta 21
 For il trasferimento dati, la parte Client
diventa server e il Server diventa Client
 Il processo Client ottiene una porta dal
sistema operativo e la comunica al server sul
canale di controllo dopo averla tradotta in
ASCII
 Quindi il processo Client attende di essere
contattato dal processo Server
 Problema con NAT?
Reti Private - NAT -35
Interazione tra NAT e FTP
 I Segmenti inviati dal Server al Client recheranno
l’indicazione della porta TCP specificata dal Client
 Il NAT deve intervenire a livello di flusso di dati e
sostituire la porta comunicata dal server con una
porta da lui prescelta
 L’alterazione del flusso dati ha delle ricadute sui
sequence number
 In generale tutte le applicazioni che trasferiscono
informazioni di livello 3 e 4 come dati devono essere
gestite da oportuni gateway per interagire con il NAT.
Reti Private - NAT -36
Interazione tra dispositivi NAT
10.1.0.1
Due dispositivi NAT e tre domini di
indirizzamento
10.1.0.3
223.190.16.1
10.1.0.2
R1
10.1.0.5
192.168.1.1
223.190.16.10
R2
Internet
Router NAT
192.168.1.2
Router NAT
10.1.0.6
192.168.1.3
Rete 1
Rete 2
Reti Private - NAT -37
Interazione tra dispositivi NAT
 Studiare i diversi modelli di traduzione degli
indirizzi per la comunicazione tra host nelle
due reti locali.
Ex: 10.1.0.1 contatta 192.168.1.1
I due indirizzi non sono instradabili nel
dominio globale
Il contatto avviene attraverso i nomi di
dominio
Reti Private - NAT -38
Tabelle NAT
 Binding statico. R1 sostituisce il suo indirizzo ai
pacchetti diretti verso Rete 2.
 R1 ottiene l’indirizzo IP di R2 in fase di risoluzione del
nome di dominio di 192.168.1.1
 I pacchetti hanno come indirizzi sorgente e
destinazione R1 ed R2
 Non vi è modo di distinguere due comunicazioni tra
host di Rete 1 e Host di Rete 2
Reti Private - NAT -39
NAT multi-indirizzo
223.190.16.1
223.190.16.2
223.190.16.3
10.1.0.1
10.1.0.3
10.1.0.2
R1
10.1.0.5
223.190.16.10
223.190.16.11
223.190.16.12
R2
Internet
Router NAT
10.1.0.6
Rete 1
Reti Private - NAT -40
NAT multi-indirizzo
 Tutti le comunicazioni da host su Rete 1 ad
Host su Rete 2
1. Se R1risolve gli indirizzi di dominio interni a
Rete 2 inviando pacchetti DNS con stesso
indirizzo sorgente, ex: 223.190.16.1, R2
deve rispondere sempre con indirizzi diversi
2. Se R1 risolve gli indirizzi di dominio interni a
Rete 2 inviando pacchetti con diverso
indirizzo sorgente, R2 può rispondere
sempre con lo stesso indirizzo
Reti Private - NAT -41
Tabelle di NAT in caso 2
Provenienza IP global dest.
Dest. host
223.190.16.10
223.190.16.1
10.1.0.2
223.190.16.10
223.190.16.2
10.1.0.4
223.190.16.10
223.190.16.3
10.1.0.3
Tabella di traduzione di R1
Provenienza IP global dest.
Dest. host
223.190.16.1
223.190.16.10
192.168.1.1
223.190.16.2
223.190.16.10
192.168.1.2
223.190.16.3 223.190.16.10
192.168.1.1
Tabella di traduzione di R2
Reti Private - NAT -42
Tipica configurazione
Reti Private - NAT -43
Esercizio
Reti Private - NAT -44
Soluzione
Reti Private - NAT -45
Soluzione, cont.
Reti Private - NAT -46
Soluzione
Ciascuna rotta occupa una riga nelle tabelle di
Instradamento.
E’ possibile ottenere delle tabelle più
piccole utilizzando le tecniche CIDR?
Reti Private - NAT -47
Scarica

Slides