Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 15.
-
Upload
porfirio-riccardi -
Category
Documents
-
view
213 -
download
0
Transcript of Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 15.
Reti di Calcolatori Andrea Frosini 1
Reti di Calcolatoria.a. 2005/06
Lezione 15
Reti di Calcolatori Andrea Frosini 2
Nel modello di riferimento:
Application
Transport
Network
Data Link
Fisico
Reti di Calcolatori Andrea Frosini 3
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 direte)
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 organizzazionicoordinate da una autorità internazionale chiamata ICANN (Internet Corporation forAssigned Names and Numbers). Il braccio operativo di ICANN è chiamato IANA (Internet Assigned Numbers Authority)
Reti di Calcolatori Andrea Frosini 4
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
Dotted Decimal Notation
Reti di Calcolatori Andrea Frosini 5
Schema del formato degli indirizzi IP
Reti di Calcolatori Andrea Frosini 6
• 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
Formato degli indirizzi IP
Reti di Calcolatori Andrea Frosini 7
• Un indirizzo IP in cui l’host address è composto da tutti 0 fa riferimento all’interarete 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 dibroadcast per tutti gli host nella rete indicata dal network address
Ad esempio, un pacchetto con indirizzo 160.80.255.255 è destinato a tuttigli host nella rete 160.80.
• L’indirizzo 255.255.255.255 è il limited broadcast: il pacchetto è destinato atutti gli host nella rete locale a cui appartiene l’host sorgente
Indirizzi IP speciali I
Reti di Calcolatori Andrea Frosini 8
• 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
Indirizzi IP speciali II
Reti di Calcolatori Andrea Frosini 9
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 10
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 11
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
La tabella di routing tradizionale
Reti di Calcolatori Andrea Frosini 12
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
Subnet addressing
Reti di Calcolatori Andrea Frosini 13
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
Maschera della subnet
Reti di Calcolatori Andrea Frosini 14
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
Esempio di subnetting
Reti di Calcolatori Andrea Frosini 15
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
Routing con subnetting I
Reti di Calcolatori Andrea Frosini 16
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
Routing con subnetting II
Reti di Calcolatori Andrea Frosini 17
Esempio di routing con subnetting
Reti di Calcolatori Andrea Frosini 18
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
Network Address Translation
Reti di Calcolatori Andrea Frosini 19
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 pacchettoTransport, e determina l’indirizzo IP interno ed il numero di porta originale• Sostituisce il numero di porta destinatario nel pacchetto Transport, e sostituiscel’indirizzo IP destinatario nel pacchetto IP• Inoltra il pacchetto sulla internetwork
Inoltro dei pacchetti con NAT
Reti di Calcolatori Andrea Frosini 20
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 21
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
Internet Control Message Protocol
Reti di Calcolatori Andrea Frosini 22
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
Il protocollo ARP I
Reti di Calcolatori Andrea Frosini 23
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
Il protocollo ARP II
Reti di Calcolatori Andrea Frosini 24
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!
Inoltro dei pacchetti IP da parte di router su rete broadcast
Reti di Calcolatori Andrea Frosini 25
Il protocollo DHCP (Dynamic Host Configuration Protocol, definito in RFC 1541, 2131e 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 essereassegnati liberamente ai client che ne fanno richiesta:
• E’ possibile assegnare ad un determinato client (indirizzo hardware) uno specificoindirizzo IP• E’ possibile anche assegnare ad ogni client che ne fa richiesta un indirizzo IPscelto 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
Il protocollo DHCP
Reti di Calcolatori Andrea Frosini 26
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
Protocolli di routing per Internet
Reti di Calcolatori Andrea Frosini 27
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 28
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
Internet Protocol version 6 I
Reti di Calcolatori Andrea Frosini 29
• 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
Internet Protocol version 6 II
Reti di Calcolatori Andrea Frosini 30
Formato del pacchetto IPv6
Reti di Calcolatori Andrea Frosini 31
• 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
L’header IPv6
Reti di Calcolatori Andrea Frosini 32
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
Extension header
Reti di Calcolatori Andrea Frosini 33
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 34
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 35
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 36
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