Reti di Telecomunicazioni R. Bolla, L. Caviglione, F. Davoli Internet Protocol (IP) L’indirizzamento IP ICMP ARP e RARP DHCP NAT 32.2 Il livello di rete preleva i segmenti dal livello di trasporto nell’host mittente Applicazione Trasporto Rete Link Fisico Sul lato mittente, incapsula i segmenti in datagrammi Rete Link Fisico Rete Link Fisico Rete Link Fisico Sul lato destinatario, consegna i segmenti al livello di trasporto Protocolli del livello di rete in ogni host, router Rete Link Fisico Rete Link Fisico Rete Link Fisico Rete Link Fisico Il router esamina i campi intestazione in tutti i datagrammi IP che lo attraversano Rete Link Fisico J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 Applicazione Trasporto Rete Link Fisico 32.3 Instradamento e inoltro Algoritmo d’instradamento Tabella di inoltro locale Valore Collegamento d’intestazione d’uscita 0100 0101 0111 1001 3 2 2 1 Valore nell’intestazione del pacchetto in arrivo 0111 1 3 2 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 32.4 OSI DoD Application Presentation Session Transport FTP, Telnet, SMTP, SNMP, ... TCP e UDP ICMP Network Data Link ARP e RARP IP Protocolli di Routing Non Specificati Physical 32.5 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 realtime mai adottato Si tratta di un protocollo che fornisce un servizio datagram non connesso. E` specificato nel RFC (Request For Comments) 791. 32.6 I suoi compiti principali sono l’instradamento la frammentazione e riassemblaggio la rivelazione (ma non la correzione) di errori (sull’intestazione). 32.7 0 4 Vers. HLEN 8 ...bit... 16 Serv. Type Identification Time to Live 19 24 31 Total Length Flags Protocol Fragment Offset Header Checksum Source IP Address Destination IP Address Options Padding Data 32.8 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.9 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.10 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.11 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.12 10000000 00001010 00000010 00011110 128.10.2.30 32.13 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.14 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. 223.1.1.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.1 223.1.2.9 223.1.2.2 223.1.3.27 223.1.3.2 223.1.3.1 Un host, in genere, ha un’interfaccia A ciascuna interfaccia sono 223.1.1.1 = 11011111 00000001 00000001 00000001 associati indirizzi IP 223 1 1 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 1 32.15 223.1.1.1 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.2 223.1.1.4 223.1.1.3 223.1.2.1 223.1.2.9 223.1.3.27 223.1.2.2 sottorete 223.1.3.1 223.1.3.2 rete composta da 3 sottoreti J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 32.16 223.1.1.0/24 223.1.2.0/24 Definizione È detta sottorete una rete isolata i cui punti terminali sono collegati all’interfaccia di un host o di un router. 223.1.3.0/24 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 Maschera di sottorete: /24 32.17 223.1.1.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.1 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGrawHill, 2001 32.18 223.1.1.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.1 223.1.2.9 223.1.3.27 223.1.2.2 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGrawHill, 2001 223.1.3.2 32.19 A B C D E 01234 8 0 netid 0 -127 10 netid 128 - 191 11 0 192 - 223 11 1 0 224 - 239 11 11 0 240 - 255 16 24 31 hostid 16 000 000 hostid 64 000 netid hostid 256 multicast address per usi futuri 32.20 This Host Tutti 0 Tutti 0 Host on this net Tutti 1 Limited broadcast net Directed broadcast Loopback host 127 Tutti 1 qualunque numero 32.21 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.22 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.23 Indirizzo di classe B prima del subnetting 10 netid hostid Netmask 11111 .... ... 111 00000000 255.255.255.0 oppure ffffff00 Indirizzo di classe B dopo il subnetting 10 netid subnet hostid 32.24 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.25 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.26 Subnet 1 190.3.9.2 H4 R4 190.3.1.1 R1 190.3.1.254 190.3.1.250 190.3.7.1 Subnet 9 netmask 255.255.255.0 Subnet 7 190.3.7.2 190.3.9.3 Subnet 3 R2 H2 R3 190.3.3.2 190.3.6.7 190.3.6.8 H1 190.3.3.3 R5 190.3.6.3 190.3.3.1 190.3.6.2 Subnet 6 H3 32.27 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. Parte Parte di host sottorete 11001000 00010111 00010000 00000000 200.23.16.0/23 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 32.28 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, McGrawHill, 2001 32.29 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 200.23.16.0/20 11001000 00010111 00010000 00000000 Organizzazione 0 200.23.16.0/23 Organizzazione 1 200.23.18.0/23 Organizzazione 2 200.23.20.0/23 ... Organizzazione 7 200.23.30.0/23 11001000 00010111 00010000 00000000 11001000 00010111 00010010 00000000 11001000 00010111 00010100 00000000 ….. …. 11001000 00010111 00011110 00000000 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 …. 32.30 Indirizzamento gerarchico e aggregazione di indirizzi: Organizzazione 0 200.23.16.0/23 Organizzazione 1 200.23.18.0/23 Organizzazione 2 200.23.20.0/23 . . Organizzazione 7. . . . “Inviami tutto quello il cui indirizzo inizia per Scappo-Con-La-Cassa 200.23.16.0/20” Internet 200.23.30.0/23 Provvedo-Io J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGrawHill, 2001 “Inviami tutto quello il cui indirizzo inizia per 199.31.0.0/16” 32.31 Provvedo-Io presenta un percorso più specifico verso Organizzazione 1 Organizzazione 0 200.23.16.0/23 Organizzazione 2 200.23.20.0/23 . . Organizzazione 7 . . . . “Inviami tutto quello il cui indirizzo inizia per Scappo-Con-La-Cassa 200.23.16.0/20” Internet 200.23.30.0/23 Provvedo-Io Organizzazione 1 200.23.18.0/23 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 “Inviami tutto quello il cui indirizzo inizia per 199.31.0.0/16 o 200.23.18.0/23” Longest prefix matching 32.32 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.33 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.34 0 3 4 5 8 11 12 13 14 15 16 17 18 Echo Reply Destination Unreachable Source Quench Redirect (change a route) Echo request Time exceeded for a datagram Parameter problem on a datagram Timestamp request Timestamp reply Information request (obsoleto) Information reply (obsoleto) Address mask request Address mask reply 32.35 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.36 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.37 0 4 8 16 Hardware type HLEN 19 24 31 Protocol type Operation PLEN Sender Hardware Address (bytes 0 - 3) Sender Hardware Address (bytes 4 - 5) Sender IP Address (bytes 2 - 3) Sender IP Address (bytes 0 - 1) Target Hardware Address (bytes 0 - 1) Target Hardware Address (bytes 2 - 5) Target IP Address 32.38 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.39 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.40 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.41 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.42 Internet globale Rete locale (es., rete domestica) 10.0.0/24 10.0.0.4 10.0.0.1 10.0.0.2 138.76.29.7 10.0.0.3 I router abilitati alla NAT non appaiono Spazio di indirizzi riservato alle al mondo esterno come router ma reti private, molte delle quali come un unico dispositivo usano un identico spazio, con un unico indirizzo IP. 10.0.0/24 per scambiare pacchetti Indirizzo IP origine: 138.76.29.7, tra i loro dispositivi e tutto il traffico verso Internet deve riportare lo stesso indirizzo. J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 32.43 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.44 Tabella di traduzione NAT LatoLAN 2: il router NAT cambia Lato WAN l’indirizzo d’origine del 138.76.29.7, 5001 datagramma da 10.0.0.1, 3345 a …… 138.76.29.7, 5001, e aggiorna la tabella. 2 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 138.76.29.7 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 1: l’host 10.0.0.1 invia il datagramma a 128.119.40.186, 80 10.0.0.1, 3345 …… S: 10.0.0.1, 3345 D: 128.119.40.186, 80 1 10.0.0.1 10.0.0.4 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 10.0.0.2 4 10.0.0.3 4: il router NAT cambia l’indirizzo di destinazione del datagramma da 138.76.29.7, 5001 a 10.0.0.1, 3345 J. Kurose, K. Ross, Internet e Reti di Calcolatori, McGraw-Hill, 2001 32.45 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 32.46 Come sono strutturati gli indirizzi IP? Come avviene il subnetting? Cosa contiene il pacchetto IP? A cosa serve ICMP? A cosa serve e come opera ARP? Come opera il NAT? 32.47