Reti II Stefano Leonardi Reti Private: VPN e NAT Reti II Stefano Leonardi Reti Private - NAT
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
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
Rete completamente isolata Linea dedicata Rete privata In questo caso la rete e’ completamente inaccessibile dall’esterno Reti Private - NAT
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
Linea privata dedicata Reti ibride - esempio Sottorete 1 Sottorete 2 Internet R2 R1 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
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
Tecniche per il VPN Crittografia Tunneling 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
Es.: Datagram da Host1 a Host2 Sottorete 2 Sottorete 1 D2 D2 D1 Host2 Internet R2 R1 D1 Host1 Decifratura Cifratura 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
Esempio - cont. H2 non e’ cifrato 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
Es.: tabella di routing di R1 Internet R4 R2 Destinazione Next hop 128.10.2.0 R2 Rete 128.10.2.0 Rete 192.5.48.0 192.5.48.0 Tunnel verso R3 default Router di ISP La entry di default indica che il Datagram e’ inviato a Internet senza cifratura e tunneling Reti Private - NAT
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
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
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
VPN con indirizzi privati 223.190.16.1 220.128.3.2 10.1.0.1 10.2.0.1 R2 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
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
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
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
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
NAT - funzionamento base 10.1.0.1 223.190.16.1 D2 R 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
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
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
Tabella di traduzione di R Tabelle NAT - esempio 10.1.0.3 225.12.3.28 R Internet Internet Router NAT 10.1.0.2 225.12.3.25 Provenienza Dest. host 10.1.0.2 comunica con 225.12.3.28 10.1.0.3 comunica con 225.12.3.25 225.12.3.28 10.1.0.2 225.12.3.25 10.1.0.3 Tabella di traduzione di R Reti Private - NAT
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
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
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
Es.: NAT multi-indirizzo (K=2) 10.1.0.3 223.190.16.1 223.190.16.2 10.1.0.1 225.12.3.28 10.1.0.4 R Internet Internet Router NAT 10.1.0.2 225.12.3.25 Provenienza IP global dest. Dest. host 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 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 Reti Private - NAT
Modifica dei pacchetti IP Reti Private - NAT
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
Es.: Mappatura delle porte 10.1.0.1 128.10.19.20 10.1.0.2 223.190.16.1 10.1.0.3 R Internet Internet 10.1.0.5 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
Esempio - tabella NAT Indirizzo privato Porta privata Indirizzo esterno Porta esterna Porta NAT 10.0.0.5 21023 128.10.19.20 80 14003 10.0.0.1 386 14010 10.0.0.6 26600 207.200.75.12 21 14012 10.0.0.3 1274 128.210.1.5 14007 Tabella NAT Le prime due righe corrispondono alla figura precedente Manca colonna protocollo di trasporto (TCP in tutti i casi) Reti Private - NAT
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
Modifica pacchetti TCP Reti Private - NAT
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
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
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
Interazione tra dispositivi NAT Due dispositivi NAT e tre domini di indirizzamento 10.1.0.1 223.190.16.1 192.168.1.1 10.1.0.3 223.190.16.10 10.1.0.2 R1 R2 192.168.1.2 10.1.0.5 Internet Router NAT 10.1.0.6 Router NAT 10.1.0.6 192.168.1.3 Rete 2 Rete 1 Reti Private - NAT
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
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
NAT multi-indirizzo 223.190.16.1 223.190.16.2 223.190.16.3 223.190.16.10 223.190.16.11 223.190.16.12 10.1.0.1 10.1.0.3 10.1.0.2 R2 R1 Internet 10.1.0.5 Router NAT 10.1.0.6 Rete 1 Reti Private - NAT
NAT multi-indirizzo Tutti le comunicazioni da host su Rete 1 ad Host su Rete 2 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 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
Tabella di traduzione di R1 Tabella di traduzione di R2 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 192.168.1.1 223.190.16.10 Tabella di traduzione di R2 Reti Private - NAT
Tipica configurazione Reti Private - NAT
Esercizio Reti Private - NAT
Soluzione Reti Private - NAT
Soluzione, cont. Reti Private - NAT
Soluzione Ciascuna rotta occupa una riga nelle tabelle di Instradamento. E’ possibile ottenere delle tabelle più piccole utilizzando le tecniche CIDR? Reti Private - NAT