Comunicazioni Multimediali II
Comunicazioni Multimediali Lo scopo delle Comunicazioni Multimediali è quello di fornire servizi di telecomunicazione che integrano diversi flussi informativi: dati testo voce e audio immagini fisse ed in movimento Video Applicazioni Mediche (remote diagnostics), educative (distance learning), editoriali (virtual library), bancarie, amministrative Paradigma: fruizione remota di applicativi multimediali
Programma (Prima parte) Applicazioni Aziendali (Multimediali e Web) Tipologie e requisiti di Rete Aziendale Reti VPN IP tunneling e crittografia Indirizzi IP privati e NAT/PAT Firewall (es. IPCOP) Reti WAN MPLS
Applicazioni Aziendali (multimediali e via web)
Tipologie di applicativi e servizi Applicativi di informazione per la fornitura su richiesta di informazioni strutturate e classificate (gestione personale, anagrafiche, tipologia prodotti, etc.) accesso a pagine dinamiche (form) e interrogazioni a basi di dati Applicativi di comunicazione per interagire con il pubblico ovvero gruppi di individui basati su e-mail, liste di discussione, chat, form per inserimento richieste, .. Applicativi transazionali per acquistare prodotti o servizi on line o per trasmettere dati Generalmente basate: o su applicazioni client-server o su WEB
Classificazioni di applicativi/servizi on line Business to Consumer B2C varianti: G2C (Government to Citizen) servizi operativi per clienti Business to Business B2B varianti: G2G (Government to Government) servizi operativi tra aziende
Applicativo WEB esempio
Applicativo WEB
Applicativo WEB
Applicativo WEB
Applicazioni WEB Il web offre enormi potenzialità per lo sviluppo di sistemi informativi Tuttavia ci sono alcuni limiti Il protocollo HTTP è privo di stato E' necessario produrre le risposte dinamicamente Prime soluzioni (inefficaci e inefficienti) CGI: permette ad un server HTTP di interagire con applicazioni Cookie: permette di gestire lo stato Soluzione attuale (efficiente ed efficace) Application server: una piattaforma complessa per lo sviluppo di veri e propri sistemi informativi su web
Web Story Inizialmente Problemi Server Web: obiettivo fornire contenuti “statici” Documenti in formato HTML Problemi Come offrire contenuti “dinamici” ? Ad esempio, pagine costruite dinamicamente a partire da dati memorizzati in un database Come offrire costruire veri e propri sistemi informativi su web? Non solo pubblicazione di dati, ma anche operazioni (es. bonifico bancario) I server Web, inizialmente nati per fornire solo contenuti statici (file .html), molto presto si sono trasformati in contenitori di servizi interattivi. Questi servizi sono forniti da “applicazioni Web”
Wide area network (Internet) Web Story Inizialmente: contenuti statici Il Server web offre solo contenuti statici (file) Le richiesta HTTP dei browser fanno riferimento a file memorizzati nel file system (dell'host sul quale risiede il server Web) File server Questa è l’architettura tradizionale di un server Web con contenuti esclusivamente statici Browser HTTP server File html Wide area network (Internet)
Wide area network (Internet) Web Story Problemi: come offrire contenuti dinamici Il Server web per rispondere ad una richiesta HTTP attiva una applicazione che "crea" la risposta (un documento HTML) Una prima soluzione: Common Gateway Interface (CGI). Un meccanismo che permette ad un server Web di interfacciarsi con una applicazione esterna e per es. ad un database Questa è l’architettura tradizionale di un server Web con contenuti esclusivamente statici database Browser HTTP server Programma CGI Wide area network (Internet)
Web Story Costruire sistemi informativi su Web Il problema principale è la gestione dello stato (es. Autenticazione o più in generale "conversazioni") Il protocollo HTTP è privo di stato Ogni richiesta non ha memoria delle precedenti Per realizzare operazioni complesse serve un meccanismo per mantenere traccia dello stato della sessione tra una richiesta e l’altra
Mantenere lo stato delle sessioni Cookies originariamente introdotti da Netscape meccanismo per tenere traccia dello stato della sessione in applicazioni Web standardizzati successivamente IETF RFC 2109 – HTTP State Attenzione il loro uso è controverso (privacy)
Cookies Idea fondamentale Set-Cookie Cookie Utilizzare le intestazioni HTTP per "nascondere" informazioni che vengono scambiate tra client e server Vengono introdotte due nuove intestazioni Set-Cookie nelle risposte del server per inviare un cookie Cookie nelle richieste del client per restituire i cookie
Gestione della sessione Il segreto sta nel fatto che abbiamo una informazione "nascosta" scambiata tra il server e il client il client si impegna a ritornare questa informazione al server ad ogni richiesta il server usa questa informazione per ricostruire ai propri fini la storia delle interazioni con il client
CGI + Cookie: applicazioni In linea di massima CGI e cookie permettono di realizzare applicazioni complesse Ma questa tecnologia è rudimentale, in particolare è inefficace Applicazioni difficili da mantenere, non scalabili
Application Server Per superare questi problemi (efficienza ed efficacia) sono stati sviluppati gli Application server Application server: Fornisce servizi per lo sviluppo di applicazioni Web complesse Offre un'infrastruttura per la programmazione (librerie) di applicazioni Web complesse Lavora congiuntamente al server HTTP (oppure include un server HTTP)
Application Server Infrastruttura di programmazione minima offerta: decodifica delle richieste del client (es: decodifica di valori sottomessi con una form) gestione del ciclo di vita delle applicazioni gestione delle sessioni gestione di informazioni condivise (dataBase) supporto alla produzione della risposta HTTP (se si usa http esterno)
Application Server Alcuni servizi offerti replicazione e “clustering” per: bilanciamento del carico alta affidabilità (“failover”) gestione trasparente delle sessioni sicurezza servizi Web (“Web services”)
Application Server CHAPTER 2 FIGURE 2 -section 1.2 HTTP Http server browser presentation layer application logic layer connection to resource mgmt layer wide area network (Internet) CHAPTER 2 FIGURE 2 -section 1.2 application server resource management layer
Enterprise Architecture Tipica struttura eBusiness RAID storage (NAS or SAN) Robotic tape library Application servers Database servers Archive server Web server(s) User Intranet Internet Enterprise Architecture
Architettura Three Tier Database Server Web Server Application Server
Three Tier Web These servers may be independent HTTP Request / RPC Call HTTP Request SQL Query HTTP Response Result Set HTTP Response / RPC Return Client Web Browser Internet / Intranet Web Server (presentation) App Server (business logic) Database (resource) These servers may be independent or may run on the same machine
Ridondanza - Clustering FC switch 1 FC switch 2 Raid HW OS Fiber Channel GigabitEthernet Database server 1 server 2 Application
Tipica struttura eBusiness Internet Router / Proxy Firewall /Security Web Server The layers of a typical e-business configuration consists of Cache engines for caching frequently accessed HTTP pages of Web servers Web servers to reply to requests concerning static Web contents A firewall for protecting the mission critical data from unauthorised access or destruction Application servers and database servers to perform transaction and to reply to requests concerning dynamic Web contents Storage systems Firewall Cluster Protected area Application Server Data flow Database Server Database
Disaster Recovery Data Center LAN LAN Database Server Application Server The challenge is to split cluster into two units and host it in different buildings Management station SAN
Tipologie di rete aziendale
Reti aziendali Quattro tipologie: Rete non protetta Rete privata Rete ibrida Rete VPN
Rete Sicura Una RETE INFORMATICA si può definire sicura quando: Consente l’accesso a sistemi, servizi e risorse solo a persone autorizzate Protegge la sicurezza e la privacy delle transazioni da e verso Internet
Rete non Protetta Sottorete 1 Sottorete 2 R1 Internet R2 La Sottorete 1 può comunicare con la Sottorete 2 in modo non protetto usando Internet L’accesso a Internet avviene attraverso i router R1 e R2 Tutti gli host delle 2 sottoreti devono avere indirizzi IP globali
Rete privata Rete (server, host router) inaccessibile al traffico di altre reti Implementazione tipica: affitto di linee tra i nodi della rete privata Vantaggi potenziali Riuso degli indirizzi Riservatezza e protezione
Rete privata Linea dedicata Rete privata In questo caso la rete è completamente inaccessibile dall’esterno
Rete privata: vantaggi Per “l’impresa”: - sicurezza - flessibilità nella gestione dell’indirizzamento: ampia disponibilità di indirizzi gestione privata dell’univocità Per la comunità: risparmio di indirizzi Svantaggio: non fruibilità all’esterno
Rete ibrida Linee dedicate connettono i diversi gruppi di nodi che formano la rete privata Alcuni o tutti i gruppi sono connessi al resto di Internet indirizzi IP pubblici (globali) Possibilità di riservatezza e protezione con collegamento verso l’esterno: Traffico privato su linee dedicate Traffico da/verso il resto di Internet su linee condivise
Linea privata dedicata Rete ibrida Sottorete 1 Sottorete 2 Internet R2 R1 Linea privata dedicata La Sottorete 1 può comunicare con la Sottorete 2 in modo riservato usando la linea dedicata L’accesso a Internet avviene attraverso i router R1 e R2 Gli host che accedono all’esterno usano indirizzi IP globali
Rete virtuale privata (VPN) Cerca di limitare gli svantaggi delle soluzioni precedenti: -Reti non protette l’uso di Internet per la connessione tra sottoreti non offre riservatezza e protezione -Reti completamente private o ibride sono costose affitto o installazione linee dedicate Rete virtuale privata (VPN) Non usa linee dedicate Traffico da/verso nodi della rete privata autenticato, criptato e incapsulato (tunneling)
Rete VPN Sottorete 1 TUNNEL CRITTOGRAFATO Sottorete 2 R1 Internet R2 La Sottorete 1 può comunicare con la Sottorete 2 in modo riservato usando il tunnel sicuro su Internet L’accesso a Internet avviene attraverso i router R1 e R2 R1 ed R2 devono avere indirizzi IP globali Le 2 sottoreti usano indirizzi IP privati (per facilità di riuso)
Tecniche per il VPN Tunneling Crittografia (cifratura) Autenticazione pacchetti incapsulati in pacchetti IP standard come parte dati Crittografia (cifratura) pacchetti cifrati alla sorgente e decifrati a destinazione Autenticazione Solo gli utenti autorizzati accedono alla rete Unica parte visibile: intestazione del pacchetto esterno Incapsulamento o tunneling: la parte dati contiene il pacchetto originario cifrato Indirizzi IP sorgente e destinazione originali cifrati
VPN - Esempio Pacchetto D1 da Host1 a Host2 D1 cifrato da R1 D2 Sottorete 2 Sottorete 1 D2 D2 D1 Host2 Internet R2 R1 D1 Host1 Decifratura Cifratura Pacchetto D1 da Host1 a Host2 D1 cifrato da R1 D2 D2 giunge a R2 e viene decifrato D1 D1 è consegnato a Host2
Tabella di routing di R1 R1 R3 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 pacchetto è inviato a Internet senza cifratura e tunneling
VPN Due tipologie Tre categorie Client-to-LAN LAN-to-LAN Remote Access VPN Intranet VPN Extranet VPN Client-to LAN LAN-to-LAN
Connecting Remote Networks to a Local Network VPN LAN-to-LAN: Local Network VPN Server Computer Internet VPN Tunnel VPN Server Computer Connecting Remote Networks to a Local Network Remote Network
Connecting Remote Users to a Corporate Network VPN Client-to-LAN: Corporate Network VPN Server Computer Internet VPN Tunnel Remote User Connecting Remote Users to a Corporate Network
VPN a confronto: LAN-to-LAN Prevede l’utilizzo di apparati/server che gestiscono la comunicazione VPN e fanno da gateway tra le due reti La crittografia è applicata solo nelle comunicazioni tra i gateway (tunnel-endpoint) Si usa soprattutto crittografia simmetrica (Symmetric Encryption) di tipo “Shared-Key”
VPN a confronto: Client-to-LAN E’ una tipica connessione uno (gateway/Access Point) a molti (Client) La crittografia è applicata alle comunicazioni tra il gateway ed N client La crittografia sietrica (di tipo “Shared-Key”) non è adeguata (distribuzione della chiave in N posti!) Si usano perciò soprattutto tecniche di crittografia asimmetrica (Asymmetric Encryption)
Tre Categorie di VPN WAN VPN Home Office Main Office POP Remote Office Intranet VPN Low cost, tunneled connections with rich VPN services, like IPSec encryption and QoS to ensure reliable throughput Home Office Main Office WAN VPN POP Remote Office Business Partner Extranet VPN Extends WANs to business partners POP Mobile Worker Remote Access VPN Secure, scalable, encrypted tunnels across a public network, client software
Principali problemi delle VPN Quality of service L’incapsulamento (tunneling) puo’ nascondere dei markers per la gestione della QoS Sicurezza Indirizzamento e raggiungibilità Visibilità esterna di servizi interni alla rete Gestione di reti con indirizzi privati: se si vuole collegare insieme 2 reti con lo stesso spazio di indirizzamento bisogna usare un NAT translator (che agisca facendo un pre-routing e un post-routing) Performance guarantees are necessary for companies that want to reduce their dependence on SNA networks. SNA networks provide bandwidth guarantees, so having a way to replace these is important. One of the proposals for integrated services, originally from Van Jacobson, provides for a virtual circuit type connection. I will talk about that further in the Integrated Services talk.
Tecnologie di VPN PPTP- point-to-point tunneling protocol L2F- layer-2 forwarding L2TP- layer-2 tunneling protocol IPSec- IP security protocol GRE- generic routing encapsulation MPLS- multiprotocol label switching
Tunneling IP
Tunneling IP Tecnica per l’attraversamento di una rete IP da parte di traffico non IP o IP con caratteristiche particolari. Strumento principale: incapsulamento pacchetti non IP all’interno di un pacchetto IP
Perchè il Tunneling IP Sicurezza - Tunneling + cifratura permettono di ottenere collegamenti sicuri su reti pubbliche (VPN) Collegamento di router con capacità non disponibili nel resto della rete - Es. Multicast Attraversamento di segmenti IP da parte di pacchetti di protocolli diversi - Es. IPv6 Mobile IP
Crittografia (Cifratura)
Crittografia Encrypted IP Packet
Tipi di chiave (KEY) Key type Description Symmetric Asymmetric La stessa chiave è usata per cifrare e decifrare i dati Protegge i dati dall’intercettazione Asymmetric Consiste in una chiave pubblica e una privata La chiave privata è protetta e confidenziale, la chiave pubblica è liberamente distribuibile Se viene usata la chiave privata per cifrare dei dati, gli stessi possono essere decifrati esclusivamente con la corrispondente chiave pubblica, e vice versa
Symmetric (Private Key) Encryption Original Data Cipher Text Original Data Symmetric encryption: Usa la stessa chiave per cifrare e decifrare E’ spesso referenziata come bulk encryption E’ intrinsicamente vulnerabile per il concetto di “Shared secret”: la chiave è condivisa
Asymmetric (Public Key) Encryption
Public Key Encryption 2 Encrypted Message is Sent Over Network Data Alice Encrypts Message with Bob’s Public Key. 1 3A78 Data Bob Decrypts Message with Bob’s Private Key. 3
Public Key Authentication ~*~*~*~ Message is Sent Over Network 2 ~*~*~*~ Alice Signs Message with Her Private Key. 1 ~*~*~*~ Bob Validates Message is From Alice with Alice’s Public Key. 3
Cifratura del pacchetto IP Parte dati di D1 Cifratura H2 D1 cifrato D2 H2 non è cifrato Indirizzi IP in H2 sono quelli di degli end-point (router o firewall che cifrano l’informazione) sorgente e destinazione (R1 ed R2) rispettivamente Indirizzi di Host1 e Host2 contenuti in H1 e perciò cifrati
Metodi di Cifratura Livello 2: Livello 3: Livello 4: apparecchiature dedicate PPTP Livello 3: cifratura dei pacchetti IP: SKIP, IPSEC Livello 4: cifratura della connessione TCP SSL, SSH
IPSEC Prevede: È trasparente alle applicazioni due tipologie di security header: AH (Autentication Header) e ESP (Encapsulation Security Payload) con alcune funzionalità (es. autenticazione) ridondanti due tipologie di sistemi: hosts e gateway due modalità di “incapsulamento”: transport e tunnel È trasparente alle applicazioni Richiede una modifica dello stack TCP/IP Permette l’associazione delle chiavi a sistemi o utenti Separa la cifratura del traffico dal meccanismo di gestione delle chiavi (IKE)
IPSec Security Headers Encapsulating security payload (ESP) Authentication header (AH) >> IP datagram security <<
ESP Header IP Packet Protected by ESP
ESP Transport Mode Il pacchetto è cifrato a livello di Trasporto Tunnel Mode Il pacchetto è cifrato a livello IP
AH Header IP Packet Protected by AH
AH Transport Mode Il pacchetto è cifrato a livello di Trasporto Tunnel Mode Il pacchetto è cifrato a livello IP
Tunnel IPSEC
Indirizzi IP privati
Indirizzi privati Alcuni blocchi di indirizzi sono riservati all’uso su inter-reti private non direttamente connesse a Internet Gli stessi indirizzi privati possono essere riusati da più organizzazioni Indirizzi non instradabili Un pacchetto destinato a un indirizzo privato viene riconosciuto da un router di Internet
Indirizzi privati Blocchi di indirizzi privati 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 Più sottoreti di Internet possono usare questi blocchi di indirizzi, purchè non siano accessibili dall’esterno Una VPN generalmente usa indirizzi privati per i nodi interni
Terminologia Stub domain: Una rete interna stub domain può essere per esempio una LAN aziendale che utilizza indirizzi IP privati, validi solo all'interno della rete locale. All'occorrenza gli host con indirizzo IP privato possono comunicare con Internet attraverso router con funzionalità NAT e PAT. Public/Global/External network: idirizzi ottenuti da IANA Private/Local network: indirizzi non ottenuti da IANA
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 globalmente validi per il tunneling
Indirizzi privati: 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 Soluzione NAT: Network Address Translation - traduzione degli indirizzi di rete
Network Address Translation (NAT)
NAT - Network Address Translation Associazione (mappatura) di indirizzi pubblici a indirizzi privati Requisiti - Singola connessione a Internet - Almeno un indirizzo IP valido Proposto per la prima volta nel 1994 in risposta alla penuria di indirizzi IP: ad ogni istante, soltanto un sottoinsieme dei nodi della rete interna comunica verso l’esterno Il NAT è ormai usato con molte finalità - Realizzazione di reti non visibili all’esterno - Sicurezza
NAT Public Internet Private Network 128.32.32.68 24.1.70.210 10.0.0.1 BMRC Server Public Internet 24.1.70.210 Gateway 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 Host A Private Network
NAT statico Associazione statica tra un indirizzo globale e uno privato Usato quando un dispositivo deve essere accessibile dall’esterno
NAT dinamico Associazione dinamica tra un indirizzo globale e uno privato Il NAT ha a disposizione un pool di indirizzi globali Allo stesso indirizzo privato possono essere associati indirizzi pubblici diversi nel tempo Scadenza binding determinata da timer Accessibilità di host interno solo se ha iniziato per primo la comunicazione.
NAT dinamico/1 indirizzo globale 10.1.0.1 223.190.16.1 D2 R Internet Internet D1 10.1.0.2 Router NAT Traduzione per i pacchetti 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 Come fa R a capire che D2 è diretto a 10.1.0.2?
Percorso inverso Uscire dallo spazio di indirizzamento privato non è un problema Il problema è il percorso inverso
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? D2 è la risposta a D1, quindi la destinazione reale di D2 è 10.1.0.2 Soluzione: si creano tabelle di traduzione NAT -Esistono diversi casi (le tabelle di traduzione cambiano nei seguenti casi): NAT semplice NAT multi-indirizzo NAT con mappatura delle porte (PAT) o NAT Masquerade
NAT semplice Tutti i pacchetti in arrivo al router NAT hanno lo stesso IP di destinazione (un solo IP pubblico disponibile) Le tabelle di traduzione NAT si basano sulla seguente assunzione: Se l’host interno H invia un pacchetto all’host di Internet A allora i pacchetti provenienti da A sono diretti a H Funziona se al più 1 host interno vuole inviare pacchetti allo stesso host globale al massimo 1 macchina locale può accedere a una stessa macchina su Internet
Tabella di traduzione di R Tabella NAT semplice Internet R 10.1.0.2 Router NAT 225.12.3.25 225.12.3.28 10.1.0.3 225.12.3.28 10.1.0.2 225.12.3.25 10.1.0.3 Provenienza Dest. host Tabella di traduzione di R 10.1.0.2 comunica con 225.12.3.28 10.1.0.3 comunica con 225.12.3.25 la prima volta che R riceve un pacchetto da 10.1.0.2 per 225.12.3.28 crea l’entry (225.12.3.28, 10.1.0.2 ) nella tabella NAT Non permette l’inizio della comunicazione da parte di un Host esterno
NAT multi-indirizzo L’interfaccia esterna del router NAT ha più indirizzi globali associati Gli indirizzi globali sono assegnati a rotazione come indirizzi sorgente dei pacchetti uscenti K indirizzi globali permettono fino a K connessioni di host interni con la stessa macchina su Internet
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.1.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
NAT semplice con mappatura delle porte (PAT o NAT Masquerade) Il router NAT individua le destinazioni (interne) dei pacchetti provenienti da Internet anche in base al protocollo di trasporto (TCP o UDP) e alle relative porte (SAP e DAP) Usa quindi anche i numeri di porta Necessità di estendere le entry della tabella di traduzione NAT con nuovi campi (fields)
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.1.0.1 e 10.1.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
Tabella NAT/PAT Indirizzo privato Porta privata Indirizzo esterno Porta esterna Porta NAT 10.1.0.5 21023 128.10.19.20 80 14003 10.1.0.1 386 14010 10.1.0.6 26600 207.200.75.12 21 14012 10.1.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)
Tabella NAT/PAT 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 così: (223.190.16.1, 14003, 128.10.19.20, 80) (223.190.16.1, 14010, 128.10.19.20, 80)
Discussione su NAT Il NAT interagisce con i protocolli di strati superiori (TCP-UDP-ICMP) Il NAT deve: Modificare gli header IP Modificare i numeri di porta TCP e UDP Ricalcolare i checksum (perchè gli header cambiano) Gestire esplicitamente messaggi ICMP (es. ping) Traduzione di numeri di porta per es. in sessioni FTP
Discussione su NAT NAT altera il principio di comunicazione End-to-End Principle perchè modifica i pacchetti. La sostituzione degli indirizzi IP/porte implica il ricalcolo del checksum Viene usata la tabella di traduzione NAT per risalire a sorgente e destinatario NAT works bets with applications that make connections to the outside world using TCP connections. It has trouble with datagram protocols.
TCP Protocol Diagram Client Server IP Header TCP Header SYN SYN flag indicates a new TCP connection Client Server IP Header . . . . . SYN, ACK Checksum ACK Source IP Address Destination IP Address . . . . . Packet 0:50 ACK 0:50 TCP Header FIN Source Port Number Dest Port Number FIN, ACK Sequence Number . . . . .
TCP con NAT PROTO SADDR DADDR SPORT DPORT FLAGS CKSUM TCP 10.0.0.3 128.32.32.68 1049 80 SYN 0x1636 1 1. Host tries to connect to web server at 128.32.32.68. It sends out a SYN packet using its internal IP address, 10.0.0.3. PROTO SADDR DADDR SPORT DPORT FLAGS CKSUM TCP 24.1.70.210 128.32.32.68 40960 80 SYN 0x2436 2 2. NAT gateway sees SYN flag set, adds new entry to its translation table. It then rewrites the packet using gateway’s external IP address, 24.1.70.210. Updates the packet checksum. Internet Server NAT Gateway PROTO SADDR DADDR SPORT DPORT FLAGS CKSUM TCP 128.32.32.68 10.0.0.3 80 1049 SYN, ACK 0x7841 4 4. NAT gateway looks in its translation table, finds a match for the source and destination addresses and ports, and rewrites the packet using the internal IP address. PROTO SADDR DADDR SPORT DPORT FLAGS CKSUM TCP 128.32.32.68 24.1.70.210 80 40960 SYN, ACK 0x8041 3 3. Server responds to SYN packet with a SYN,ACK packet. The packet is sent to the NAT gateway’s IP address. 128.32.32.68 10.0.0.3 10.0.0.1 24.1.70.210 NAT Translation Table Client Server IPAddr Port IPAddr Port NATPort 10.0.0.3 1049 128.32.32.68 80 40960 . . . .. . . . .. . .
Interazione tra dispositivi NAT Due dispositivi NAT semplice 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 NAT semplice Rete 2 Rete 1
Tabella di traduzione di R Tabelle NAT semplice R1 sostituisce il suo indirizzo 223.190.16.1 ai pacchetti diretti verso l’esterno. R2 sostituisce il suo indirizzo 223.192.16.10 ai pacchetti diretti verso l’esterno. 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 2e quindi di comunicazione tra le 2 reti 192.168.1.1 10.1.0.?? Provenienza Internal Dest. host Tabella di traduzione di R
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
Tabelle di NAT multi-indirizzo 223.190.16.10 10.1.0.2 10.1.0.4 Provenienza Dest. host Tabella di traduzione di R1 IP global dest. 223.190.16.1 223.190.16.2 223.190.16.3 10.1.0.3 192.168.1.1 192.168.1.2 Tabella di traduzione di R2 Sono Possibili tutte le comunicazioni da host su Rete 1 ad Host su Rete 2
Server Load Balancing con NAT Public Internet NAT Gateway (Virtual Server) Server Private Intranet Server Server Un solo indirizzo IP per il server WEB NAT fa il redirect delle richieste su più server interni distribuendo il carico (workload balancing clustering) Offre il vantaggio di alta affidabilità
Reti Load Balancing con NAT Service Provider 1 Private Intranet NAT Gateway Network X Service Provider 2 Le connessioni dalla rete privata sono indirizzate selettivamente (split) a 2 diversi Service Providers Bilanciamento di carico a livello di connessione