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