Reti di Calcolatori
a.a. 2005/06
Lezione 15
Reti di Calcolatori
Andrea Frosini
1
Nel modello di riferimento:
Application
Transport
Network
Data Link
Fisico
Reti di Calcolatori
Andrea Frosini
2
Indirizzi IP
Ciascun host in Internet è identificato da un indirizzo IP costituito da:
• l’indirizzo della rete (network address) in cui è l’host
• l’indirizzo dell’host (host address) all’interno della rete di cui fa parte
I router in Internet hanno un indirizzo IP per ciascuna interfaccia di rete: ad esempio,
un router che collega due LAN possiede due indirizzi IP (uno per ciascuna scheda di
rete)
Un indirizzo IP è l’identificatore di una interfaccia di rete, non di un calcolatore
Gli indirizzi IP sono globali ed assegnati, al giorno d’oggi, da varie organizzazioni
coordinate da una autorità internazionale chiamata ICANN (Internet Corporation for
Assigned Names and Numbers). Il braccio operativo di ICANN è chiamato IANA
(Internet Assigned Numbers Authority)
Reti di Calcolatori
Andrea Frosini
3
Dotted Decimal Notation
Ciascun indirizzo IP è costituito da 32 bit (4 byte)
In genere sono rappresentati con la dotted decimal notation: quattro numeri decimali
che rappresentano il valore dei quattro byte dell’indirizzo
Ad esempio, l’indirizzo (in binario)
10100000 01010000 00011011 00000001
è rappresentato come
160.80.27.1
Reti di Calcolatori
Andrea Frosini
4
Schema del formato degli indirizzi IP
Reti di Calcolatori
Andrea Frosini
5
Formato degli indirizzi IP
• Classe A da 1.0.0.0 a 126.255.255.255:
contiene gli indirizzi di 126 reti con circa 16 milioni di host in ciascuna rete
• Classe B da 128.0.0.0 a 191.255.255.255:
contiene gli indirizzi di 16382 reti con circa 65500 host in ciascuna rete
• Classe C da 192.0.0.0 a 223.255.255.255:
contiene gli indirizzi di circa 2 milioni di reti con 254 host in ciascuna rete
• Classe D da 224.0.0.0 a 239.255.255.255:
contiene gli indirizzi multicast che permettono di inviare un pacchetto a diversi
host contemporaneamente
• Classe E da 240.0.0.0 a 255.255.255.255:
indirizzi riservati per future estensioni
Reti di Calcolatori
Andrea Frosini
6
Indirizzi IP speciali I
• Un indirizzo IP in cui l’host address è composto da tutti 0 fa riferimento all’intera
rete indicata dal network address
Ad esempio, l’indirizzo 160.80.0.0 è l’indirizzo della rete 160.80.
• Un indirizzo IP in cui l’host address è composto da tutti 1 è un indirizzo di
broadcast per tutti gli host nella rete indicata dal network address
Ad esempio, un pacchetto con indirizzo 160.80.255.255 è destinato a tutti
gli host nella rete 160.80.
• L’indirizzo 255.255.255.255 è il limited broadcast: il pacchetto è destinato a
tutti gli host nella rete locale a cui appartiene l’host sorgente
Reti di Calcolatori
Andrea Frosini
7
Indirizzi IP speciali II
• L’indirizzo 0.0.0.0 significa questo host: può essere usato solo durante
l’inizializzazione di un host e mai come indirizzo destinazione
• Un indirizzo IP avente network address nullo e host address non nullo indica un host
sulla stessa rete a cui appartiene l’host sorgente: può essere usato solo durante
l’inizializzazione di un host
• Gli indirizzi 127.xxx.yyy.zzz sono riservati per il loopback: i pacchetti non vengono
inviati ad una interfaccia di rete, ma gestiti come se fossero pacchetti entranti nell’host
sorgente
Reti di Calcolatori
Andrea Frosini
8
Limitazioni del formato degli indirizzi IP
I principali difetti degli indirizzi IP sono strutturali:
• la rete a cui appartiene l’host è codificata nell’indirizzo: un host non può cambiare di
posizione su Internet e mantenere lo stesso indirizzo IP (portatili, computer palmari,...)
• l’indirizzo IP è l’identificatore di una scheda di rete, non di un host: se un calcolatore
ha più di una interfaccia di rete non esiste un identificatore univoco
• la suddivisione in classi degli indirizzi IP è troppo rigida: ad esempio, cosa succede
se una organizzazione a cui è stato dato un indirizzo di classe A ha bisogno di più di un
network address? Oppure se in una rete di classe C vengono installati più di 254
calcolatori?
Reti di Calcolatori
Andrea Frosini
9
IP routing tradizionale
La procedura di routing (instradamento) dei pacchetti IP è molto semplice, in quanto
nell’indirizzo IP di un pacchetto è codificato il numero della rete alla quale appartiene
l’host destinazione
Ogni router possiede una tabella di routing aggiornata staticamente (nel caso delle
reti più piccole) o dinamicamente
La tabella di routing in genere determina i percorsi verso intere reti, non verso singoli
host. Infatti da ciascun indirizzo IP è sempre possibile determinare la classe (A, B, C)
e ricavare quindi il numero della rete
La tabella di routing può però contenere, se necessario, informazioni su come
raggiungere gli host appartenenti alle reti collegate direttamente al router
Reti di Calcolatori
Andrea Frosini
10
La tabella di routing tradizionale
La tabella di routing contiene:
• per ciascuna rete broadcast collegata direttamente al router, un singolo record
con l’indicazione dell’interfaccia di rete (NIC) verso la rete
• per ciascun host collegato al router ma non facente parte di una rete broadcast,
un record con l’indicazione dell’interfaccia di rete (NIC) da utilizzare per
raggiungerlo
• un numero variabile di record per reti non collegate direttamente al router,
insieme con l’indicazione di un router adiacente a cui i pacchetti devono
essere inviati
• un record per un router adiacente di default, a cui inviare i pacchetti destinati a
reti sconosciute
Reti di Calcolatori
Andrea Frosini
11
Subnet addressing
La rigida divisione in classi degli indirizzi IP è un grosso problema. Ad esempio, gli
indirizzi di classe B (reti di media dimensione) sono esauriti da tempo
Una delle soluzioni consiste in una estensione del protocollo tradizionale: il subnet
addressing (od anche subnetting)
L’indirizzo IP non viene più suddiviso in network address e host address, ma in:
• internet part: corrisponde al vecchio network address, ed è la porzione dell’indirizzo
che viene interpretata dai router all’esterno della propria internetwork “locale”
• local part: è suddivisa nel numero di una rete all’interno della internetwork locale, ed
in un numero di host nella rete
Reti di Calcolatori
Andrea Frosini
12
Maschera della subnet
All’interno di ciascuna internetwork locale è necessario adottare un unico formato
per la local part dell’indirizzo IP
A tale scopo si utilizza una maschera di subnet (subnet mask)
E’ un numero di 32 bit, in cui:
• i bit 1 indicano i bit che codificano i numeri di network
• i bit 0 indicano i bit che codificano il numero di host
La maschera si codifica in genere con la dotted decimal notation
Reti di Calcolatori
Andrea Frosini
13
Esempio di subnetting
Se in una internetwork si utilizza la maschera 255.255.255.0, l’indirizzo IP
160.80.27.1 rappresenta:
255.255.255.0 1111111111111111 11111111 00000000
160.80.27.1
1010000001010000 00011011 00000001
• 160.80: indirizzo di rete di classe B
• 27: indirizzo della rete nella internetwork locale
• 1: indirizzo dell’host nella rete
Si potrebbero avere perciò 256 subnet nella internetwork locale, e 254 host in
ciascuna subnet
Se la maschera fosse invece 255.255.252.0, l’indirizzo della subnet sarebbe 24 e
l’indirizzo dell’host sarebbe 769; si avrebbero al massimo 64 subnet e 1022 host in
ciascuna subnet
Reti di Calcolatori
Andrea Frosini
14
Routing con subnetting I
Il subnet addressing complica la procedura di routing dei pacchetti
Ogni record della tabella di routing ha 3 campi principali:
• un network address
• una maschera di subnet
• l’indirizzo IP di un router (raggiungibile con un hop)
La tabella contiene sempre un record per ciascuna rete connessa direttamente al
router, ed un record per il router di default
La tabella può anche contenere record per reti non direttamente connesse al router
Reti di Calcolatori
Andrea Frosini
15
Routing con subnetting II
Per ricavare l’indirizzo del router a cui va inviato un pacchetto destinato all’host con
indirizzo IP D:
per ciascun record della tabella di routing con maschera di subnet M, indirizzo di
rete N e indirizzo di router R:
– calcola l’AND logico (bit a bit) tra D e M
– se il risultato è uguale a N, invia il pacchetto a R (o direttamente all’host se è
in una rete connessa direttamente al router)
– se il risultato non è uguale a N, continua con il prossimo record della tabella
I record della tabella sono analizzati cominciando da quelli con le maschere più
lunghe (maggior numero di bit ‘1’)
Il record per il router di default è sempre analizzato per ultimo
Reti di Calcolatori
Andrea Frosini
16
Esempio di routing con subnetting
Reti di Calcolatori
Andrea Frosini
17
Network Address Translation
Poiché gli indirizzi IP scarseggiano, molte aziende usano un singolo indirizzo IP per
tutti i calcolatori della internetwork interna per mezzo di un meccanismo chiamato
Network Address Translation (NAT), od anche IP Masquerading
Funziona soltanto con pacchetti IP che trasportano pacchetti di livello Transport
appartenenti al protocollo TCP oppure al protocollo UDP
Infatti, sfrutta i numeri di porta propri dei protocolli TCP e UDP, che sono memorizzati
in opportuni campi dei pacchetti di livello Transport
A tutti i calcolatori della internetwork interna viene assegnato un diverso indirizzo IP in
una delle seguenti tre zone: 10.0.0.0:8, 172.16.0.0:12, e 192.168.0.0:16 (questi
indirizzi sono riservati per il NAT)
Tutta la internetwork è collegata ad Internet tramite un unico router che opera anche
come dispositivo NAT; l’interfaccia di rete verso Internet è identificata dall’indirizzo IP
ufficiale dell’azienda
Reti di Calcolatori
Andrea Frosini
18
Inoltro dei pacchetti con NAT
Per ogni pacchetto IP in uscita dall’internetwork, il dispositivo NAT:
• Sostituisce l’indirizzo IP del mittente con l’indirizzo IP ufficiale
• Sovrascrive il numero di porta mittente nel pacchetto Transport con un
identificatore del calcolatore mittente
• Memorizza in una tabella l’indirizzo IP interno, il numero di porta mittente originario,
e l’identificatore del calcolatore
• Inoltra il pacchetto
Per ogni pacchetto IP in entrata sull’internetwork, il dispositivo NAT compie
l’operazione inversa:
• Legge l’identificatore memorizzato come numero di porta destinatario nel pacchetto
Transport, e determina l’indirizzo IP interno ed il numero di porta originale
• Sostituisce il numero di porta destinatario nel pacchetto Transport, e sostituisce
l’indirizzo IP destinatario nel pacchetto IP
• Inoltra il pacchetto sulla internetwork
Reti di Calcolatori
Andrea Frosini
19
Altri protocolli del livello Network di IPS
Oltre al protocollo IP, che è utilizzato per la trasmissione dei datagram, il livello
Network di IPS definisce diversi altri protocolli, tra cui:
• Internet Control Message Protocol
• Address Resolution Protocol
• Reverse Address Resolution Protocol, Bootstrap Protocol e Dynamic Host
Configuration Protocol
• Open Shortest Path First
• Border Gateway Protocol
Reti di Calcolatori
Andrea Frosini
20
Internet Control Message Protocol
Il protocollo ICMP (Internet Control Message Protocol) è utilizzato per lo scambio di
messaggi tra i router IP; questi messaggi sono incapsulati in normali pacchetti IP
RFC 792 e l’archivio on-line di IANA definisce vari tipi di messaggi ICMP, tra cui:
• DESTINATION UNREACHABLE (destinazione non raggiungibile): impossibile
localizzare un host destinazione, oppure non esiste un percorso valido
• TIME EXCEEDED (tempo scaduto): un pacchetto è stato scartato perché il suo TTL
è stato azzerato
• PARAMETER PROBLEM (parametro non valido): un campo dell’header di un
pacchetto contiene un valore illegale
• REDIRECT: un router ritiene che un pacchetto sia stato inviato a lui per errore
• ECHO e ECHO REPLY: utilizzati per controllare se un router od un host sono
raggiungibili; ad ogni “request” si risponde con un “reply”
• TIMESTAMP e TIMESTAMP REPLY: come ECHO e ECHO REPLY, ma la replica
contiene alcuni timestamp che consentono la misurazione del tempo di trasmissione
Reti di Calcolatori
Andrea Frosini
21
Il protocollo ARP I
A livello Data Link, la destinazione dei frame è individuata dall’indirizzo hardware
delle schede di rete
A livello Network la destinazione è individuata da un indirizzo IP
E’ necessario avere un meccanismo che permetta di collegare questi indirizzi tra loro
Il protocollo ARP (Address Resolution Protocol) del livello Network:
• serve per derivare dall’indirizzo IP dell’host di destinazione l’indirizzo hardware
della sua scheda di rete
• utilizza i servizi del livello Data Link per spedire un pacchetto ARP
E’ definito dall’RFC 826
Il protocollo RARP (Reverse ARP) consente, al contrario, di derivare l’indirizzo
hardware di un host dal suo indirizzo IP
Reti di Calcolatori
Andrea Frosini
22
Il protocollo ARP II
Se un host A vuole conoscere l’indirizzo hardware associato all’indirizzo IP di B:
• A invia un pacchetto ARP con l’indirizzo IP di B incapsulato in un frame broadcast
• solo B risponde al frame broadcast, indirizzando un pacchetto ARP ad A contenente
l’indirizzo hardware associato al proprio indirizzo IP
• A inserisce temporaneamente l’indirizzo hardware in una tabella (cache ARP), in
modo da non ripetere l’operazione nel prossimo futuro
Ottimizzazioni:
• il pacchetto ARP di A contiene l’indirizzo hardware e l’indirizzo IP di A, in modo da
evitare una ulteriore richiesta ARP da parte di B
• tutti i calcolatori che ricevono frame broadcast con pacchetti ARP, estraggono le
informazioni contenute e le memorizzano nella cache ARP
Reti di Calcolatori
Andrea Frosini
23
Inoltro dei pacchetti IP da parte di router su rete broadcast
Si supponga che un router R1 riceva un pacchetto IP originato da un host A e
destinato ad un host B remoto. Allora:
• R1 determina (consultando la tabella di routing) l’indirizzo IP di un router R2 al
quale deve essere inoltrato il pacchetto IP; determina anche l’interfaccia di rete N che
permette di raggiungere R2
• R1 consulta la cache ARP cercando il record relativo all’indirizzo IP di R2; se tale
record non esiste, invia un pacchetto di richiesta ARP con un frame broadcast
sull’interfaccia di rete N
• dopo aver determinato l’indirizzo hardware (Data Link) di R2, R1 incapsula il
pacchetto IP in un frame con destinazione R2, e lo trasmette sull’interfaccia N
• R2 riceve il pacchetto IP, e ripete l’intero processo
Nota bene: gli indirizzi IP di R1 e R2 non sono scritti nel pacchetto IP da inoltrare!
Reti di Calcolatori
Andrea Frosini
24
Il protocollo DHCP
Il protocollo DHCP (Dynamic Host Configuration Protocol, definito in RFC 1541, 2131
e 2132) fornisce parametri di configurazione agli host Internet. Consta di due parti: un
protocollo per comunicare tali parametri dal server DHCP agli host ed un sistema di
allocazione degli indirizzi di rete.
Un server DHCP ha a disposizione un gruppo di indirizzi IP che possono essere
assegnati liberamente ai client che ne fanno richiesta:
• E’ possibile assegnare ad un determinato client (indirizzo hardware) uno specifico
indirizzo IP
• E’ possibile anche assegnare ad ogni client che ne fa richiesta un indirizzo IP
scelto liberamente in un gruppo di indirizzi a disposizione del server
• Gli indirizzi IP possono essere dati in prestito (leasing): l’assegnazione di un indirizzo
IP ha un tempo limite, dopo il quale l’indirizzo viene considerato nuovamente libero ed
assegnabile, a meno che il client prima della scadenza non rinnovi la richiesta
Per i più curiosi: http://cdc.roma2.infn.it/supporto/dhcp.html
Reti di Calcolatori
Andrea Frosini
25
Protocolli di routing per Internet
In Internet ogni AS è gestito da una singola autorità, che può scegliere liberamente
l’algoritmo di routing da adottare all’interno dell’AS
• Il routing all’interno di ciascun AS è gestito da un algoritmo interior gateway
protocol (o IGP); ad esempio:
– RIP (Routing Information Protocol), di tipo distance vector (oggi quasi scomparso)
– OSPF (Open Shortest Path First), di tipo link state
• Il routing tra gli AS è gestito da un algoritmo exterior gateway protocol (o EGP)
– EGP era anche il nome del primo algoritmo utilizzato in Internet, oggi abbandonato
– BGP (Border Gateway Protocol), essenzialmente di tipo distance vector
Reti di Calcolatori
Andrea Frosini
26
Limitazioni del protocollo IP
La versione attuale del protocollo IP (numero 4) è oramai superata tecnologicamente:
• lo spazio di indirizzi IP è praticamente esaurito
• Internet è ormai più commerciale che accademica, quindi serve più sicurezza
• portatili, cellulari (WAP) e computer palmari spingono verso un modello in cui gli
host si muovono dinamicamente nello spazio
• in futuro ogni televisore potrebbe essere un nodo Internet che offre programmi
interattivi (video on demand)
Reti di Calcolatori
Andrea Frosini
27
Internet Protocol version 6 I
Per superare le limitazioni del protocollo IP versione 4, la IETF ha cominciato a
lavorare nel 1990 alla nuova versione del protocollo IP (numero 6)
La nuova versione (RFC 2460–2466) è chiamata IPv6 (in precedenza, il tentativo di
definire un nuovo protocollo era conosciuto come IP Next Generation, IPng)
Idealmente, il nuovo protocollo:
• supporta miliardi di host, anche assegnando gli indirizzi in modo inefficiente
• riduce la dimensione delle tabelle di routing
• semplifica il protocollo per aumentare la velocità dei router
• fornisce maggiore sicurezza tramite meccanismi di autenticazione e crittografia
• prende in considerazione il tipo di servizio del traffico, particolarmente il traffico
real-time
Reti di Calcolatori
Andrea Frosini
28
Internet Protocol version 6 II
• migliora il supporto per la trasmissione di tipo multicast
• permette ad un host di muoversi senza cambiare il proprio indirizzo
• il protocollo è aperto: può evolversi in futuro restando compatibile con le precedenti
versioni
• coesiste pacificamente con la versione 4 del protocollo IP
Anche se non tutti questi obiettivi sono stati completamente raggiunti, IPv6
rappresenta una decisiva evoluzione rispetto a IPv4
Reti di Calcolatori
Andrea Frosini
29
Formato del pacchetto IPv6
Reti di Calcolatori
Andrea Frosini
30
L’header IPv6
• Version (4 bit): numero di versione del protocollo IP (ossia 6)
• Traffic class (8 bit): distingue pacchetti aventi diversi requisiti di trasmissione in
tempo reale
• Flow label (20 bit): utilizzato quando vogliamo predeterminate caratteristiche di
qualità del servizio
• Payload length (16 bit): lunghezza del pacchetto escludendo i primi 40 byte della
testata
• Next header (8 bit): indica quale sub-header opzionale segue questa testata,
oppure il protocollo di livello Transport al quale appartengono i dati che seguono
questo header
• Hop limit (8 bit): un contatore TTL decrementato ad ogni hop; quando si azzera il
pacchetto viene scartato
• Source address (128 bit): l’indirizzo IPv6 dell’host sorgente
• Destination address (128 bit): l’indirizzo IPv6 dell’host destinazione
Reti di Calcolatori
Andrea Frosini
31
Extension header
Facoltativamente, un pacchetto IP può contenere uno o più extension header tra i
seguenti:
• Hop per hop: informazioni varie per i router (supporto per jumbogrammi)
• Destination: informazioni aggiuntive relative alla destinazione (attualmente non
utilizzata)
• Routing: lista di router da utilizzare (simile all’opzione loose source routing di IPv4)
• Fragment: gestione dei frammenti del datagramma (contiene identificatore di
datagramma, posizione del frammento nel datagramma originale e bit che indica se
il frammento è seguito da altri frammenti)
• Autenticazione: verifica dell’identità del trasmittente
• Carico utile cifrato: informazioni relative al contenuto cifrato
Reti di Calcolatori
Andrea Frosini
32
Indirizzi IPv6 I
Nei 16 byte dell’indirizzo IPv6 si possono codificare
2128 = 340 282 366 920 938 463 463 374 607 431 768 211 456
identificatori diversi, ossia 700 000 miliardi di miliardi per metro quadro di superficie
del globo. Speriamo che siano sufficienti!
I bit iniziali di un indirizzo IPv6 indicano l’utilizzo dell’indirizzo stesso; le sequenze di
bit iniziali fino ad oggi assegnate sono:
0000 0000
Riservato (contiene gli indirizzi IPv4 compatibili)
0000 001
Riservato per assegnazioni NSAP (protocolli ISO)
0000 010
Riservato per assegnazioni IPX (protocolli Novell)
001
Indirizzi unicast e aggregabili (classi A, B e C di IPv4)
1111 1110 10
Indirizzi da usare su una linea locale
1111 1110 11
Indirizzi da usare in un sito locale
1111 1111
Indirizzi di tipo multicast (classe D di IPv4)
Reti di Calcolatori
Andrea Frosini
33
Indirizzi IPv6 II
La rappresentazione degli indirizzi IPv6 è costituita da parole di 16 bit in esadecimale
separate da “ : ”:
47CD:0000:0000:0000:0022:1234:A456:0124
Un indirizzo con un gran numero di zeri contigui può essere scritto in modo compatto
omettendo i campi che valgono zero:
47CD::0022:1234:A456:0124
Un indirizzo IPv6 avente i primi 96 bit nulli rappresenta un indirizzo IPv4
::A050:5001 equivale a ::160.80.80.1
Alcuni indirizzi IPv6 codificano indirizzi IPv4 assegnati alla stessa interfaccia di rete:
::FFFF:A050:5001 codifica 160.80.80.1
Reti di Calcolatori
Andrea Frosini
34
Confronto tra i pacchetti IPv6 e IPv4
• Il campo Protocol in IPv4 è stato inserito come caso particolare di Next header in
IPv6
• Il campo Options in IPv4 è stato sostituito da header aggiuntivi dopo l’header
principale; l’header seguente è indicato da Next header
• Niente campi relativi alla frammentazione: ogni host e router IPv6 deve funzionare
con pacchetti di almeno 1280 byte; se un router non riesce a inviare un pacchetto
troppo lungo invia un messaggio d’errore all’host sorgente, che frammenterà il
pacchetto utilizzando un header aggiuntivo
• E’ scomparso il campo Checksum: per motivi di efficienza i router non effettuano
alcun controllo d’errore sulla testata (il controllo è comunque svolto dai livelli superiori)
• Usando un extension header, è possibile creare pacchetti di dimensione enorme
(jumbogrammi, cioè datagrammi di dimensione superiore a 65535 byte); sono utili per
linee ad altissima velocità tra supercalcolatori
Reti di Calcolatori
Andrea Frosini
35
Transizione da IPv4 a IPv6
La transizione da IPv4 a IPv6 sarà graduale: isole IPv6 di dimensione sempre
maggiore si fonderanno insieme, fino a coprire l’intera Internet
Come trasportare pacchetti IPv6 in reti che ancora utilizzano IPv4?
• tunneling: il pacchetto IPv6 è incapsulato in un pacchetto IPv4, che è inviato per
mezzo del tunnel ad un router od ad un host in grado di funzionare sia con IPv4 che
con IPv6
• dual stack operation: tutti i nodi IPv6 possono eseguire sia IPv6 che IPv4, a seconda
del campo Version all’interno dei pacchetti
Reti di Calcolatori
Andrea Frosini
36
Scarica

network address