Introduzione a Internet

Transcript

Introduzione a Internet
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
B
C
Paradigmi di commutazione
ALTA
Circuiti
Dedicati
Capacità di garantire qualità
Circuiti
Commutati
Commutazione
di Circuito
Circuiti Virtuali
Permanenti
Commutazione
di Pacchetto
Circuiti Virtuali
Commutati
Commutazione
Datagramma
BASSA
BASSA
Capacità di condividere le risorse
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
ALTA
Pila internet e modello OSI
Application
Presentation
Application
Application
SMTP, NNTP
Telnet, SNMP,
HTTP
Session
Transport
Network
Transport
TCP
Network
IP
Data Link
Physical
OSI stack
UDP
Internet stack
ICMP
Esempio
Pila completa
Video
VoIP
Telnet
FTP
End User
Applications
SMTP
HTTP
Application
RTSP
SNMP
RTP/RTCP
DNS
DHCP
SCTP
MobileIP
IPSec
IPv6
SIP
RIPv1
RIPv2
UDP
IGMP
OSPF
RSVP
TCP
IPv4
BGP
NAPT
ICMP
NAT
Network
Management &
Control
Applications
Transport
Internet
ICMPv6
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
Interconnessione tra ISP:
Peering e Transito
Peering
 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
IXP
IXP
large content
distributor
(e.g., Google)
Tier 1 ISP
large content
distributor
(e.g., Akamai)
… o presso gli Internet
exchange points IXPs
Tier 1 ISP
Tier 1 ISP
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
CA
OTT: Over The Top
Telco/ISP
Fonte: elaborazione
Analsysis Mason, 2011
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)
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
End user
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
Prezzi dell’accesso costanti
-Banda commodity
- forse non l’accesso
- certamente non il mobile
www.monkey.org/~labovit/papers/gpf_2011.pdf
Fase 2
Prezzi dell’accesso costanti
-Banda commodity
- forse non l’accesso
-certamente non il mobile
Aumento costi infrastruttura
(porte, transito, …)
Fase 3
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 = 1018bytes
= 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
IP video
Consegna gestita
Enfasi sulla qualità
TV lineare e VOD
Servizi a
pagamento
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
Cloud computing
services
Smart mobile
devices
Pervasive video
Social technology
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
2
1
IP
IP
LLC
LLC
LLC
IP
LLC
MAC
MAC
MAC
MAC
PHY
PHY
PHY
PHY
LAN A
LAN B
Lo stack TCP/IP base
L4
L3
TCP
UDP
ICMP
IP
routing
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
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
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
Indirizzamento “Classful”
Primo ottetto
Classe A
(0-127)
8
16
0 NetID
24
32
HostID
Classe B
(128-191)
10
Classe C
(192-223)
110
Classe D
(224-239)
1110
Multicast
Classe E
(240-255)
1111
Experimental/Future use
NetID
HostID
NetID
HostID
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.76
193.17.31.55
193.17.31.0
193.17.31.45
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.76
193.17.31.55
193.17.31.0
193.17.31.45
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.76
193.17.31.55
193.17.31.0
193.17.31.45
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
Tutti 0
Host su
questa rete
Tutti 0
Broadcast
Limitato
Tutti 1
Broadcast Diretto
Loopback
HostID
NetID
127
Tutti 1
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
131.175.1.254
Rete
131.30.0.0
131.30.18.254
131.30.78.4
131.175.23.24
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
Subnetted address
Host ID
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)
1
Header
32 bit
Ver HLEN
TOS
Total length
Fragment Identification Flags
Frag. Offset
TTL
Protocol
Header Checksum
Source address
Destination address
IP Options (if any)
Padding
Dati (Payload)
20 BYTE
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
216=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
IP Precedence (IPP) Format
IPv4 ToS Bits
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
LL (A)
LL (A)
Rete A
IP
frag.
LL (B)
LL (B)
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
TTL=0
messaggio d’errore:
time exceeded
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
complemento a 1
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
Checksum
In ricezione si calcola la somma e si verifica il
complemento:
 se sono tutti 0 il
+
+
…
+ checksum
…
=
somma
complemento a 1
pacchetto viene
accettato
 altrimenti viene
scartato!
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
copy
1 bit
length
8 bit
class
2 bit
Copy:
0 nel primo o unico frammento
1 negli altri (copied)
Class
0
0
0
0
0
0
0
2
Number
0
1
2
3
7
8
9
4
Length
0
0
11
Var
Var
4
Var
Var
data
dimensione variabile
option number
5 bit
Class:
00 controllo del datagram
10 debugging e measurement
Descrizione
Fine di una lista di opzioni
No Operation usata per allineare gli ottetti
Sicurezza
Usata per instradare su uno specifico path(loose)
Traccia la via percorsa
Stream Identifier (obsoleta)
Usata per instradare su uno specifico path(strict)
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
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)
00000111
code
Opt. length
8 bit
8 bit
1st
address
2nd
address
pointer
8 bit
32 bit
32 bit
…
9th address
32 bit
Massimo
40 byte
Strict Source Routing
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
length
pointer
10001001
8 bit
8 bit
8 bit
1st address
32 bit
2nd address
32 bit
…
9th address
32 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
pointer
8 bit
1st address
32 bit
2nd address
32 bit
…
9th address
32 bit
Massimo
40 byte
Timestamp
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.)
01000100
code
8 bit
length
pointer
8 bit
8 bit
1st address
32 bit
1st time stamp
32 bit
2nd address
32 bit
2nd 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
78
Type
ICMP
Header
IP
Header
31
Checksum
Code
Rilevamento
errore su tutto
il datagramma ICMP
Frame
Header
15 16
ICMP Data
Datagram Data Area
Frame Data Area
Messaggi ICMP: campo TYPE
TYPE (8 bit): identifica il tipo di messaggio
Type Field
0
3
4
5
8
9
10
11
12
13
14
15
16
17
18
ICMP Message Type
Echo Reply
Destination Unreachable
Source Quench
Redirect (change a route)
Echo Request
Router Advertisement
Router Solicitation
Time Exceeded for a Datagram
Parameter Problem on a Datagram
Timestamp Request
Timestamp Reply
Information Request (obsolete)
Information Reply (obsolete)
Address Mask Request
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
1
2
3
4
5
6
7
8
9
10
11
12
rete irraggiungibile
host irraggiungibile
protocollo irraggiungibile
porta irraggiungibile
frammentazione necessaria
source route fallito
rete dest. Sconosciuta
host dest. Sconosciuto
host sorgente isolato
comunicazione con rete proibita
comunicazione con host proibita
rete irraggiungibile per TOS
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
B
R3
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
Te = Time exceeded
Pu = Port unreachable
A
R1
R2
B
R3
TTL=1, Dest = B,
port = invalid
Te (R1)
Time
TTL=2, Dest = B
Te (R2)
TTL=3, Dest = B
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.
MAC addr.
193.17.31.45
...
00:9f:7a:89:90:7a
...
B
IP-A:193.17.31.45
MAC-A: 00:9f:7a:89:90:7a
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.
...
...
IP-B: 193.17.31.55
MAC-B: 05:98:76:6c:4a:7b
B
MAC broadcast:
ff:ff:ff:ff:ff:ff
IP-A:193.17.31.45
MAC-A: 00:9f:7a:89:90:7a
ARP-request
A
LAN
src-MAC=MAC-B, dst-MAC=broadcast
IP-mitt=IP-B
MAC-mitt=MAC-B
ARP-request
IP-targ=IP-A
MAC-targ=00:00:00:00:00:00
ARP (Address Resolution Protocol)
IP addr.
MAC addr.
...
...
IP-B: 193.17.31.55
MAC-B: 05:98:76:6c:4a:7b
B
MAC broadcast:
ff:ff:ff:ff:ff:ff
IP-A:193.17.31.45
MAC-A: 00:9f:7a:89:90:7a
ARP-reply
A
LAN
src-MAC=MAC-A, dst-MAC=MAC-B
IP-mitt=IP-A
MAC-mitt=00:9f:7a:89:90:7a
ARP-reply
IP-targ=IP-B
MAC-targ=MAC-B
Formato dei pacchetti ARP
1
16
Tipo hardware
Tipo protocollo
Lunghezza
Lunghezza
indir. locale
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
Rete “nascosta”
C
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
server
DHCP
client
LAN
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
server
DHCP
client
LAN
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
server
DHCP
client
LAN
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
server
DHCP
client
LAN
DHCP
E’ possibile avere più server
DHCP
server
DHCP
client
DHCP
server
LAN
E’ possibile usare dei DHCP Relay
DHCP
Relay
DHCP
client
LAN
DHCP
server
Rete IP
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
CAMPO
OP
HTYPE
HLEN
HOPS
XID (Transaction ID)
SECS
FLAGS
CIADDR
BYTE
DESCRIZIONE
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)
312
Lista di opzioni per il trasferimento
di altre informazioni
op
YIADDR
SIADDR
GIADDR
CHADDR
SNAME
FILE
OPTIONS
options
INTRANET
Indirizzamento Privato, NAT, Tunnelling
Intranet
EG
sottorete
IG
rete
IG
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
ISP
R
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
ISP
R
ind. pubblici
NAT
R
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
Source Destination
10.24.1.177 145.13.2.34
NAT
Pool disponibile: sottorete
131.175.13
IP
privata
IP
pubblica
Possibilità di blocco
Source Destination
131.175.13.55 145.13.2.34
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
Internet
R
ind. pubblici
R
ind. privati
remote
web
server
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
Tabella di NAT
NAT
Pool disponibile: sottorete
131.175.13
Source Destination
10.24.1.177 145.13.2.34
IP
privata
IP
pubblica
10.24.1.177
…
…
131.175.13.55
…
…
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 query: server.azienda.com?
DNS
DNS resp:
10.43.55.6
Intranet
DNS resp:
131.175.21.8
DNS
ALG
Internet
R
Tabella di NAT
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
Intranet
ISP
Intranet
Virtual Private Networks
Tunnel di collegamento
ISP
Intranet
tunnel
ISP
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
Router/gateway
IP
Tunneling
Destination
Source
Payload
Tunnel
destination/source
Destination
Source
Destination
IP
Source
Payload
Tunnel payload
IP tunneling
ISP
Intranet
tunnel
ISP
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
340,282,366,920,938,463,463,374,607,431,768,211,456 indirizzi IP teorici
corrispondenti a 667 * 1021 (667 sestilioni) di indirizzi per m2 della Terra (superficie 0.51 * 1015)
Spazio di indirizzamento capiente
(128 bit)
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
32 bit
1
Vers.
Traffic class
Payload length
Flow label
Next Header Hop count
Source address
Destination address
40 byte
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
Version
IHL
16
24
Service Type
Identifier
Time to Live
Total Length
Flags
Protocol
Fragment Offset
31
bit
0
4
Version
12
Class
16
24
31
Flow Label
Payload Length
Next Header
Hop Limit
Header Checksum
32 bit Source Address
128 bit Source Address
32 bit Destination Address
Options and Padding
IPv4 Header
128 bit Destination Address
20 octets, 12 fields, including 3 flag bits
+ fixed max number of options
Changed
Removed
IPv6 Header
40 octets, 8 fields
+ Unlimited Chained Extension (options) Header
Next Header
Next Header
IPv6 Basic Header
Next Header
Next Header
IPv6 Extension 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
Restante parte dell’indirizzo
variabile
128 bit
Tipi di indirizzi IPv6
Prefix (binary)
0000 0000
0000 0001
0000 001
0000 010
0000 011
0000 1
0001
001
010
011
100
101
110
1110
1111 0
1111 10
1111 110
1111 1110 0
1111 1110 10
1111 1110 11
1111 1111
Usage
Reserved for IPv4 addresses
Unassigned
OSI NSAP addresses
Novell Netware IPX addresses
Unassigned
Unassigned
Unassigned
Aggregatable Global Unicast add.
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
Unassigned
Link local use addresses
Site local use addresses
Multicast
Fraction
1/256
1/256
1/128
1/128
1/128
1/32
1/16
1/8
1/8
1/8
1/8
1/8
1/8
1/16
1/32
1/64
1/128
1/512
1/1024
1/1024
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
FP
13 bit
3 bit
8 bit
24 bit
16 bit
TLA (Top Level Aggregation)
NLA (Next Level Aggregation)
Interface ID
64 bit
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
FP – 10 bit
00…00
54 bit
Interface ID
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
FP – 10 bit
00…00
Subnet
38 bit
16 bit
Interface ID
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
FP
8 bit
000T
Flags
4 bit
Scope
4 bit
Group identifier
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
FP
8 bit
000T
Flags
4 bit
Scope
4 bit
Group identifier
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::1FF00:0
ultimi 24 bit
S-B
FF02::1 = all systems link-local scope
S-A
FF02::1FF00:0
ultimi 24 bit
Solicited-node
multicast address
Algoritmo di corrispondenza
dipendente dal tipo di link.
HX
Multicast
fisico
HA
A
Multicast
fisico
Unicast
fisico
ICMP Neighbor Solicitation
Target_addr=IP-B Sender_link_addr=HA
Dest.
HA
HY
Src_addr=IP-B
Dst_addr=IP-A
Src_addr=IP-A
Dst_addr=S-B
HB
Unicast
fisico
B
Dest.
HY
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
Invio su richiesta ad indirizzo
unicast richiedente
ICMP Router Advertisement
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
IPv6
IPv4
IPv6
IPv4
IPv6
Mitigazione esaurimento IPv4
NAT IPv6 - IPv4
IPv4
IPv6
IPv4
IPv6
Trasporto IPv6
IPv6
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
Address plus 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