RETI INTERNET MULTIMEDIALI Introduzione ai protocolli ed alla rete Internet Il documento è adattato da materiale cortesemente messo a disposizione dal Prof. Stefano Paris
INTERNET Introduzione al paradigma e alla rete
internet : il paradigma Rete di reti Rete logica indipendente dalle tecniche trasmissive utilizzate Virtualizzare la rete e rendere le applicazioni indipendenti dai dettagli del trasporto Una piattaforma per lo sviluppo delle applicazioni, indipendente dall evoluzione delle tecnologie di rete (WAN, LAN) Basata su protocolli standard sia per l interlavoro tra reti che per le applicazioni Il protocollo di rete non presuppone servizi particolari dai livelli protocollari sottostanti (nessuna garanzia di consegna o riscontri) Standard pubblicamente disponibili
Il modello a clessidra email WWW phone... SMTP HTTP RTP... TCP UDP IP ethernet PPP CSMA async SDH... copper fiber radio...
Internet: la rete mondiale Un insieme di reti indipendenti interconnesse Nata da un nucleo iniziale di stampo accademico e no-profit, migrato ad utilizzi universali Ciascuna rete interconnessa ha un proprio: finanziamento gestione politica d uso Impiega una famiglia di protocolli comune, detta comunemente TCP/IP
Modello di interconnessione La rete logica è ottenuta interconnettendo reti fisiche e realizzando l interlavoro a livello 3 del modello OSI Router: nodi che svolgono il compito di interconnettere le reti fisiche, instradando verso la destinazione l informazione contenuta nei pacchetti di livello 3 OSI, secondo la modalità datagram (senza connessione-store&forward- best-effort) Host: nodi terminali che espletano compiti che corrispondono a tutti i livelli della pila OSI Packet Payload Header A C B
Capacità di garantire qualità Paradigmi di commutazione ALTA Circuiti Dedicati Circuiti Commutati Commutazione di Circuito Circuiti Virtuali Permanenti Commutazione di Pacchetto Circuiti Virtuali Commutati BASSA BASSA Capacità di condividere le risorse Commutazione Datagramma ALTA Risorse: Capacità trasmissiva, memoria, capacità elaborativa Qualità del Servizio: caratteristiche del trasporto in termini di: ritardo, varianza, volume di dati trasferiti nell unità di tempo, tasso di perdita, disponibilità della comunicazione
Pila internet e modello OSI Application Presentation Application Application SMTP, NNTP Telnet, SNMP, HTTP Session Transport Transport TCP UDP Network Network IP ICMP Data Link Physical OSI stack Internet stack
Esempio
Pila completa Video VoIP Telnet FTP HTTP SMTP End User Applications Application SNMP RTSP DNS RTP/RTCP DHCP SIP RIPv1 RIPv2 OSPF RSVP BGP Network Management & Control Applications SCTP UDP TCP NAPT Transport MobileIP IPSec IPv6 IGMP IPv4 ICMP ICMPv6 NAT Internet ARP/RARP Some Internet protocols & their dependencies Some links represent mostly used configuration Data Link IEEE 802, PPP Physical Layer Twisted Pairs, Coax, Fiber, Radio, Powerline,.. Data Link & Physical
Protocolli di controllo e di trasporto dati
Il medioevo di Internet Fonte: Prof. Jim Kurose 2008
Il sistema di interconnessione
Peering Interconnessione tra ISP: Peering e Transito Due ISP offrono mutuamente la connettività tra i loro clienti (solitamente senza compenso) Non transitivo Transito Un ISP offre connettività verso ogni rete ad esso nota (dietro compenso)
Transito
Peering
Tipologie di peering Peering pubblico Ci si connette ai Peer attraverso un IXP Peering privato La connessione col Peer avviene con collegamento diretto Paid peering Connessione tra Peer in cui una delle due parti chiede un compenso (rapporto sbilanciato)
Depeering A luglio 2013 Telecom Italia ha interrotto unilateralmente le interconnessioni esistenti tra sé e quasi tutte le altre reti italiane: depeering Nuovo criterio per il peering settlement free: [essere] suoi Pari, ossia Operatori di Telecomunicazioni rispondenti a criteri quali, /inter alia/, volumi bilanciati, una base di clienti finali significativa, traffico elevato, punti di ridondanza, e altro Peering solo privato Peering a pagamento in alternativa
Architettura Internet alle origini http://conferences.infotoday.com/documents/150/2012cdnsummit-deepfield.pdf
Architettura Internet attuale Più piatta e densamente interconnessa Disintermediazione tra fornitori di contenuti e eyeball providers (ISP di accesso) Modelli commerciali complessi tra fornitori di contenuti, di transito e consumatori IXP: Internet exchange Points www.monkey.org/~labovit/papers/gpf_2011.pdf
Tier 1, IXP e CDN Rete gerarchica Al centro un numero piccolo di grandi reti interconnesse tier-1 commercial ISPs (es. Verizon, Sprint, AT&T, Qwest, Level3) con copertura nazionale e internazionale Grandi Content Delivery Networks - CDN (Google, Akamai, Microsoft) Si comportano in modo paritetico e non prevedono compensi Hanno accesso a tutte le rotte Internet Tier-1 ISPs & Grandi CDN si interconnettono (peer) privatamente o presso gli Internet exchange points IXPs large content distributor (e.g., Akamai) IXP Tier 1 ISP IXP large content distributor (e.g., Google) Tier 1 ISP Tier 1 ISP
Fonte: elaborazione Analsysis Mason, 2011 Catena del valore di Internet The Internet is a network of networks interconnected with one another, and operated by different Internet providers Five different roles in the value chain of content delivery over the Internet CA: Content Aggregator OTT: Over The Top CA Telco/ISP ISP: Internet Service Provider TSP: Transit Service Provider OTT Telco/ISP TSP
Player di Internet OTT Content Aggregator (CA) TELCO/ISP Transit service Provider (TSP) End user Offre agli end-user dei Telco uno o più servizi, sfruttando la connettività della rete Internet Attraverso una rete di delivery rende maggiormente efficace la fruizione dei contenuti e sei servizi OTT da parte degli end user Il Telco offre agli end-user suoi clienti un accesso ad Internet attraverso una linea trasmissiva dati Distribuisce traffico da e verso una rete di terza parte, sfruttando la propria infrastruttura di rete in fibra ottica high-speed di dimensione internazionale L end-user (eyeball-isp) accede ad Internet attraverso un dispositivo fisso o mobile connesso ad Internet tramite un Telco
Evoluzione del paradigma Fase 1 Fase 2 Fase 3 Prezzi dell accesso costanti -Banda commodity - forse non l accesso - certamente non il mobile www.monkey.org/~labovit/papers/gpf_2011.pdf Prezzi dell accesso costanti -Banda commodity - forse non l accesso -certamente non il mobile Aumento costi infrastruttura (porte, transito, ) Prezzi dell accesso costanti -Banda commodity - forse non l accesso -certamente non il mobile Miliardi di ricavi per servizi OTT (Cloud) Pubblicità su Internet Provider in cerca di margini e in forte competizione per la stessa torta
Netflix paga Comcast Il 24 febbraio 2014 Netflix ha raggiunto un accordo con il maggiore cable-operator americano, Comcast, per ottenere un trattamento privilegiato del traffico video streaming a fronte di un compenso (Paid Peering) Primo atto a valle di una sentenza a favore di Verizon vs Netflix sulla «Network Neutrality»
Top 10 Traffico Internet I primi 10 player di Internet generano una quota notevole del traffico totale Negli ultimi anni player che rivestono un ruolo importante nei contenuti hanno scalato la classifica
Traffico video in grande evidenza Negli Stati Uniti la percentuale di traffico Internet nell ora di punta è principalmente imputabile al video streaming di Netflix Google (incluso Youtube) vale quasi il 25% del traffico in US
P2P e direct download Nel 2007 il traffico P2P contabilizzava il 30% del traffico Internet Successivamente soppiantato da direct download http://www.deepfield.net/blog/
Tendenza del traffico Internet 1 EB = 1000000000000000000B = 10 18 bytes = 1000petabytes = 1 million terabytes = 1 billion gigabytes http://www.cisco.com/en/us/solutions/collateral/ns341/ns525/ns537/ns705/ns827/vni_hyperconnectivity_wp.html Il traffico cresce complessivamente Video e mobile sono i contributi in maggior crescita Il cloud computing si sta inserendo come elemento di innovazione importante http://www.caida.org/workshops/wie/1212/slides/wie1212_selalufcalderwood.pdf
Tendenza del traffico (US) https://www.sandvine.com/downloads/general/global-internet-phenomena/2013/sandvine-global-internet-phenomena-report-1h-2013.pdf
Tendenza del traffico (EU) https://www.sandvine.com/downloads/general/global-internet-phenomena/2013/sandvine-global-internet-phenomena-report-1h-2013.pdf
Tendenza del traffico VoIP Il traffico telefonico a commutazione di circuito (TDM) è ancora l elemento portante dei ricavi degli operatori di telecomunicazioni fisse e mobili Inizialmente il VoIP come strumento di efficienza interna per tratte a lunga distanza o come nicchia per chiamate a lunga distanza con scarsi requisiti di qualità In atto una trasformazione progressiva dei ricavi verso i servizi dati a larga banda Spinta indotta dai player OTT (in particolare Skype, ora Microsoft) per la telefonia Operatori Mobili e VoIP http://www.telegeography.com/page_attachments/products/website/research-services/telegeography-report-database/0004/6341/tg_executive_summary.pdf
Nuovi strumenti per i messaggi
SMS e nuova messaggistica Gli SMS rappresentano una fonte importante di ricavi per gli operatori mobili, ma Internet offre una moltitudine di vie sostitutive dirette oltre all Email: Instant Messaging e Chat in modalità isolata (MSN, Yahoo Messanger, Whatsapp, ) o inseriti in suite più ampie di comunicazione unificata (es. Skype) o di Social networking (es. Facebook) A questi si affiancano strumenti che cavalcano paradigmi innovativi che superano la logica della messaggistica tra persone (uno a uno o uno a molti per mailing massivi) es. Twitter Tutte queste novità trasformano traffico e ricavi della messaggistica
Ricavi e traffico per i messaggi http://www.slideshare.net/patricksteemers/mobile-messaging-trends-capgemini-consulting-13116899
Ricavi core dei Telco La trasformazione dei ricavi core dei telco impatta pesantemente lo sviluppo delle reti: Il bilanciamento di ricavi ed investimenti per potenziare le infrastrutture è chiave per determinare lo sviluppo Source: European regulators, Mobile operators, Barclays Capital, STL Partners assumptions and analysis http://www.telco2research.com/articles/pr_european-mobile-future-brutal_full http://www.telco2research.com/articles/20131126
Interventi nelle reti mobili http://www.telco2research.com/articles/eb_disruptive-innovations-mobile-broadband_summary
Tendenza del traffico Video IPTV Consegna gestita Enfasi sulla qualità TV lineare e VOD Servizi a pagamento IP video Consegna best-effort Qualità non garantita Principalmente on-demand A pagamento o free La consegna di contenuti TV tradizionali in rete a larga banda aiuta a contenere il churn e ad aumentare l ARPU http://blog.idate.fr/wp-content/uploads/2012/08/three-patterns-for-video-distribution-in-the-long-term.jpg
Il fenomeno Netflix
Il fenomeno Netflix Netflix è nata come azienda che distribuiva contenuti video su supporto DVD con consegna postale ed ha progressivamente abbandonato questo business per concentrarsi sullo streaming on-line in Internet di contenuti video e TV premium (tariffazione flat all-you-can-view) La grande crescita del traffico impone grande sforzo nell usare forme di codifica e di distribuzione in rete del traffico: uso spinto delle CDN commerciali ed introduzione di una propria CDN http://ptt.br/pttforum/6/doc/netflix-open-connect-network-br-december-2012-v1.pdf http://www.digitalsociety.org/2010/12/division-of-labor-between-broadband-and-cdn/
Il fenomeno Netflix
Altre tendenze emergenti Internet of things Smart mobile devices Social technology Pervasive video Cloud computing services 1 miliardo di smartphone nel Q3Y12 122 milioni di tablet venduti nel 2012 1 Miliardo di utenti attivi 4 miliardi di video visionati ogni giorno nel 2012 ogni minuto vengono caricate 60 ore di video 200 milioni di utenti attivi al mese 175 milioni di membri
Ecosistemi OTT dominanti
IPv4 Internet Protocol (version 4)
Reti TCP/IP La suite di protocolli di Internet definisce un architettura di internetworking Mediante quest insieme di protocolli è possibile collegare reti diverse e calcolatori diversi per il trasferimento di informazioni e per la creazione di servizi avanzati di comunicazione Il protocollo base è l Internet Protocol (IP)
IP: le funzionalità locali richieste IP aggiunge delle funzionalità di comunicazione che si basano su funzionalità disponibili a livello di rete locale Si assume un insieme minimo di funzionalità di trasferimento locale: indirizzamento locale (indirizzo fisico) trasferimento di pacchetti a destinazione in ambito locale (anche non garantito) capacità di indirizzamento broadcast
IP: le funzionalità base Assegna un indirizzamento universale Trasferisce pacchetti in modo datagram Non garantisce né l integrità né la consegna né la sequenza dei pacchetti Consegna best effort dei pacchetti Frammenta i pacchetti se il livello locale lo richiede (sia alla sorgente che nei router intermedi) Ricostruisce i frammenti solo in ricezione
L architettura IP Il protocollo IP ha le funzionalità di un protocollo di livello 3 (rete) e si appoggia sopra i livelli delle reti che serve Tipico l esempio delle reti locali (LAN): G 3 IP IP IP 2 LLC MAC LLC MAC LLC MAC LLC MAC 1 PHY PHY PHY PHY LAN A LAN B
Lo stack TCP/IP base L4 TCP UDP L3 routing ICMP IP ARP Livelli inferiori
Indirizzi e nomi Gli indirizzi IP sono assegnati su base globale Internet fa uso anche di nomi simbolici che sono anch essi assegnati su base globale (sistema DNS) IANA (Internet Assigned Numbers Authority) 1998 (Jon Postel) ICANN (Internet Corporation for Assigned Names and Numbers)
Gli indirizzi IP Sono costituiti da 32 bit solitamente raggruppati in gruppi di 8 bit (byte) 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 I byte sono usualmente riportati in notazione decimale divisi da punti (dotted decimal notation) e possono assumere valori compresi tra 0 e 255 131.175.21.1
Gli indirizzi IP L indirizzo è diviso in due parti NetID HostID La NetID (indirizzo di rete) identifica la rete La HostID (indirizzo di host) identifica l host nella rete Tutti gli host all interno della stessa rete hanno lo stesso indirizzo di rete (NetID) Rete Host
Le classi Primo ottetto Classe A (0-127) 0 NetID Indirizzamento Classful 8 16 24 32 HostID Classe B (128-191) 10 NetID HostID Classe C (192-223) 110 NetID HostID Classe D (224-239) 1110 Classe E (240-255) 1111 Multicast Experimental/Future use
Indirizzi speciali Indirizzo di rete L'indirizzo con il campo HostID posto a 0 serve ad indicare la rete il cui indirizzo è contenuto nel campo NetID (usato solo nelle tabelle di instradamento) Esempio: rete in classe B: 131.175.0.0 rete in classe C: 193.17.31.0 193.17.31.55 193.17.31.76 193.17.31.45 193.17.31.0
Indirizzi speciali Indirizzo broadcast diretto: Un indirizzo con il campo HostID di soli 1 assume il significato di indirizzo broadcast della rete indicata nel campo NetID. Esempio: 193.17.31.255 193.17.31.55 193.17.31.76 193.17.31.45 193.17.31.0
Indirizzi speciali Indirizzo broadcasting limitato: Un indirizzo di tutti 1 (255.255.255.255) assume il significato di indirizzo broadcast nella stessa rete di chi invia il pacchetto. Il pacchetto non può oltrepassare dei router 193.17.31.55 193.17.31.76 193.17.31.45 193.17.31.0
Indirizzi speciali Quando il campo NetID è posto a zero, l'indirizzo indica l'host il cui indirizzo è contenuto nel campo host sulla stessa rete del mittente. Esempio: 0.0.21.173 (in una rete in classe B) Se anche il campo host è posto a zero l'indirizzo indica il mittente stesso del pacchetto (usato quando l host non conosce il proprio indirizzo). Esempio: 0.0.0.0 Infine, l'indirizzo con il primo ottetto pari a 127 e gli altri campi qualsivoglia indica il loopback sullo stesso host (usato nei sistemi operativi per testare le funzionalità di rete). Esempio: 127.0.0.0
Indirizzi Speciali: riassunto Questo host Host su questa rete Broadcast Limitato Tutti 0 Tutti 0 Tutti 1 HostID Broadcast Diretto NetID Tutti 1 Loopback 127 Qualunque cosa Primi due indirizzi possono essere usati solo durante lo startup di sistema, e non rappresentano mai un indirizzo di destinazione valido Il 3 e 4 indirizzo non rappresentano mai un indirizzo sorgente valido Il 5 indirizzo non dovrebbe mai comparire in rete
Indirizzamento IP L indirizzo IP indica l interfaccia (ovvero il collegamento) di un dispositivo con la rete Se un dispositivo ha più interfacce su più reti deve avere un indirizzo per ciascuna interfaccia Rete 131.175.0.0 Rete 131.30.0.0 131.175.1.254 131.30.18.254 131.175.23.24 131.30.78.4
Subnetting RFC 950, del 1985, introduce con il concetto di subnet un terzo livello nella organizzazione gerarchica degli indirizzi IP (rete, sottorete, host) Il subnetting aggiunge un grado di flessibilità e elimina la rigidità e i limiti del classful addressing Tutti gli host collegati alla stessa rete fisica (ossia non vi sono router o dispositivi di interconnessione più complessi che li separano), hanno lo stesso indirizzo di sottorete (subnet) Con una granularità più fine nell assegnazione degli indirizzi riduco lo spreco nell uso dello spazio d indirizzamento Con il subnetting il dettaglio della ripartizione in sottoreti è noto solo alla periferia della rete per evitare la crescita delle tabelle di routing Questo è possibile solo se le sottoreti che partizionano una data Net sono localizzate nella stessa regione della rete
Supernetting Molte organizzazioni hanno più di 256 host e molte meno ne hanno oltre 1600: anziché assegnare ad un organizzazione un indirizzo di classe B, si assegnano più indirizzi di classe C contigui Gli indirizzi di classe C contigui condividono i MSB dell indirizzo: questo corrisponde all identificazione di una supernet Si aumenta la quantità di informazione scambiata, memorizzata ed elaborata dai router Il supernetting si applica solo a indirizzi di classe C
Esempio di supernet
Subnet Mask La Subnet mask indica la porzione dell indirizzo IP che interessa Net e subnet Alternativamente, si può usare un formalismo che identifica la lunghezza del prefisso :/N Network number Host number Class B address 111111111111111111111111 00000000 Subnet mask (255.255.255.0) Network number Subnet ID Host ID Subnetted address
Variable Length Subnet Masks RFC 1009 del 1987 Lo stesso network ID ammette diverse subnet mask per le proprie subnet Applicazione ricorsiva della regola delle subnet mask senza confini pre-assegnati bbbbbbbb.bbbbbbbbb.xxxx0000.00000000 sottorete #x bbbbbbbb.bbbbbbbbb.xxxxyyyy.0000000 sottorete #x y Vantaggi: possibilità di ritagliare la dimensione delle subnet in modo mirato, riducendo al minimo l inefficienza nell uso dello spazio di indirizzamento possibilità di sommarizzare gli indirizzi in modo da ridurre le dimensioni delle tabelle di instradamento L instradamento si basa sulla regola del Longest Prefix Match: se più regole di instradamento sono applicabili, si utilizza quella con la maschera più lunga
Il pacchetto/datagramma IP (RFC 791) Header 1 32 bit Ver HLEN TOS Total length Fragment Identification Flags Frag. Offset TTL Protocol Header Checksum Source address Destination address 20 BYTE IP Options (if any) Padding Dati (Payload)
Il pacchetto IP Ver (4 bit) Version: indica la versione del protocollo; quella che noi studiamo è la versione 4 HLEN (4 bit) Header length: indica la lunghezza dell header del pacchetto (comprese opzioni e padding) espressa in parole da 32 bit (4 byte). Minimo valore valido: 5 TOS (8 bit) Type Of Service: un campo che adesso prende il nome di DS field (RFC 2474) e può essere utilizzato per la gestione delle priorità nelle code dei router Total length (16 bit) Indica la lunghezza totale del pacchetto in byte: valore massimo 2 16 =65536; una volta sottratta la dimensione dell header, si ha la lunghezza del payload
TOS: raccomandazione IANA http://www.iana.org/assignments/ip-parameters
TOS: raccomandazione IANA http://www.iana.org/assignments/ip-parameters
Evoluzione delle classi di servizio
RFC2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers, 2008 Utilizza il campo TOS dell header IPv4 (campo Traffic Class per IPv6) per attuare le strategie di QoS in reti IP, secondo il modello DiffServ L ottetto viene rinominato DS (Differentiated Services) Il trattamento differenziato dei pacchetti IP secondo il Per Hop Behavior (PHB) è basato sul valore del DSCP assegnato ad una classe di traffico IP Explicit Congestion Notification è stato introdotto successivamente nella RFC3168 ( The Addition of Explicit Congestion Notification (ECN) to IP, 2001) DiffServ Code Point (DSCP) IP ECN
Valori del campo DSCP EF: Expedited Forwarding (RFC3246) (DSCP 46) CSx: Class Selector (RFC2474) Ove x corrisponde all valore IP Precedence (1 7) (DSCP 8, 16, 24, 32, 40, 48, 56) AFxy: Assured Forwarding (RFC2597) In cui x corrisponde al valore IP Precedence (si usano solo valori tra 1-4 per AF) e y corrisponde al valore di Drop Preference (1, 2 o 3) valori più elevati indicano maggior esposizione alla perdita (DSCP 10/12/14, 18/20/22, 26/28/30, 34/36/38) BE: Best Effort o Default Marking Value (RFC2474) (DSCP 0)
Mappatura secondo RFC4594 Configuration Guidelines for DiffServ Service Classes, http://tools.ietf.org/html/rfc4594
Mappatura a più livelli 802.1Q/p VLAN Frame Format IPv4 ToS Bits IP Precedence (IPP) Format DSCP Format
Mappatura QoS in reti aziendali
La frammentazione Identification, Flags, Fragment Offset Alcuni protocolli di livello inferiore a cui IP si appoggia richiedono una dimensione massima del pacchetto (MTU) inferiore a 65536 byte (tipico l esempio di Ethernet che accetta pacchetti fino a 1500 byte) Prima di passare il pacchetto al livello inferiore, IP divide il pacchetto in frammenti, ciascuno con il proprio header I frammenti verranno ricomposti dall entità IP del destinatario mentre la frammentazione può essere fatta da sorgente o da router intermedi (anche più volte) I campi Identification, Flags e Frag. Offset sono usati per questo scopo
La frammentazione G IP IP frag. IP LL (A) LL (A) LL (B) LL (B) Rete A Rete B
La frammentazione Identification (16 bit) Campo che identifica tutti i frammenti di uno stesso pacchetto in modo univoco. E scelto dall IP Sender Frag. Offset (13 bit) I byte del pacchetto originale sono numerati da 0 al valore della lunghezza totale. Il campo Frag. Offset identifica la posizione del frammento nel datagramma IP originale (in multipli di 8 byte). Il primo frammento ha Offset pari a 0. Ad esempio: se un pacchetto di 2000 byte viene diviso in due da 1000 il primo frammento avrà un offset pari a 0 e il secondo pari a 1000 (ovvero: nel campo Frag. Offset del secondo troveremo scritto 1000/8=125)
La frammentazione Flags (3 bit) 0 D M Il primo bit è riservato e deve contenere 0 il bit M (More) è pari a 0 solo nell ultimo frammento (last fragment), ad 1 negli altri (more fragments) il bit D viene posto a 1 quando non si vuole che lungo il percorso venga applicata la frammentazione in questo caso se la frammentazione fosse necessaria non viene applicata ma viene generato un messaggio di errore
TTL (Time To Live) (8 bit) Il campo TTL viene settato ad un valore elevato da chi genera il pacchetto e viene decrementato da ogni router attraversato Se un router decrementa il valore e questo va a zero, il pacchetto viene scartato e viene generato un messaggio di errore verso la sorgente IP TIME TO LIVE PARAMETER The current recommended default time to live (TTL) for the Internet Protocol (IP) is 64 [RFC791, RFC1122] http://www.iana.org/assignments/ip-parameters TTL=250 TTL=2 TTL=1 messaggio d errore: time exceeded TTL=0
Checksum (16 bit) Serve per individuare eventuali errori nell header (e solo nell header) Viene calcolato dal mittente e controllato dal destinatario (ad ogni hop) + + + campo checksum (si assumono tutti 0) = somma L header viene diviso in blocchi di 16 bit Viene fatta la somma modulo 2 dei bit corrispondenti in ciascun blocco Il risultato viene complementato e quindi inserito nel campo checksum complemento a 1
Checksum In ricezione si calcola la somma e si verifica il complemento: + + + checksum se sono tutti 0 il pacchetto viene accettato altrimenti viene scartato! = somma complemento a 1
Checksum Nota: poiché esistono campi dell header IP che cambiano a mano a mano che il pacchetto viene inoltrato (es. Time To Live, TTL), ogni entità IP lungo il percorso ricalcola il checksum L entità IP del nodo successivo può così verificare l integrità dell header ed accettare o meno il pacchetto IP
Protocol (8 bit) E un codice che indica il protocollo di livello superiore (RFC 790) Esempio: ICMP=1, TCP=6, UDP=17, IPv4=4, più protocolli di livello superiore possono usare IP (multiplazione) il codice identifica il SAP (Service Access Point) tra IP e il protocollo di livello superiore TCP UDP IP Livelli inferiori
Le opzioni La parte iniziale dell header IP è di 20 byte ed è sempre presente In aggiunta è possibile la presenza di campi aggiuntivi (le opzioni) che possono allungare l header fino ad un massimo di 60 byte 1 32 bit Ver HLEN TOS Total length Fragment Identification Flags Frag. Offset TTL Protocol Header Checksum Source address Destination address Options: security, source routing, record route, timestamp Dati 20 BYTE
Le opzioni type 8 bit length 8 bit data dimensione variabile copy 1 bit class 2 bit Copy: 0 nel primo o unico frammento 1 negli altri (copied) option number 5 bit Class: 00 controllo del datagram 10 debugging e measurement Class Number Length Descrizione 0 0 0 Fine di una lista di opzioni 0 1 0 No Operation usata per allineare gli ottetti 0 2 11 Sicurezza 0 3 Var Usata per instradare su uno specifico path(loose) 0 7 Var Traccia la via percorsa 0 8 4 Stream Identifier (obsoleta) 0 9 Var Usata per instradare su uno specifico path(strict) 2 4 Var Raccoglie i Time-stamp lungo la strada 01 e 11 sono riservate per usi futuri
Le opzioni Type sinonimo di Value (e di Option Number) http://www.iana.org/assignments/ip-parameters
Record Route 00000111 Il pointer indica l ottetto con cui comincia la prossima area in cui registrare un indirizzo. Il puntatore è relativo a questa opzione. Tutti i campi address sono inizialmente vuoti e il pointer vale 4 (ovvero punta al primo campo address, che comincia appunto al 4 ottetto dall inizio dell opzione) ogni volta che viene attraversato un router viene registrato l indirizzo nel campo puntato e il puntatore viene aumentato di 4, fino all eventuale riempimento di tutti i campi address (per conoscere il percorso verso una destinazione esiste la possibilità di usare pacchetti ICMP come vedremo in seguito) code 8 bit Opt. length 8 bit 1 st address 32 bit 2 nd address 32 bit 9 th address 32 bit pointer 8 bit Massimo 40 byte
Strict Source Routing 10001001 Implementa un meccanismo di source routing (percorso scelto dalla sorgente) Tutti i campi address sono inizialmente pieni e indicano i router che l IP sender vuole vengano attraversati il puntatore viene incrementato di 4 ad ogni hop se viene raggiunto un router non previsto il pacchetto viene scartato e viene generato un messaggio di errore (usata molto raramente!!!) code 8 bit length 8 bit 1 st address 32 bit 2 nd address 32 bit 9 th address 32 bit pointer 8 bit Massimo 40 byte
Loose Source Routing Come la precedente, ma è possibile visitare anche altri router (il pacchetto non viene scartato) (usata molto raramente!!!) 10000011 code 8 bit length 8 bit 1 st address 32 bit 2 nd address 32 bit 9 th address 32 bit pointer 8 bit Massimo 40 byte
Timestamp 01000100 Misura il tempo assoluto di uscita del pacchetto in un router Il campo Over-Flow indica il numero di router sul percorso che non hanno potuto aggiungere il timestamp (per mancanza di spazio nell opzione, che al massimo può raggiungere i 40 byte) Il campo Flag indica la modalità operativa stabilita dal mittente (address riempiti dal mittente o dai router, ecc.) code 8 bit length 8 bit pointer 8 bit 1 st address 32 bit 1 st time stamp 32 bit 2 nd address 32 bit 2 nd time stamp 32 bit O-Flow 4 bit Flag 4 bit
Internet Control Message Protocol ICMP: protocollo di supporto utilizzato per veicolare informazione di controllo e segnalazioni di errore - RFC 792 Incapsulato in datagrammi IP (ha una sua intestazione veicolata nel campo dati del datagramma IP) Nei router e negli host, viene inviato alla sorgente del datagramma a fronte di eventi particolari, tra cui situazioni di errore o di sovraccarico Offre uno strumento di base per la diagnostica e l amministrazione delle reti IP
Formato del datagramma ICMP 0 7 8 15 16 31 Type Code Checksum Rilevamento errore su tutto il datagramma ICMP ICMP Header ICMP Data IP Header Datagram Data Area Frame Header Frame Data Area
Messaggi ICMP: campo TYPE TYPE (8 bit): identifica il tipo di messaggio Type Field ICMP Message Type 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect (change a route) 8 Echo Request 9 Router Advertisement 10 Router Solicitation 11 Time Exceeded for a Datagram 12 Parameter Problem on a Datagram 13 Timestamp Request 14 Timestamp Reply 15 Information Request (obsolete) 16 Information Reply (obsolete) 17 Address Mask Request 18 Address Mask Reply
Messaggi ICMP: campo CODE CODE (8 bits): specifica ulteriormente il tipo di messaggio Esempio: nel caso di datagrammi ICMP con TYPE=3 (risposte di tipo destination unreachable ) CODE 0 rete irraggiungibile 1 host irraggiungibile 2 protocollo irraggiungibile 3 porta irraggiungibile 4 frammentazione necessaria 5 source route fallito 6 rete dest. Sconosciuta 7 host dest. Sconosciuto 8 host sorgente isolato 9 comunicazione con rete proibita 10 comunicazione con host proibita 11 rete irraggiungibile per TOS 12 host irraggiungibile per TOS
Uso dell ICMP: comando ping Comando usato per verificare la raggiungibilità Usa i messaggi ICMP echo request/reply La sorgente invia un messaggio di ICMP echo request verso un certo indirizzo Il pacchetto di echo request contiene numero di sequenza e timestamp L host indirizzato risponde con una ICMP echo reply contenente i dati del messaggio di richiesta La sorgente calcola il round trip time (RTT) Se non torna la risposta il programma ping restituisce una diagnosi della irraggiungibilità
Uso del ping A R1 R2 R3 B Echo request Time Echo reply
Uso dell ICMP: comando traceroute Traceroute restituisce il percorso verso un host Si basa su un uso intelligente del campo TTL Un router che riceve un datagramma IP decrementa il campo TTL di 1 Se TTL=0, il router invia un datagramma ICMP time exceeded alla sorgente del datagramma IP Si trasmettono datagrammi IP successivi, in cui si aumenta progressivamente il valore TTL Ogni volta che viene ricevuto un datagramma ICMP con time exceeded, si registra l indirizzo del router che lo ha generato Si itera fino a raggiungere l host destinatario o a ricevere messaggi di errore
Traceroute A R1 R2 R3 Te = Time exceeded Pu = Port unreachable B TTL=1, Dest = B, port = invalid Te (R1) Time TTL=2, Dest = B TTL=3, Dest = B Te (R2) Te (R3) TTL=4, Dest = B Pu (B)
Corrispondenza tra indirizzi IP e indirizzi fisici Illustrando le tecniche di inoltro abbiamo ipotizzato la presenza di una tabella di corrispondenza tra indirizzi IP e indirizzi di livello inferiore (indirizzi fisici) Queste tabelle vengono create dinamicamente da ciascun host mediante il protocollo ARP IP-B: 193.17.31.55 MAC-B: 05:98:76:6c:4a:7b IP addr. 193.17.31.45... MAC addr. 00:9f:7a:89:90:7a... IP-A:193.17.31.45 MAC-A: 00:9f:7a:89:90:7a B A 193.17.31.0
ARP (Address Resolution Protocol) Il meccanismo si basa sulla capacità di indirizzamento broadcast della rete locale quando nella tabella memorizzata nell host (denominata ARP-cache) non è presente l indirizzo cercato, viene generato un messaggio di ARP-request La ARP-request viene inviata in broadcast e contiene l indirizzo IP di cui si chiede il corrispondente indirizzo MAC L host che riconosce l indirizzo IP come proprio invia una ARP-reply direttamente a chi aveva inviato la richiesta, con l indicazione dell indirizzo MAC
ARP (Address Resolution Protocol) IP addr.... MAC addr.... MAC broadcast: ff:ff:ff:ff:ff:ff IP-B: 193.17.31.55 MAC-B: 05:98:76:6c:4a:7b IP-A:193.17.31.45 MAC-A: 00:9f:7a:89:90:7a B ARP-request A LAN src-mac=mac-b, dst-mac=broadcast ARP-request IP-mitt=IP-B MAC-mitt=MAC-B IP-targ=IP-A MAC-targ=00:00:00:00:00:00
ARP (Address Resolution Protocol) IP-B: 193.17.31.55 MAC-B: 05:98:76:6c:4a:7b IP addr.... MAC addr.... MAC broadcast: ff:ff:ff:ff:ff:ff IP-A:193.17.31.45 MAC-A: 00:9f:7a:89:90:7a B ARP-reply A LAN src-mac=mac-a, dst-mac=mac-b ARP-reply IP-mitt=IP-A MAC-mitt=00:9f:7a:89:90:7a IP-targ=IP-B MAC-targ=MAC-B
Formato dei pacchetti ARP 1 16 Lunghezza indir. locale Tipo hardware Tipo protocollo Lunghezza Ind. IP ARP_request / ARP_reply; Indirizzo IP del mittente (32 bit) Indirizzo locale del mittente (48 bit) Indirizzo IP richiesto (32 bit) Indirizzo locale richiesto (48 bit) ARP può essere usato per altri protocolli di livello 2 e livello 3 quindi occorre indicare il tipo di protocollo (IP nel nostro caso) e il tipo di hardware (Ethernet per esempio) Ovviamente: il formato di un pacchetto ARP (ovvero la lunghezza dei suoi campi) varia in funzione del tipo di hardware e di protocollo utilizzati!
Domini di broadcast e reti IP Per il funzionamento del meccanismo di inoltro e dell ARP abbiamo fin qui ipotizzato che una sottorete IP corrisponda uno a uno con una rete locale (Dominio di Broadcast) In realtà un unica rete locale può corrispondere a diverse sottoreti IP (per es. perché la numerazione disponibile per una non è sufficiente) Non è possibile che più reti locali coesistano in un unica sottorete IP perché non potrebbero comunicare (mancano apparati di routing che le interconnettono realizzando la convergenza allo strato IP)
Domini di broadcast e reti IP: proxy ARP Un alternativa è quella dell installazione di un proxy ARP nel router La tecnica del proxy ARP consente a due reti fisicamente distinte di condividere lo stesso indirizzo di rete Il router conosce la collocazione fisica dei vari host nelle due reti Il router risponde alle richieste ARP su ciascuna delle due reti, fingendosi il destinatario. Dopodiché instrada i pacchetti al vero host destinatario A B Rete principale Router che funge da Proxy ARP C Rete nascosta D
RARP (Reverse ARP) Il protocollo ARP consente di associare ad un indirizzo IP noto un indirizzo fisico non noto usando la capacità di broadcast della rete sottostante Il protocollo RARP (Reverse ARP) è in grado di effettuare l operazione inversa: Un host che conosce il proprio indirizzo fisico chiede di sapere il proprio indirizzo IP Utile per macchine diskless che effettuano il bootstrap in rete Ma non è più usato!!! BOOT server RARP request RARP reply
Indirizzi dinamici L uso di procedure di questo tipo ha suggerito la possibilità di usare procedure per associare in modo flessibile gli indirizzi IP agli indirizzi fisici Può essere comodo non configurare i singoli host con l indirizzo IP, ma usare un server per memorizzare tutte le configurazioni In molti casi non è necessario avere un associazione stabile tra i due indirizzi ma si può usare un associazione dinamica (più host degli indirizzi disponibili): Host spesso inattivi (es. collegamenti remoti con rete d accesso telefonica) Host che usano IP solo per rari scambi di informazioni
Indirizzi dinamici Supponiamo di avere un server in grado di fornire l indirizzo IP ad un host su richiesta Sono possibili diversi casi: Associazione statica: il server ha una tabella di corrispondenza tra indirizzi fisici e indirizzi IP e all arrivo di una richiesta consulta la tabella e invia la risposta Associazione automatica: la procedura di corrispondenza nella tabella è automatizzata dal server Associazione dinamica: l insieme di indirizzi IP è più piccolo del numero di host che possono usarlo
Associazione dinamica Il caso dell allocazione dinamica è utile in situazioni nelle quali gli host non necessitano di avere sempre un indirizzo IP L associazione deve essere temporanea (uso di timeout o procedure di rilascio esplicito) E possibile che all arrivo di una richiesta non vi siano indirizzi disponibili (rifiuto della richiesta) Il dimensionamento del numero di indirizzi IP segue gli stessi principi del dimensionamento di un fascio di circuiti in telefonia
Dynamic Host Configuration Protocol (DHCP) Per la configurazione di indirizzi IP non si usa il RARP, ma un protocollo più evoluto derivato dal BOOTP E un protocollo di tipo client-server DHCP client LAN DHCP server
DHCP Un client che deve configurare il proprio stack IP invia in broadcast un messaggio di DHCPDISCOVER contenente il proprio indirizzo fisico Il server risponde con un messaggio di DHCPOFFER contenente un proprio identificativo e un indirizzo IP proposto DHCP client LAN DHCP server
DHCP Il client può accettare l offerta inviando una DHCPREQUEST contenente l identificativo del server (anche questo messaggio viene inviato in broadcast) Il server crea l associazione con l indirizzo IP e manda un messaggio di DHCPACK contenente tutte le informazioni di configurazione necessarie DHCP client LAN DHCP server
DHCP Parametri di configurazione IP address Netmask Default Gateway DNS server Il rilascio dell indirizzo avviene con l invio di un messaggio di DHCPRELEASE da parte del client DHCP client LAN DHCP server
DHCP E possibile avere più server DHCP client DHCP server LAN DHCP server E possibile usare dei DHCP Relay DHCP client LAN DHCP Relay Rete IP DHCP server DHCP server
Trasporto dei messaggi DHCP si appoggia su UDP per il trasporto dei messaggi I messaggi dei client fino all assegnamento dell indirizzo IP hanno: ind. IP di sorgente: 0.0.0.0 ind. IP di destinazione: 255.255.255.255 porta UDP sorgente: 68 porta UDP destinazione: 67 DHCP UDP IP 2 1
Messaggi OP HTYPE HLEN HOPS XID (Transaction ID) SECS FLAGS CIADDR YIADDR SIADDR GIADDR CHADDR SNAME FILE OPTIONS CAMPO BYTE DESCRIZIONE op 1 Tipo di messaggio (1 = BOOTREQUEST, 2 = BOOTREPLY) htype 1 Tipo di indirizzo fisico (1 = Eth 10Mb) hlen 1 Lunghezza ind. fisico ('6' per Eth 10Mb) hops 1 Settato dal client a 0 e incrementato dai relay agents xid 4 Numero casuale settato dal client e usato per evitare ambiguità secs 2 Settato dal client, numero di sec dall'inizio della procedura flags 2 Flags (si usa solo il primo bit per chiedere una risposta multicast o unicast). ciaddr 4 Indirizzo IP del client (settato dal client, zero se non noto) yiaddr 4 Indirizzo IP del client (settato dal server) siaddr 4 Indirizzo IP del server giaddr 4 Indirizzo del relay agent chaddr 16 Indirizzo fisico del client sname 64 Stringa Nome del server (opzionale) file 128 Stringa nome del file di boot (opzionale) options 312 Lista di opzioni per il trasferimento di altre informazioni
INTRANET Indirizzamento Privato, NAT, Tunnelling
Intranet EG sottorete IG IG rete IG Le reti private si sono evolute grazie alla tecnologia IP e sono passate da grandi reti collegate a livello 2 (bridge) a reti collegate con router IP Una INTRANET non è altro che una rete privata che utilizza tecnologia di interconnessione IP Di solito oggi con INTRANET si intende una rete IP collegata con la rete pubblica INTERNET mediante un ISP e dotata di servizi per gli utenti di Internet come server www, server di posta, ecc.
Intranet L evoluzione di servizi e protocolli ha però reso le Intranet strutturalmente differenti dalle reti pubbliche Problemi di sicurezza Problemi di gestione degli indirizzi Problemi di distinzione tra servizi offerti ai soli utenti della Intranet e servizi offerti anche agli utenti di Intenet
Indirizzi L aumento vertiginoso del numero di host collegati ad Internet ha reso il problema della disponibilità di indirizzi IPv4 pressante E questo problema che ha spinto alla standardizzazione di IPv6 Nel frattempo però si è trovata un altra soluzione basata su indirizzi privati Se una rete IP non è collegata con INTERNET non deve sottostare alle regole di univocità degli indirizzi
Indirizzamento privato La comunità Internet ha individuato gruppi di indirizzi IP che non vengono usati nella rete pubblica possono essere usati più volte purché all interno di Intranet Private non è ammesso che pacchetti con indirizzi privati (sorgente o destinazione) viaggino nella rete Internet pubblica IETF indica porzioni dello spazio di indirizzamento per indirizzi privati (RFC1918): classe A: rete 10.xx.xx.xx (16 milioni di indirizzi) classe B: da 172.16.0.0 a 172.31.255.255 (16 reti contigue da 65536 indirizzi) classe C: reti 192.168.xx.xx (256 indirizzi)
Utilizzo di indirizzi privati IETF Una rete privata ha normalmente una serie di servizi che sono accessibili dalla rete Internet pubblica (host esposti) I server per questi servizi devono avere un indirizzo pubblico mentre gli host interni alla rete possono avere un indirizzo privato web e-mail R ISP ind. pubblici R ind. privati
Utilizzo di indirizzi privati IETF E chiaro comunque che in questo modo si impedisce agli host della rete privata di aver accesso a tutti servizi di Internet Prima o poi sorge l esigenza di consentire lo scambio di pacchetti tra host con indirizzo pubblico e host con indirizzo privato I metodi più comunemente usati per consentire il colloqui sono il NAT e i Proxy web e-mail R ISP R NAT ind. pubblici NAT: Network Address Translation ind. privati
Network Address Translator (NAT) E un meccanismo reso disponibile su un router/gateway Consente di associare, anche temporaneamente, un ridotto numero di indirizzi pubblici, ai numeri della numerazione privata (NAT statico, NAT dinamico) I pacchetti diretti all esterno vengono riconosciuti e inviati al NAT NAT Pool disponibile: sottorete 131.175.13 Source Destination 10.24.1.177 145.13.2.34 IP privata IP pubblica Source Destination 131.175.13.55 145.13.2.34 Possibilità di blocco
Application Proxy I proxy sono application gateway qualunque richiesta viene inviata al proxy che la inoltra con il proprio IP address pubblico occorre avere un proxy per tutte le applicazioni http proxy ftp proxy remote web server R Internet ind. pubblici R ind. privati
NAT Tabella di NAT Perché il colloquio sia bidirezionale occorre mantenere l associazione tra indirizzo privato e pubblico in una tabella di NAT Corrispondenza statica Corrispondenza dinamica NAT Pool disponibile: sottorete 131.175.13 Tabella di NAT 10.24.1.177 131.175.13.55 Source Destination 10.24.1.177 145.13.2.34 IP privata IP pubblica Source Destination 131.175.13.55 145.13.2.34
NAT assegnamento dinamico L assegnamento dinamico si basa sul concetto di sessione Quando il NAT vede il primo pacchetto di una sessione crea l associazione tra indirizzo privato e pubblico Al termine della sessione l indirizzo viene rilasciato Cos è una sessione? Dipende dal protocollo utilizzato Per TCP e UDP una sessione viene identificata dall indirizzo di socket Per ICMP dalla terna IP sorgente, IP destinazione e Identifier Per direzione di una sessione si intende il verso di percorrenza del primo pacchetto
NAT assegnamento dinamico Definita la sessione occorre capire quando inizia e quando finisce Inizio sessione: TCP: pacchetto di SYN UDP, ICMP: sono connection-less, non vi è un metodo unico Fine sessione: TCP: pacchetti di FIN per entrambe i lati (però possono non arrivare mai ) Altri protocolli: non vi è un metodo univoco Occorrono sempre dei time-out per recuperare situazioni d errore o perdita di pacchetti
NAT Application Level Gateway Alcune applicazioni trasportano nel Payload dei loro messaggi indirizzi IP (in formato ASCII o binario) e numeri di porta Gli Application Level Gateway (ALG) sono funzionalità aggiuntive che servono per un corretto funzionamento del NAT Sulla base del tipo di applicazione e del tipo di messaggio si preoccupano di modificare i messaggi applicativi in transito e, se del caso, adattare i segmenti TCP
Traditional NAT Detto anche Outbound NAT Permette solo sessioni iniziate dall interno (verso della sessione dall interno verso l esterno) Le informazioni di routing possono essere distribuite dall esterno verso l interno ma non viceversa 2 sotto-tipi Basic NAT NAPT (Network Address and Port Translator)
Traditional NAT Basic NAT Viene traslato il solo indirizzo IP C è una corrispondenza uno-a-uno nell assegnamento degli indirizzi durante una sessione e due host non possono usare lo stesso indirizzo contemporaneamente Ci può essere blocco se si esauriscono gli indirizzi pubblici disponibili quando il traffico (numero di sessioni attive) è elevato NAPT Viene traslata la coppia (indirizzo,porta) Molti indirizzi interni possono usare lo stesso indirizzo esterno Ci sono problemi con flussi diversi da UDP e TCP (per ICMP si può usare il campo Identifier) Nel caso di frammenti tutto si complica ulteriormente
Bi-directional NAT Si può iniziare una sessione in entrambe i versi Problema: Come fa un host pubblico ad iniziare un sessione con un host privato senza avere un indirizzo pubblico a cui raggiungerlo? Occorre usare dei nomi simbolici e il servizio DNS deve usare un unico spazio dei nomi DNS Intranet DNS resp: 10.43.55.6 DNS query: server.azienda.com? DNS ALG R Tabella di NAT DNS resp: 131.175.21.8 Internet server.azienda.com 10.43.55.6 10.43.55.6 131.175.21.8
NAT alcune considerazioni Il cambio di indirizzo non è un operazione indolore Esso impone: Il ricalcolo del Header Checksum Sostituzione degli indirizzi dei messaggi ICMP e ricalcolo header checksum Il ricalcolo dei checksum di TCP o UDP con il nuovo pseudo-header Sorgono poi dei problemi con alcuni ALG per via del trasporto degli indirizzi e porte nei messaggi di livello applicativo (es. caso FTP)
NAT alcune considerazioni Il caso del FTP Si usa il comando di PORT (FTP Active mode) PORT n1,n2,n3,n4,n5,n6 dove: n1.n2.n3.n4 è l indirizzo IP del client N5x256+n6 = numero di porta del client per la connessione dati Occorre tradurre il payload del comando PORT con un ALG, ma la cosa genera problemi: Da 10.43.55.6 (privato) in 131.175.21.1(pubblico) Ma FTP usa codice ASCII e nel mapping la codifica dell indirizzo si allunga di due caratteri e quindi si sballano il conteggio dei byte per i SN e AN del TCP ALG per FTP deve dunque costruirsi una tabella di mapping al volo anche per i numeri di sequenza e di ACK del TCP!!!
FTP active e passive https://learningnetwork.cisco.com/thread/31455
Connessione WAN di intranet remote Una volta create le Intranet può sorgere il problema di collegarle tra loro (ad es. sedi diverse di una stessa azienda) Problemi: costo uso di indirizzi privati sicurezza Intranet Intranet Intranet
Connessione WAN di intranet remote Uso di canali dedicati Problemi: l uso può non giustificare il costo elevato Intranet Intranet Intranet
Connessione WAN di intranet remote Uso di reti a pacchetto pubbliche (ad es. Frame Relay o VPLS) Problemi: l uso può non giustificare il costo elevato Intranet Intranet Rete pubblica FR o VPLS Intranet
Connessione WAN di intranet remote Uso di INTERNET (Virtual Private Network - VPN) Problemi: uso di indirizzi privati sicurezza prestazioni ISP ISP Intranet Intranet
Virtual Private Networks Tunnel di collegamento ISP tunnel ISP Intranet Intranet
IP tunneling Il tunnel si costruisce incapsulando trame IP in altre trame IP Il payload che viaggia nel segmento pubblico può essere crittato (utilizzando IPSEC) Gli indirizzi A e B possono essere privati IP Router/gateway Tunneling Tunnel destination/source Destination Source Destination Source Payload IP Destination Source Payload Tunnel payload
IP tunneling ISP tunnel ISP Intranet Intranet
IPv6 Internet Protocol version 6
IPv6 IP versione 6 è la nuova versione dell Internet Protocol il cui processo di standardizzazione è iniziato negli anni 90 Mantiene l impostazione fondamentale di IPv4 ma cambia molti aspetti e soprattutto aumenta la lunghezza degli indirizzi da 32 a 128 bit
Funzioni chiave di IPv6 Funzioni chiave di IPv6 Spazio di indirizzamento capiente (128 bit) 340,282,366,920,938,463,463,374,607,431,768,211,456 indirizzi IP teorici corrispondenti a 667 * 10 21 (667 sestilioni) di indirizzi per m 2 della Terra (superficie 0.51 * 10 15 ) Febbraio 2011: Internet Assigned Numbers Authority (IANA) distribuisce gli ultimi blocchi di indirizzi liberi IPv4 ai Regional Internet Registries (RIR) Aprile 2011: APNIC inizia ad allocare l ultimo blocco /8 Miglioramento prestazioni (assenza segmentazione, assenza opzioni, header ridotto e fisso, assenza NAT, ) Integrazione delle funzioni di identificazione di flusso (e QoS) Integrazione nativa della sicurezza (IPsec) e del mobile IP Autoconfigurazione dei dispositivi Indirizzi anycast http://www.potaroo.net/tools/ipv4/index.html
IPv6: le novità principali IPv6 Indirizzi, gestione delle opzioni, gestione della frammentazione, identificazione flussi, classi di traffico, niente header checksum, ecc. ICMPv6: Nuova versione di ICMP con funzionalità aggiuntive ARP: Eliminato e sostituito da ICMPv6 DHCPv6 Modificato per il nuovo protocollo (alcune funzioni sono svolte da ICMPv6) Routing RIPng e OSPFv6
Header IPv6 Basic Header 1 32 bit Vers. Traffic class Flow label Payload length Next Header Hop count Source address 40 byte Destination address
Header IPv6 Campo Lung. (bit) Descrizione Version 4 Versione del Protocollo (6) Traffic Class 8 Campo utilizzabile per distinguere diversi tipi di traffico nelle reti Differentiated Services Flow Label 20 Campo utilizzabile per identificare un flusso di pacchetti (stessa lunghezza di MPLS) Payload Length 16 Lunghezza del pacchetto (eccetto basic header) Next Header 8 Identifica il tipo di header che segue il basic header (può essere di livello superiore come TCP o un extension header) Hop Limit 8 Stessa funzione del TTL di IPv4 Source Address 128 Indirizzo di sorgente Destination Address 128 Indirizzo di destinazione
IPv4 vs IPv6 14 campi, almeno 20 byte Indirizzi su 32 bit Frammentazione possibile ad ogni hop Ricalcolo del header checksum ad ogni hop campo Options di lunghezza variabile 8 campi, lunghezza fissa pari a 40 byte Indirizzi su 128 bit Frammentazione solo alla sorgente Assenza di checksum Nuovo campo flow label di 20 bit Le opzioni negli Extension Headers
Confronto tra intestazioni bit 0 8 16 24 31 bit 0 4 12 16 24 31 Version IHL Service Type Total Length Identifier Flags Fragment Offset Version Class Flow Label Payload Length Next Header Hop Limit Time to Live Protocol Header Checksum 32 bit Source Address 128 bit Source Address 32 bit Destination Address Options and Padding IPv4 Header 20 octets, 12 fields, including 3 flag bits + fixed max number of options 128 bit Destination Address Changed Removed IPv6 Header 40 octets, 8 fields + Unlimited Chained Extension (options) Header
Next Header Next Header IPv6 Basic Header Next Header IPv6 Extension Header Next Header IPv6 Extension Header Upper Layer Protocol
IPv6 Extension Headers Hop-by-hop option: Deve essere interpretato dai router Ha varie opzioni per pacchetti lunghi e gestione di allineamenti a 32 bit Source Routing: Serve a obbligare i router a seguire un particolare percorso per il pacchetto Fragmentation: Implementa la frammentazione, ma questa può essere eseguita solo dal mittente che deve conoscere la massima MTU del path (la ottiene mediante i messaggi di MTU Path discovery di ICMPv6) Autenticazione Serve per l autenticazione del mittente Encrypted security payload Serve per crittare il payload (altro pacchetto IP o livelli superiori)
Indirizzi IPv6 Lunghi 128 bit Notazione sintetica valori 8 x 16 bit separati da : 1040: 0000: 0000: 0000: 0008: 0020: 400B: 516B Sintesi: 1040: 0: 0: 0: 8: 20: 400B: 516B or 1040:: 8: 20: 400B: 516B IPv6 prevede un ricca varietà di indirizzi e assume che normalmente una interfaccia abbia più di un indirizzo associato Uso: globale o locale allo stesso link (o sito) IPv6 non prevede indirizzi broadcast Il primo campo dell indirizzo IPv6 è il Format Prefix (FP) che descrive il tipo di indirizzo: Unicast (uno) Multicast (tutti gli appartenenti a un gruppo) Anycast (almeno uno tra gli appartenenti a un gruppo) IPv4 Compatible/ Mapped Speciale es. loopback
Prefissi IPv6 Così come IPv4 anche IPv6 assume i prefissi per una individuazione del campo che identifica l interfaccia La notazione è la stessa (ad. Es. /60) I tipi diversi di indirizzi sono individuati dalla prima parte del prefisso (format prefix - FP) Format Prefix variabile Restante parte dell indirizzo 128 bit
Tipi di indirizzi IPv6 Prefix (binary) Usage Fraction 0000 0000 Reserved for IPv4 addresses 1/256 0000 0001 Unassigned 1/256 0000 001 OSI NSAP addresses 1/128 0000 010 Novell Netware IPX addresses 1/128 0000 011 Unassigned 1/128 0000 1 Unassigned 1/32 0001 Unassigned 1/16 001 Aggregatable Global Unicast add. 1/8 010 Unassigned 1/8 011 Unassigned 1/8 100 Unassigned 1/8 101 Unassigned 1/8 110 Unassigned 1/8 1110 Unassigned 1/16 1111 0 Unassigned 1/32 1111 10 Unassigned 1/64 1111 110 Unassigned 1/128 1111 1110 0 Unassigned 1/512 1111 1110 10 Link local use addresses 1/1024 1111 1110 11 Site local use addresses 1/1024 1111 1111 Multicast 1/256
Indirizzi speciali Unspecified address (0:0:0:0:0:0:0:0) Usato come indirizzo di sorgente quando il nodo non conosce altri suoi indirizzi Non può essere usato come indirizzo di destinazione Loopback address (0:0:0:0:0:0:0:1) Indirizzo di loopback analogo al 127.x.y.z di IPv4 IPv4-compatible IPv6 address (::IPv4_addr) Utilizzato per far comunicare host IPv6 quando occorre attraversare una rete IPv4 (96 zero + 32 bit IPv4_addr) IPv4-mapper IPv6 address (::FFFF:IPv4_addr) Utilizzati per far comunicare host IPv6 con host IPv4 (80 zero + 16 uno + IPv4_addr)
Aggregatable Global Unicast Address Formato unicast globale Struttura gerarchica per ridurre i problemi di scalabilità delle tabelle di routing 3 macrolivelli: Public Topology, Site Topology, Interface_ID 001 TLA Res NLA SLA Interface ID FP 3 bit 13 bit 8 bit 24 bit 16 bit 64 bit TLA (Top Level Aggregation) NLA (Next Level Aggregation) SLA (Site Level Aggregation)
Aggregatable Global Unicast Address TLA (Top Level Aggregation) Livello gerarchico più elevato normalmente assegnato su base geografica o agli ISP di backbone Res (Reserved) future espansioni NLA (Next Level Aggregation) Ogni ISP con un TLA può strutturare gerarchicamente le sue reti con diversi NLA SLA (Site Level Aggregation) Livello legato al singolo sito (sottorete) Interface ID 64 bit con formato derivato da IEEE EUI-64 Extended Unique Identifier (EUI-64) I livelli NLA e SLA possono essere ulteriormente divisi gerarchicamente
Link-Local Unicast Address FP = 1111 1110 10 Sono indirizzi utilizzabili sono per l indirizzamento su un singolo link (sottorete) IPv6 prevede che ogni interfaccia disponga di almeno un link-local unicast address normalmente assegnato per autoconfigurazione a partire dall indirizzo fisico di interfaccia (IEEE EUI-64) Questi indirizzi sono fondamentali nel processo di Neighbour Discovery 1111 1110 10 00 00 Interface ID FP 10 bit 54 bit 64 bit
Site-Local Unicast Address FP = 1111 1110 11 Anche questi destinati ad uso locale Definiscono una spazio di indirizzamento privato 1111 1110 11 00 00 Subnet Interface ID FP 10 bit 38 bit 16 bit 64 bit
Multicast Address FP = 1111 1111 Diversi sotto-tipi Multicast global Multicast link-local Multicast site-local All interno esistono indirizzi per usi speciali 1111 1111 000T Scope Group identifier FP 8 bit Flags 4 bit 4 bit 112 bit
Multicast Address Flags: T=1 indirizzo temporaneo T=0 indirizzo permanente Scope: 0: reserved 1: node-local scope 2: link-local scope 5: site-local scope 8: organization-local scope E: global scope Altri: unassigned 1111 1111 000T Scope Group identifier FP 8 bit Flags 4 bit 4 bit 112 bit
Multicast indirizzi speciali FF01::1 = all systems node-local scope FF02::1 = all systems link-local scope FF01::2 = all-routers node-local scope FF02::2 = all-routers link-local scope FF05::2 = all-routers site-local scope Indirizzi utilizzati in modo simile al broadcast locale suddividendo tra tutti i sistemi e tutti i router
Multicast indirizzi speciali Solicited-Node Multicast address Ogni sistema IPv6 deve avere un solicited-node multicast address per ogni indirizzo unicast o anycast configurato Tale indirizzo viene costruito automaticamente concatenando il prefix FF02::1:FF00:0/104 con gli ultimi 24 bit del corrispondente indirizzo unicast o anycast XXXX XXXX XXXX XXXX XXXX XXXX XXyy yyyy FF02 0000 0000 0000 0000 0001 FFyy yyyy
Molti indirizzi per diversi scopi IPv6 prevede l uso di processi di autoconfigurazione Normalmente un nodo deve: Autoconfigurarsi un link-local address a partire dall indirizzo fisico di 64 bit Autoconfigurarsi un solicited-node multicast address per ogni indirizzo Può autoconfigurarsi altri indirizzi mediante diverse procedure (vedi ICMP e DHCP)
ICMP version 6 ICMP ha un importanza molto maggiore con IPv6 Vengono svolte molte funzioni: Error reporting e diagnostica di rete Risoluzione degli indirizzi di livello link Individuazione del router corretto Controllo degli indirizzi IPv6 assegnati Autoconfigurazione degli indirizzi IPv6 Calcolo del PATH-MTU per la frammentazione
ICMPv6: struttura dei messaggi Next header =58 ICMP_Type ICMP_Code Checksum Message Body Alcuni tipi comuni (ICMP_Type) Type=1 destination unreachable Type=2 Packet too big Type=3 Time exceeded Type=4 Parameter problem, Type=128 Echo request Type=129 Echo reply http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xml
ICMPv6 Neighbor Discovery Sono previste diverse procedure di ND Address Resolution Funzione analoga a quella di ARP per IPv4 Router Discovery Segnalare e scoprire presenza di router sul link Redirection Simile all opzione redirect di IPv4 Neighbor Unreachability Detection Scopre irraggiungibilità di host noti
ICMPv6 Neighbor Discovery Sono utilizzati molti indirizzi speciali (link-scope): All-systems Multicast Address (FF02::1) All-Routers Multicast Address (FF02::1) Solicited-node Multicast Address Unicast Link-Local Address Unspecified Address (0::0) E sono introdotti 5 nuovi tipi di messaggio: Router Solicitation message: type=133 Router Advertisement message: type=134 Neighbor Solicitation message: type=135 Neighbor Advertisement message: type=136 Redirect message: type=137
ICMPv6 Address Resolution Stessa funzione di ARP Servono indirizzi multicast/broadcast sul livello inferiore Si suppone l esistenza di un mappaggio tra indirizzi multicast IPv6 e multicast/broadcast a livello link Si fa uso dei messaggi di Neighbor Solicitation e Neighbor Advertisement
ICMPv6 Address Resolution Il messaggio di Neighbor Solicitation viene inviato all indirizzo nodesolicited multicast address che può essere ricavato anche dal richiedente Il messaggio di Neighbor Advertisement viene inviato all indirizzo IPv6 di sorgente del pacchetto di richiesta IPv6_addr FE80::0800:2001:C782 Neighbor Solicitation msg Chi è FE80::0:C033:6382? Neighbor Advertisement msg Io sono FE80::0:C033:6382 IPv6_addr FE80::0:C033:6382
ICMPv6 Address Resolution IP-A primi 104 bit ultimi 24 bit primi 104 bit ultimi 24 bit IP-B FF02::1 = all systems link-local scope S-A FF02::1FF00:0 ultimi 24 bit Solicited-node multicast address FF02::1FF00:0 ultimi 24 bit S-B HX Multicast fisico HA Unicast fisico Algoritmo di corrispondenza dipendente dal tipo di link. A HY Multicast fisico HB Unicast fisico B ICMP Neighbor Solicitation Target_addr=IP-B Sender_link_addr=HA Src_addr=IP-A Dst_addr=S-B Dest. HY Dest. HA Src_addr=IP-B Dst_addr=IP-A ICMP Neighbor Advertisement Target_addr=IP-B Sender_link_addr=HB
Router Discovery Invio periodico da parte dei router All indirizzo multicast All-systems link-localscope (FF02::1) ICMP Router Advertisement IPv6_addr (link local)= FE80::0:ABCD:9999 Prefix: 2000:111::0/64 ICMP Router Advertisement Invio su richiesta ad indirizzo unicast richiedente ICMP Router Solicitation Indirizzo multicast all-routers link-local scope (FF02::2)
Autoconfigurazione Indirizzi Oltre agli indirizzi Link-local si possono autoconfigurare indirizzi globali Stateful configuration (tramite DHCPv6) Stateless configuration (tramite ICMP) Noto il prefisso annunciato dai router Si può ricavare l indirizzi a partire dall indirizzo fisico a 64 bit
MTU Path Discovery Obiettivo: Il mittente deve sapere la MTU più piccola sul percorso Invia 1 pacchetto lungo quanto MTU primo link Se arriva messaggio ICMP errore Packet too big ridurre MTU Fino a che non arrivano più messaggi di errore
Migrazione IPv4 IPv6 Si basa sull uso delle seguenti componenti Dual stack Sistemi con doppio stack IPv4 e IPv6 Tunneling Attraversamento di porzioni di rete IPv4 mediante tunneling Header translation Traduzione degli header dei due formati
Dual-stack
Tunneling IPv6 inside IPv4 where needed
v6 e v4: migrazione /coesistenza Source: AT&T, Embracing IPv6, Z. Ghadialy. April 23, 2012 IETF ha definito meccanismi di transizione e coesistenza: Dual-stack è basato sulla simultanea coesistenza di stack IPv4 e IPv6 su nodi e terminali; Tunneling si basa sull incapsulamento di pacchetti IPv6 in IPv4 (e viceversa quando sarà diffuso in rete IPv6 ); Translation consente a nodi con solo stack IPv6 di comunicare con nodi con stack IPv4 (e viceversa). IPv6 IPv4 IPv4 IPv4 IPv6 IPv6 IPv6 IPv6 IPv4 IPv6 IPv6 Trasporto IPv6 Mitigazione esaurimento IPv4 NAT IPv6 - IPv4 Dual Stack Abilitare l accesso IPv6 su rete IPv4: 6to4 (RFC3056) Teredo (RFC4380) IPv6 rapid deployment 6rd (RFC5569) Intra-Site Automatic Tunnel Addressing Protocol - ISATAP (RFC5214) NAT444 (RFC6264) NAT indipendente dal terminale Dual Stack Lite (DS-Lite), RFC6333 Addressplus Port (A+P ), RFC6346 RFC6144 NAT-PT (deprecated) ICMP, Tracert ALG DNS ALG NAT64 (RF6146) DNS64 NAT66 ALG
IPv6: Approfondimenti Altro materiale didattico: Materiale del corso di Infrastrutture e Protocolli per Internet del Prof. Giuseppe Rossi (http://www.elet.polimi.it/upload/grossi) Libri: C. Huitema, IPv6: The Next Generation Protocol, Prentice Hall, Englewood Cliffs, NJ, 1997. Articoli: W. Stallings, IPv6: the new Internet protocol, IEEE Communications Magazine, July 1996, pp. 96 108. D.C. Lee et alt., The next generation of the Internet: aspects of the Internet protocol version 6, IEEE Network, vol. 12, no 1, Jan.-Feb. 1998, pp. 28 33. Links: IP Next Generation (R. Hinden), http://playground.sun.com/pub/ipng/html/ipng-main.html