Indirizzi IP

Transcript

Indirizzi IP
Architettura di TCP/IP
I semestre 04/05
L’architettura di Internet è organizzata intorno
a tre servizi organizzati gerarchicamente
Indirizzi IP
Prof. Vincenzo Auletta
[email protected]
http://www.dia.unisa.it/professori/auletta/
Università degli studi di Salerno
Laurea in Informatica
FTP, telnet, ...
Servizio di trasporto affidabile
TCP
Servizio inaffidabile di consegna di pacchetti
IP
2
IP: Internet Protocol
IP:Internet Protocol
È il livello di Network di TCP/IP
Il livello Network si occupa di:
consente a due entità di protocollo di
trasporto, residenti su macchine differenti, di
scambiare messaggi in modo trasparente
servizi di rete
indirizzamento
istradamento
qualità del servizio
dimensione massima dei pacchetti
controllo degli errori
controllo del flusso
Un protocollo datato ...
... ma non obsoleto
3
Servizi Applicativi
4
Delegati al livello di
trasporto TCP
IP: Internet Protocol
IP: Internet Protocol
Il protocollo IP provvede a:
IP fornisce un servizio
non connesso
definire il formato delle unità elementari di dati
(datagram) trasferiti su una rete TCP/IP
fornire un metodo di indirizzamento universale per
l’internet
scegliere il percorso che un datagram segue nell’internet
per giungere a destinazione
definire le regole che servono a implementare il concetto
di consegna inaffidabile di datagram
Ogni datagram (pacchetto IP) è trattato separatamente
Pacchetti relativi alla stessa sessione potrebbero seguire
percorsi differenti nell’internet
inaffidabile
La consegna del datagram al destinatario non è garantita
al meglio delle possibilità (best try)
Il protocollo non decide mai deliberatamente di eliminare
un datagram
5
6
Esempio di Architettura di Rete
FTP client
Interazioni di IP con altri Protocolli
User Proc.
FTP server
TCP
TCP
IP
IP
7
User Proc.
User Proc.
Application
TCP
router
802.3
driver
User Proc.
802.3
driver
UDP
Transport
IP
802.5
driver
ICMP
IP
IGMP
Network
ARP
HW Intrfc
RARP
Link
802.5
driver
8
Indirizzi IP
Formato degli Indirizzi IP
Un indirizzo IP identifica univocamente un utente
dei servizi di rete
Sono ampi 32 bit (4 byte)
Si scrivono come 4 numeri decimali separati dal
carattere “.”
Ogni numero rappresenta il contenuto di un byte ed
è quindi compreso tra 0 e 255
Esempi
L’indirizzo è assegnato all’interfaccia di rete
un host può avere più indirizzi IP (multihomed), uno per
ogni interfaccia di rete
il formato dell’indirizzo è indipendente dal tipo di rete
fisica a cui l’host è collegato
Gli indirizzi sono assegnati da una autorità unica che
ne garantisce l’univocità
9
Fino al 98 una persona si occupava di tutto
Attualmente la Internet Corporation for Assigned Names
and Numbers (ICANN) si occupa di assegnare gli indirizzi
ed i nomi
131.190.0.2 (10000011 10111110 00000000 00000010)
1.1.2.17
(00000001 00000001 00000010 00010001)
200.70.27.33 (11001000 01000110 00011011 00100001)
10
Schema di Indirizzamento con le
Classi
Indirizzi IP
Ogni indirizzo è formato da due parti
Meccanismo di indirizzamento originario
identificativo di rete
identificativo di host
Pensato per l’internet degli anni 80
Non ha retto alla enorme diffusione di Internet
Gli indirizzi a due livelli facilitano la politica di
gestione degli indirizzi e l’istradamento dei datagram
sull’internet
Prevede 5 classi di indirizzi
Le classi differiscono per la lunghezza degli identificativi di
rete e di host
La lunghezza complessiva è sempre 32 bit
La classe di un indirizzo è identificata dai primi 4 bit
I gateway utilizzano l’identificativo di rete per far arrivare
il datagram alla rete fisica del destinatario
Il gateway della rete del destinatario utilizza l’identificativo
di host per trasferire il datagram al destinatario
11
12
Formato degli Indirizzi di classe A,
BeC
0 1
0
7 8
Formato degli Indirizzi di classe D
ed E
0 1 2 3
31
Rete
1 1 1 0
Host
0 1 2
15 16
31
Rete
0 1 2 3
Host
1 1 11
Classe B
0 1 2 3
Rete
14
Classe A
Classe B
Identificativo di rete
Identificativo di rete
14 bit
max 16K reti
valori compresi tra 128.0.0.0 e 191.255.255.255
7 bit
max 128 reti
valori compresi tra 0.0.0.0 e 127.255.255.255
Identificativo di host
Identificativo di host
16 bit
max 64K host
24 bit
max 16M host
0
15
7 8
Rete
Reserved for Future Use
Host
Classe C
0 1
31
Classe E
31
23 24
1 1 0
13
Multicast Address
Classe D
Classe A
1 0
31
0 1 2
31
Host
16
1 0
15 16
Rete
31
Host
Classe C
Classe D
Identificativo di rete
destinato per un insieme di host che appartengono
ad un gruppo multicast
21 bit
max 2M reti
valori compresi tra 192.0.0.0 e 223.255.255.255
valori compresi tra 224.0.0.0 e 239.255.255.255
...lo vedremo in dettaglio in seguito
Identificativo di host
8 bit
max 256 host
0 1 2 3
1 1 0
Rete
0 1 2 3
31
23 24
1 110
Host
17
31
multicast group ID
18
Assegnazione degli Indirizzi
Classe E
destinato per usi futuri
L’autorità centrale assegna gli identificativi di rete
valori compresi tra 240.0.0.0 e 255.255.255.255
l’utente fa richiesta per una classe di indirizzi
L’amministratore di rete assegna gli identificativi di
host
0 1 2 3
1 111
la responsabilità sull’univocità degli indirizzi di host è
delegata ad un’autorità locale
31
E’ possibile assegnare arbitrariamente indirizzi a
host senza richiederli all’ICANN
riservato per usi futuri
...questi indirizzi non possono essere utilizzati sull’Internet
19
20
Indirizzi di Rete e Indirizzi di Host
Ordine di Trasmissione
network byte order:
Un indirizzo IP si può riferire sia ad un singolo host
che ad un’intera rete
bit
bit
bit
bit
l’indirizzo di host 0 è riservato e identifica la rete nel suo
complesso
utilizzato nelle tabelle di routing
Esempio
Byte ordering per interi binari:
192.41.218.10 identifica l’host 10 della rete di classe C
192.41.218
192.41.218.0 identifica la rete di classe C 192.41.218
21
0-7
8-15
16-23
24-31
Macchine con Big Endian: o.k.
Macchine con Little endian...devono fare la conversione
a network byte order
22
IP Routing: Cenni
IP Routing: Tavola di Routing
Lo strato di IP di un sistema può essere configurato
come un host oppure come host+router
Lo strato di IP ha una tavola di routing (che usa
ogni volta che riceve un datagram) contenente:
Se la destinazione è connessa direttamente all’host
o su una rete condivisa (e.g. ethernet/token ring):
il datagram è mandato direttamente a destinazione
Indirizzo IP di destinazione: di rete o completo
Indirizzo di next-hop router o di net-id direttamente
connessa
Flag: specificano il tipo dei due indirizzi precedenti
specifiche di quale interfaccia di rete su cui immettere il
datagram per la trasmissione
Altrimenti l’host manda il datagram ad un router di
default che lo spedirà a destinazione
è tutto semplice?...
/sbin/route (...Unix) – route PRINT (NT)
23
24
Indirizzi Riservati
Utilizzo della Tavola di Routing
matching con l’indirizzo di host completo
tutti 0
manda il pacchetto al next-hop router o all’interf. connessa
direttamente (indicati)
point-to-point
tutti 0
matching con l’indirizzo di rete
manda il pacchetto al next-hop router o all’interf. connessa
direttamente (indicati)
ethernet
questo host
host
tutti gli host della rete
tutti 1
broadcast limitato
default route
rete
manda il pacchetto al next-hop router indicato
tutti 1
altrimenti... packet undeliverable
25
host unreachable
network unreachable
26
Indirizzi di Broadcast
any (in genere 0.0.1)
tutti gli host di rete
broadcast diretto
loopback
Indirizzo di Loopback
Un indirizzo con tutti i bit dell’ identificativo di host
uguali ad 1 identifica tutti gli host di una rete:
net-id broadcast
L’indirizzo 127.0.0.1 è riservato per il loopback
l’indirizzo identifica lo stesso host che ha spedito il
datagram
utile per test e debugging
consente di gestire la comunicazione tra processi sulla
macchina locale allo stesso modo che tra processi remoti
un datagram spedito ad un indirizzo broadcast verrà
consegnato a tutti gli host della rete
su alcune reti può essere molto costoso
Esempio
192.41.218.255 identifica tutti gli host della rete
192.41.218.0
lo standard IP vieta di definire indirizzi con
identificativi di rete 127
L’indirizzo 255.255.255.255 identifica tutti gli host della
rete a cui è collegato il mittente:
27
127
host su questa rete
28
Reti Logiche e Fisiche: Esempio
di classe C
Indirizzi Locali
Alcuni identificativi di rete sono stati riservati per
uso privato
192.41.218.0
Ogni organizzazione è libera di assegnare questi indirizzi ai
suoi host
I router non istraderanno mai datagram da e verso host
con questi indirizzi
.254
Router
193.205.162.0
.4
Bridge
10.0.0.0
172.16.0.0
192.168.0.0
193.205.162.0
.1
.2
30
Esaurimento degli Indirizzi di
classe B
Debolezze dello Schema di
Indirizzamento
una rete di 256 host richiede un indirizzo di classe
B
L’indirizzo IP si riferisce alla connessione alla rete
se un host cambia rete deve cambiare indirizzo
Problematico gestire utenti mobili
oltre 65000 indirizzi inutilizzati
gli indirizzi di classe B sono quasi esauriti
Se un host ha più indirizzi il comportamento del
protocollo IP dipende dall’indirizzo utilizzato
se una rete di classe C supera i 255 host tutti gli
indirizzi devono essere riconvertiti a classe B
31
.254
.3
Indirizzi disponibili
29
.2
.1
Cambia l’identificativo di rete
Tutti i router dovrebbero aggiornare le tabelle di routing
Nessuno richiede indirizzi di classe C
32
Come migliorare l’utilizzo dello spazio degli indirizzi
di IP, mantenendo la compatibilità con il vecchio
sistema?
Assegnare lo stesso identificativo di rete a più reti
fisiche...subnetting
Subnetting
Uso del Subnetting
La dimensione dell’identificativo di rete della parte
locale non è fissata
L’indirizzo IP è diviso in una parte pubblica (ex rete)
ed una parte locale (ex host)
parte pubblica
parte pubblica
consente la massima flessibilità per la gestione dello
spazio degli indirizzi
una rete di classe B può essere divisa per esempio in
parte locale
rete
254 sottoreti da 254 host (8 bit net-id + 8 bit host)...-2
6 sottoreti da 8190 host (3 bit net-id + 13 bit host)...-2
8190 sottoreti da 6 host (13 bit net-id + 3 host)...-2
host
il routing nell’internet è fatto sulla parte pubblica
Compatibile con il vecchio schema
dimensione ridotta delle tavole sull’Internet
33
• la parte locale è divisa in un identificativo di rete fisica ed
un identificativo di host
34
Netmask
Esempio di Netmask
Un amministratore che vuole partizionare una rete in
sottoreti deve definire una netmask
Partizionare la rete di classe B 140.252.0.0 in
14 subnet da 4094 host
maschera di 32 bit
bit a 1 in corrispondenza dei campi network e subnetwork
bit a 0 in corrispondenza del campo host
• Netmask 255.255.240.0 o 140.252.0.0/20
• 11111111 11111111 11110000 00000000
Lo standard ammette tutte le sequenze di 32 bit come
maschere
nella realtà vengono utilizzate solo maschere costituite da
una sequenza di 1 seguita da una sequenza di 0
Es. 11111111 11111111 11111000 00000000 (255.255.248.0)
35
Per interpretare correttamente gli indirizzi c'è
bisogno di distinguere tra identificativo di rete e
host
36
• Notazione alternativa
• {network, subnet, host}
• La sottorete 2 ha indirizzo (140.252, 2, 0)
• L’indirizzo di broadcast della sottorete 2 è
(140.252, 2, -1)
Subnet Classe C: 192.41.218.0/28
NET ID
PRIMO HOST
ULTIMO
NET ID
PRIMO HOST
ULTIMO
.0
.1
.14
.128
.129
.142
.16
.17
.30
.144
.145
.158
.32
.33
.46
.160
.161
.174
.48
.49
.62
.176
.171
.190
.64
.65
.78
.192
.193
.206
.80
.81
.94
.208
.209
.224
.96
.97
.110
.224
.225
.238
.112
.113
.126
.240
.241
.254
37
Indirizzi di Broadcast per Sottoreti
Lo standard stabilisce che con k bit si possono
specificare 2k indirizzi di sottoreti
anche la sottorete 0 e la sottorete 2k-1
Ogni sottorete ha un proprio indirizzo di rete ed un
indirizzo di broadcast
indirizzo di host formato da tutti 0 o tutti 1
E’ possibile associare anche un indirizzo di rete ed
un indirizzo di broadcast all’insieme delle sottoreti
38
Indirizzi di Subnet di Lunghezza
Variabile
i router CISCO vietano l’uso di 0 e 2k-1 come indirizzi di sottorete
Schema di Indirizzamento senza
Classi (CIDR)
E’ possibile costruire sottoreti con netmask di
lunghezza differente
Agli inizi degli anni 90 ci si è resi conto che gli
indirizzi disponibili si stavano esaurendo
Es. dividere una rete di classe C in una sottorete con 126
host e due sottoreti con 62 host
la soluzione del subnetting aveva solo rinviato il problema
Soluzioni
L’utilizzo di netmask di lunghezza differente rende
più difficile la gestione dell’instradamento ed è
sconsigliata
Allargare lo spazio di indirizzamento a 128 bit (IP6) – a
larga scadenza
Rendere più flessibile l’utilizzo degli indirizzi a 32 bit
(indirizzi senza classi CIDR) – a breve scadenza
si possono creare indirizzi ambigui (soprattutto per
broadcast)
39
però non si possono usare gli indirizzi di sottorete 0 e 2k-1
la soluzione dipende dal router
40
Supernetting
Indirizzi CIDR e Bitmask
Lo schema CIDR consente di assegnare blocchi di
indirizzi di dimensione 2k, per ogni k
Lo schema CIDR consente di assegnare alla stessa
rete fisica un blocco di indirizzi di rete consecutivi
Utilizza una bitmask (equivalente
identificare la dimensione dei blocchi
(net, count)
count indirizzi di rete a partire da net
Tutti gli indirizzi di un blocco hanno un prefisso
comune identificato dalla bitmask
42
Filosofia di CIDR
Indirizzo base
ad ogni ISP è assegnato un blocco di indirizzi contigui
distinto
172.50.204.0/21
Ogni ISP subnetta il suo blocco di indirizzi in
sottoblocchi contigui da assegnare ai suoi clienti
ogni sottoblocco sarà identificato da un prefisso comune
ed una bitmask
L’istradamento è più facile
43
il prefisso è utilizzato nelle tabelle di routing come indirizzo
di rete
Esempio Applicazione CIDR
L’accesso all’internet è gestita dagli ISP
un router conosce le rotte solo agli host del suo blocco
tutto il traffico rimanente è inviato al router del
superblocco che lo contiene
per
Servono 11 bit per identificare ogni host
Indirizzo CIDR
128.211.168.0/21
Esempio: (192.41.218.0, 2)
41
netmask)
Esempio: assegnare un blocco di 2048 indirizzi a
partire da 128.211.168.0
Consente anche di ridurre le dimensioni delle tavole di
routing
identifica le reti di classe C 192.41.218.0 e 192.41.219.0
permette di assegnare ad una rete di 256 host due
indirizzi di classe C consecutivi invece che un indirizzo di
classe B
a
44