internet protocol (ip) icmp arp e rarp dhcp natreti.dist.unige.it/reti/reti1/parteiv/reti_32.pdf ·...
TRANSCRIPT
Reti di Telecomunicazioni R. Bolla, L. Caviglione, F. Davoli
32.2
Internet Protocol (IP)
L’indirizzamento IP
ICMP
ARP e RARP
DHCP
NAT
32.3
Il livello di rete preleva i segmenti dal livello di trasporto nell’host mittente
Sul lato mittente, incapsula i segmenti in datagrammi
Sul lato destinatario, consegna i segmenti al livello di trasporto
Protocolli del livello di rete in ogni host, router
Il router esamina i campi intestazione in tutti i datagrammi IP che lo attraversano
Rete Link
Fisico
Rete Link
Fisico
Rete Link
Fisico
Rete Link
Fisico
Rete Link
Fisico
Rete Link
Fisico
Rete Link
Fisico
Rete Link
Fisico
Applicazione Trasporto
Rete Link
Fisico
Applicazione
Trasporto Rete Link
Fisico
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.4
1 2 3
0111
Valore nell’intestazione del pacchetto in arrivo
Algoritmo d’instradamento
Tabella di inoltro locale Valore
d’intestazione Collegamento
d’uscita 0100 0101 0111 1001
3 2 2 1
Instradamento e inoltro
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.5
Physical
Data Link
Transport Session
Presentation Application
Non Specificati
TCP e UDP
FTP, Telnet, SMTP, SNMP, ...
OSI DoD
Network IP ICMP
ARP e RARP Protocolli di
Routing
32.6
IP è il protocollo principale del livello di rete della architettura DoD o Internet Protocol Suite (TCP/IP).
Attualmente è in uso la versione 4 (IPv4). È da tempo definita ed in fase di sperimentazione una
nuova versione di IP, denominata IPv6 la versione 5 è stata “sprecata” per un protocollo per il real-
time mai adottato
Si tratta di un protocollo che fornisce un servizio datagram non connesso.
E` specificato nel RFC (Request For Comments) 791.
32.7
l’instradamento
la frammentazione e riassemblaggio
la rivelazione (ma non la correzione) di errori (sull’intestazione).
I suoi compiti principali sono
32.8
Vers. HLEN Serv. Type Total Length
Identification Flags Fragment Offset
Time to Live Protocol Header Checksum
Source IP Address
Options Padding
Destination IP Address
Data
0 4 8 ...bit... 16 19 24 31
32.9
Vers.: numero di versione
HLEN: lunghezza dell’intestazione (necessaria perché potrebbe avere lunghezza variabile – ci può essere il campo opzioni; min. 20 byte)
Service Type: consente di differenziare il servizio offerto dai router a diverse categorie di traffico. Non usato nell’Internet con servizio best-effort
Total Length: lunghezza del datagram (0 ÷ 216-1=65535 [byte]) – necessaria perché il campo dati non ha una lunghezza prefissata
32.10
Identification: identificatore del datagram – insieme al campo Fragment Offset e ai Flags (MF=More Fragments; DF=Don’t Fragment) serve in caso di frammentazione per identificare i frammenti appartenenti allo stesso datagram
Fragment Offset (13 bit): puntatore al byte dal quale inizia un frammento – in linea di principio, sarebbero possibili fino a 8192 frammenti per datagram
Time to Live (TTL): un contatore, decrementato di 1 da ogni router attraversato (hop); il datagram viene scartato quando TTL=0
32.11
Protocol: identifica il protocollo che ha inserito i dati nel campo dati
Header Checksum: codice a controllo di parità sull’intestazione
Source (Destination) IP Address (32 bit ciascuno): indirizzo IP di origine (destinazione)
Options: campi opzionali (ed es., timestamp, registrazione dei percorsi, elenco dei router attraversati,…)
Padding: eventuali bit di riempimento fino a rendere la lunghezza dell’intestazione un multiplo intero di 32 bit
32.12
Gli indirizzi IP sono indirizzi univoci, assegnati da una autorità centrale, e hanno una lunghezza di 32 bit.
Tali indirizzi sono composti da due (o tre) parti: l’indirizzo della rete (netid)
l’indirizzo della sottorete (subnet) (opzionale)
l’indirizzo dell’host (hostid)
32.13
10000000 00001010 00000010 00011110
128.10.2.30
32.14
Ogni indirizzo è associato, in realtà, ad una interfaccia e non a un nodo o host.
Questo significa che macchine connesse a più reti hanno un indirizzo diverso per ogni interfaccia.
Una conseguenza del fatto che l’indirizzo contenga l’identificatore di una rete è che quando una macchina viene fisicamente spostata il suo indirizzo deve essere opportunamente modificato.
32.15
Indirizzo IP: ogni interfaccia di host e router di Internet ha un indirizzo IP globalmente univoco.
Interfaccia: è il confine tra host e collegamento fisico. I router devono
necessariamente essere connessi ad almeno due collegamenti.
Un host, in genere, ha un’interfaccia
A ciascuna interfaccia sono associati indirizzi IP
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.16
Cos’è una sottorete? Per IP una rete che
interconnette, ad esempio, tre interfacce di host e l’interfaccia di un router forma una sottorete.
Nella letteratura Internet le sottoreti sono anche chiamate reti IP.
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27
rete composta da 3 sottoreti
sottorete
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.17
223.1.1.0/24 223.1.2.0/24
223.1.3.0/24
Definizione
È detta sottorete una rete isolata i cui punti terminali sono collegati all’interfaccia di un host o di un router.
Maschera di sottorete: /24 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.18
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.19
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.20
0 1 2 3 4 8 16 24 31 0
1 0
netid hostid
netid hostid
1 1 0 netid hostid
1 1 1 0 multicast address
1 1 1 1 0 per usi futuri
A
B
C
D
E
0 -127 16 000 000
128 - 191 64 000
192 - 223 256
224 - 239
240 - 255
32.21
Tutti 0 This Host
Host on this net
Limited broadcast
Directed broadcast
Loopback
Tutti 0 host
Tutti 1
net Tutti 1
127 qualunque numero
32.22
Gli indirizzi IPv4 sono limitati e si stanno lentamente esaurendo.
Per ovviare a ciò IETF ha proposto due alternative: IPv6 (con spazio di indirizzamento a 128 bit)
CIDR (Classless InterDomain Routing)
32.23
Il CIDR permette di assegnare in modo più flessibile gli indirizzi IP e supera la vecchia divisione in classi
Di fatto permette di svincolarsi dal meccanismo “rigido” della divisione in classi
È definito negli RFC 1518 e RFC 1519
32.24
1 0 netid hostid
11111 .... ... 111 00000000
1 0 netid hostid subnet
255.255.255.0 oppure ffffff00
Indirizzo di classe B prima del subnetting
Netmask
Indirizzo di classe B dopo il subnetting
32.25
Ogni subnet deve corrispondere con una rete fisica
Per le LAN si ha la possibilità di avere più subnet per ogni rete ma non il viceversa
Questo fatto implica che l’instradamento diventa di due tipi interno alle subnet
tra le subnet
32.26
L’instradamento all’interno della subnet è gestito dalla rete fisica e l’unico problema diventa il mapping fra indirizzo IP e indirizzo di livello 2 (ARP).
Il routing tra subnet è gestito dagli IP router (gateway) attraverso tabelle di instradamento e facendo uso delle parti netid e subnet dell’indirizzo.
32.27
R1 H4 R4
R3 H2
H3 H1
R2
190.3.1.1 190.3.1.250
190.3.9.2
R5
190.3.6.8 190.3.6.7
190.3.6.2
190.3.3.1 190.3.3.3
190.3.3.2
190.3.7.2
190.3.7.1
190.3.9.3
Subnet 9
Subnet 3
190.3.1.254
Subnet 7
Subnet 6
190.3.6.3
Subnet 1
netmask 255.255.255.0
32.28
CIDR: Classless InterDomain Routing È la strategia di assegnazione degli indirizzi.
Struttura dell’indirizzo: l’indirizzo IP viene diviso in due parti e mantiene la forma decimale puntata a.b.c.d/x, dove x indica il numero di bit nella prima parte dell’indirizzo.
11001000 00010111 00010000 00000000
Parte di sottorete
Parte host
200.23.16.0/23
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.29
D: Cosa bisogna fare per assegnare un indirizzo IP a un host?
Configurazione manuale:
Windows: control-panel->network->configuration->tcp/ip->properties
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol: permette a un host di ottenere un indirizzo IP in modo automatico
“plug-and-play”
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.30
D: Cosa deve fare un amministratore di rete per ottenere un blocco di indirizzi IP da usare in una sottorete?
R: deve contattare il proprio ISP e ottenere, ad esempio, la divisione in otto blocchi uguali di indirizzi contigui.
Blocco dell’ISP 11001000 00010111 00010000 00000000 200.23.16.0/20
Organizzazione 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organizzazione 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organizzazione 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. …. Organizzazione 7 11001000 00010111 00011110 00000000 200.23.30.0/23
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.31
“Inviami tutto quello il cui indirizzo inizia per 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Scappo-Con-La-Cassa
Organizzazione 0
Organizzazione 7 Internet
Organizzazione 1
Provvedo-Io “Inviami tutto quello il cui indirizzo inizia per 199.31.0.0/16”
200.23.20.0/23 Organizzazione 2
. . .
. . .
Indirizzamento gerarchico e aggregazione di indirizzi:
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.32
Provvedo-Io presenta un percorso più specifico verso Organizzazione 1
“Inviami tutto quello il cui indirizzo inizia per 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Organizzazione 0
Organizzazione 7 Internet
Organizzazione 1 Provvedo-Io
“Inviami tutto quello il cui indirizzo inizia per 199.31.0.0/16 o 200.23.18.0/23”
200.23.20.0/23 Organizzazione 2
. . .
. . . Scappo-Con-La-Cassa
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 Longest prefix matching
32.33
D: Ma come fa un ISP, a sua volta, a ottenere un blocco di indirizzi?
R: ICANN: Internet Corporation for Assigned
Names and Numbers
Ha la responsabilità di allocare i blocchi di indirizzi.
Gestisce i server radice DNS.
Assegna e risolve dispute sui nomi di dominio.
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.34
l’Internet Control Message Protocol (ICMP) è usato per comunicare le anomalie che possono accadere nell’instradamento di pacchetti IP ed anche per verificare lo stato della rete.
ICMP è definito nel RFC 792.
Il pacchetto ICPM è trasportato all’interno di un datagram IP.
32.35
0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect (change a route) 8 Echo request 11 Time exceeded for a datagram 12 Parameter problem on a datagram 13 Timestamp request 14 Timestamp reply 15 Information request (obsoleto) 16 Information reply (obsoleto) 17 Address mask request 18 Address mask reply
32.36
I protocolli ARP (Address Resolution Protocol) e RARP (Reverse Address Resolution Protocol) servono per definire in modo automatico le corrispondenze fra indirizzi di livello 2 ed indirizzi IP e viceversa.
Sono specificati nel RFC 826.
A differenza di ICMP si appoggiano direttamente sui protocolli di livello 2 della sottorete e non su IP.
32.37
ARP viene usato tutte le volte che un host vuole inviare un pacchetto ad un altro host sulla sottorete, di cui conosce solo l’indirizzo IP.
RARP viene usato da host non dotati di memoria di massa (diskless) per reperire il proprio indirizzo IP all’avvio (bootstrap).
32.38
0 4 8 16 19 24 31
Hardware type Protocol type
Operation
Sender Hardware Address (bytes 0 - 3)
Target IP Address
HLEN PLEN
Sender Hardware Address (bytes 4 - 5)
Sender IP Address (bytes 0 - 1)
Sender IP Address (bytes 2 - 3)
Target Hardware Address (bytes 0 - 1)
Target Hardware Address (bytes 2 - 5)
32.39
La stazione A manda in broadcast un pacchetto ARP contenente l’indirizzo IP di cui vuol conoscere il corrispondente indirizzo di livello 2.
La stazione B che riconosce il proprio indirizzo IP risponde fornendo il suo indirizzo di livello 2.
Con il primo pacchetto ARP la stazione A fornisce anche il proprio indirizzo di livello 2, così che B può risponderle senza usare un broadcast.
32.40
DHCP è l’acronimo di Dynamic Host Configuration Protocol
Principalmente è definito in RFC 2131
Permette di assegnare in modo automatico i principali parametri di livello 3 per un corretto funzionamento di un host. Indirizzo IP Subnet Mask Indirizzo del Router di default Indirizzo del Domain Name Server (DNS) Nome
32.41
In realtà non è un protocollo scritto ex-novo, ma costituisce un’ estensione del protocollo BOOTP (BOOT IP).
Come livello di trasporto utilizza UDP (come indirizzamento di livello 4 utilizza la porta 67).
32.42
Per funzionare il protocollo si basa sui seguenti assunti: Vi sia un client che chiede di essere configurato Vi sia un server che risponde alle richieste
L’host che vuole essere configurato invia in broadcast la sua richiesta
Il server preposto elabora la richiesta e risponde inviando tutte le informazioni in un unico pacchetto
32.43
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
Rete locale (es., rete domestica)
10.0.0/24
Internet globale
Spazio di indirizzi riservato alle reti private, molte delle quali usano un identico spazio,
10.0.0/24 per scambiare pacchetti tra i loro dispositivi
I router abilitati alla NAT non appaiono al mondo esterno come router ma
come un unico dispositivo con un unico indirizzo IP.
Indirizzo IP origine: 138.76.29.7, e tutto il traffico verso Internet deve
riportare lo stesso indirizzo. J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.44
Il router abilitato alla NAT nasconde i dettagli della rete domestica al mondo esterno
Non è necessario allocare un intervallo di indirizzi da un ISP: un unico indirizzo IP è sufficiente per tutte le macchine di una rete locale.
È possibile cambiare gli indirizzi delle macchine di una rete privata senza doverlo comunicare all’Internet globale.
È possibile cambiare ISP senza modificare gli indirizzi delle macchine della rete privata
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.45
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345 D: 128.119.40.186, 80
1 10.0.0.4
138.76.29.7
1: l’host 10.0.0.1 invia il datagramma a 128.119.40.186, 80 138.76.29.7, 5001 10.0.0.1, 3345
…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001 D: 128.119.40.186, 80 2
2: il router NAT cambia l’indirizzo d’origine del datagramma da 10.0.0.1, 3345 a 138.76.29.7, 5001, e aggiorna la tabella.
S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3
3: la risposta arriva all’indirizzo di destinazione: 138.76.29.7, 5001
4: il router NAT cambia l’indirizzo di destinazione del datagramma da 138.76.29.7, 5001 a 10.0.0.1, 3345
Tabella di traduzione NAT Lato WAN LatoLAN
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001
32.46
Il campo numero di porta è lungo 16 bit: Il protocollo NAT può supportare più di 60000 connessioni
simultanee con un solo indirizzo IP sul lato WAN.
NAT è contestato perché: i router dovrebbero elaborare i pacchetti solo fino al livello 3. Per risolvere la scarsità di indirizzi IP si dovrebbe usare IPv6.
J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001