CdS in INFORMATICA e COMUNICAZIONE DIGITALE Anno Accademico 2012-2013 Corso di Reti di Calcolatori e Comunicazione Digitale Modulo 3 : TCP/IP Lo strato di rete Prof. Sebastiano Pizzutilo Dipartimento di Informatica ISO-OSI e TCP/IP In TCP/IP i livelli 1 e 2 non sono specificati per cui è possibile utilizzare per le LAN i protocolli Ethernet, Token Ring, FDDI e per le WAN i protocolli X.25, Frame Relay, ATM,…. Application Presentation Session Transport Network Data Link Physical OSI Telnet NFS FTP XDR SMTP RPC SNMP TCP e UDP ICMP Arp e Rarp IP Protocolli di routing Non Specificati Internet Protocol Suite Lo strato 3 Internet del TCP/IP, in cui viene implementato il protocollo IP, corrisponde al livello 3 del modello OSI: entrambi si occupano dell’instradamento (routing) dei dati. Lo strato 4 di trasporto nei due modelli è analogo, ed entrambi permettono che tra i processi dei due host si stabilisca una sessione. Lo strato 5 dell’applicazione TCP/ I P, c o m p r e n d e g l i s t r a t i d i applicazione, presentazione e sessione del modello OSI 1 TCP/IP layers Message Layers Application Transport rete Internet Network interface Underlying network FTP, Telnet, SMTP,... Messages (UDP) or Streams (TCP) UDP, TCP UDP or TCP packets IP, ICMP, ARP, RARP, RIP,... IP datagrams SLIP PPP, Ethernet, Token ring, RS232, FDDI, ATM, ….. Network-specific frames Bits stream Header (con relativi address) aggiunti ai diversi livelli per poter TCP header svolgere le attività IP header TCP previste da ciascun livello Ethernet header IP Application message port Ethernet frame TCP/IP : Protocolli nello strato Internet (livello 3) Lo strato di RETE si occupa della consegna di pacchetti dati da un nodo mittente ad un nodo destinatario attraverso varie reti, determinando il modo migliore per spostare i dati da un host all’altro. Lo strato 3 della suite TCP/IP si occupa quindi dei problemi legati al routing dei pacchetti (con l’utilizzo di un sistema di indirizzamento logico dei pacchetti, detto IP) e dei problemi relativi al passaggio dei pacchetti al livello inferiore di data link ed al livello superiore di trasporto e viceversa. Il protocollo IP non svolge alcun tipo di controllo per assicurarsi del buon esito dei trasferimento dei dati, è infatti connectionless ed inaffidabile (servizio di consegna detto best-effort). Quindi i pacchetti di questo livello OSI possono andare perduti o non arrivare in sequenza. Il ruolo svolto da IP è quello di aggiungere a ciascun pacchetto una intestazione contenente una serie di informazioni per poter effettuare il corretto instradamento dei dati. L’attività di instradamento dei pacchetti tra le reti avviene attraverso PSE dedicati detti router. Il sistema di indirizzamento logico utilizzato in questo livello deve prevedere forme di indirizzi che consentano un efficiente operazione di instradamento. 2 Indirizzamento IP L’indirizzo IP identifica univocamente un host (computer, router, AP, …) su una rete. Gli indirizzi IP sono indirizzi LOGICI strutturati in maniera tale da agevolare l’operazione di routing. Hanno infatti un formato tale da consentire la netta separazione dell’indirizzo di rete da quello dell’host sulla rete. Gli indirizzi IP su Internet sono assegnati da un comitato internazionale (IANA – Internet Assigned Number Authority ). A livello nazionale italiano l’autorità che assegna le classi di indirizzi IP è il GARR/NIS. In genere però i privati non si rivolgono a tale ente ma al proprio provider (ISP – Internet Service Provider) che ha precedentemente provveduto a richiedere all’autorità nazionale un insieme di indirizzi che mette a disposizione dei propri clienti in maniera dinamica. Questo non è strettamente valido nel caso delle cosiddette Intranet aziendali, che non hanno accesso diretto alla rete pubblica Internet mondiale. In questo caso si può utilizzare teoricamente qualsiasi indirizzo, anche se per le Intranet esistono delle raccomandazioni relative agli indirizzi logici privati da utilizzare (in genere 10.0.0.1,…). Forme di indirizzamento u Indirizzamento con classi (CLASSFUL ) Sistema di indirizzamento adottato dal 1981 fino al 1993. Originariamente l’indirizzamento IP prevede il concetto di CLASSE, che consiste in : suddivisione dello spazio degli indirizzi IP in cinque CLASSI ciascuna con un numero diverso di indirizzi IP utilizzabili e … netta separazione tra indirizzo di rete ed indirizzo dell’host all’interno della rete . u Indirizzamento senza classi (CLASSLESS) L’indirizzamento SENZA CLASSI (1993) riduce il problema dell’esaurimento degli indirizzi IP e permette di gestire in maniera più efficiente gli indirizzi IP assegnati ad una organizzazione, introducendo il concetto di SUBNETTING/ SUPERNETTING ed una notazione detta CIDR ( Classless Inter-Domain Routing ). 3 Indirizzi IP Rappresentazione binaria e dot notation Gli indirizzi IP sono lunghi 32 bit (4 byte) e si scrivono come 4 numeri decimali separati dal carattere “.” ; Ogni numero rappresenta il contenuto di un byte ed è quindi compreso tra 0 e 255. Ø L’indirizzo IP è rappresentato nella forma: x.y.z.w dove x, y, z e w sono dei numeri decimali compresi tra 0 e 255. Ø In pratica un indirizzo IP è composto dalla sequenza di 32 bit (quindi un long integer che rende possibile generare fino a 232 – 1 possibili indirizzi) anche se esso viene sempre rappresentato nella cosiddetta dot notation. Per esempio: L’indirizzo IP=127.0.0.1 corrisponde in “dot notation binaria” a : 01111111.00000000.00000000.00000001 Questi 32 bit, se fossero rappresentati “senza dot notation”, sarebbero uguali a 01111111000000000000000000000001 che corrisponde al valore decimale 2130706433. L’indirizzo in dot notation rappresenta quindi il valore di ciascuno dei quattro byte componenti l’indirizzo IP e serve a discriminare l’indirizzo di rete dall’indirizzo degli host presenti in quella rete. Indirizzi IP Classful Gli indirizzi IP Classful si suddividono in cinque classi di appartenenza, identificate con le lettere da A ad E. î Classe A___Un indirizzo di classe A riserva il primo byte all’indirizzamento della rete, e gli altri tre byte all’indirizzamento degli host. Il primo bit del byte che individua la rete è imposto essere 0, di conseguenza è possibile indirizzare teoricamente solo 127 reti, ciascuna con un massimo teorico di 16.777.216 host. In pratica le reti sono 126 in quanto la rete 127 è riservata per gli indirizzi di loopback, e gli host sono 16.777.214, in quanto gli indirizzi x.0.0.0 e x.255.255.255 non sono ammessi. î Classe B____Gli indirizzi di classe B riservano 16 bit alla rete e 16 agli host. Dei 16 bit riservati alla rete, i primi due sono obbligatoriamente 1 e 0, e questo di conseguenza implica che il primo byte possa avere valore tra 128 e 191. Il numero di reti ammesso in questa classe è quindi 16.384, e gli host 65.534 (non essendo ammessi anche in questo caso gli host x.y. 0.0 e x.y.255.255. î Classe C____La classe C riserva i primi tre byte alla rete ed il quarto agli host. Poiché i primi tre bit del primo byte sono fissati a 110, il numero di reti univoche in questa classe e superiore a 2 milioni. Il primo byte può assumere valore tra 192 e 223. Il numero di host per ciascuna rete è di 254. 4 Struttura di un indirizzo IP Classful ind rete ind. host Dimensione dei campi in bit Range degli indirizzi Classe A 0 1010000 11001101 01010101 110011000 Da 1.0.0.0 a 128 reti e 127.255.255.255 16.777.214 host Classe B 10 101010 11100110 00000110 11101010 Da 128.0.0.0 a 16.384 reti e 191.255.255.255 65.534 host Classe C 110 10111 10101011 11100000 10101010 Da 192.0.0.0 a 2.097.152 reti e 223.255.255.255 254 host Multicast 1110 0000 10101010 11100110 10101010 Da 224.0.0.0 a 239.255.255.255 Riservati 1111 0000 11100011 11111111 10101001 Da 240.0.0.0 a 255.255.255.255 Byte 1 Byte 2 Byte 3 Byte 4 Indirizzi riservati q Network: quando i bit dell'ottetto che rappresenta l'host hanno tutti valore 0, l'indirizzo è detto di rete (Network Address): l’indirizzo 192.168.5.0 oppure in binario 11000000.10101000.00000101.00000000, rappresenta la rete 192.168.5; - Quando tutti i bit hanno valore zero (0.0.0.0), si identifica "questo host“. q Broadcast: quando i bit del numero che rappresenta l'host hanno tutti valore 1, l'indirizzo è detto di broadcast o broadcast address, e rappresenta tutti gli host di quella rete: Inviare un pacchetto all'indirizzo 192.168.5.255 (11000000.10101000.00000101.11111111 ) equivale a mandare un pacchetto a tutti gli host della rete 192.168.5.0 q Broadcast di rete: abbiamo questo tipo di indirizzo quando tutti i bit, sia della parte relativa all'host sia della parte relativa alla rete hanno valore 1 : Inviare un pacchetto a 255.255.255.255 o in binario 11111111.11111111.11111111.11111111 significa inoltrarlo verso tutti gli host della rete corrente. q Loopback: è utilizzato per funzioni di test del protocollo TCP/IP, non genera traffico di rete e corrisponde all'indirizzo 127.0.0.1. q Indirizzi di rete locale : una serie di indirizzi IP sono dedicati all’uso su reti locali, all’interno di firewall e server proxy. Questi indirizzi sono: da …. a…. 10.0.0.0 10.255.255.255 172.16.0.0 172.31.255.255 192.168.0.0 192.168. 255.255 5 Maschere di sottorete Le maschere di sottorete servono ad individuare quali byte dell’indirizzo IP indirizzano la rete e quali gli host. Le maschere di sottorete utilizzate dalle varie classi sono: Classe A > 255.0.0.0 Classe B > 255.255.0.0 Classe C > 255.255.255.0 Ogni macchina va dunque configurata con due informazioni : 1) netmask per individuare la rete (sottorete) a cui la macchina appartiene, 2) numero IP della macchina all’interno della rete (sottorete). Con un’operazione di AND tra netmask ed IP number si ottiene dunque la parte di indirizzo che identifica la sottorete cui è collegata la macchina. Ad es. Host number : 193.204.187.33 AND 11000001.11001100. 10111011. 00100001 AND Netmask : 255.255.255.00 111111 11.111111 11. 11111111. 00000000 ----------------------------------------------------------------------Rete cui è collegato l’host : 193.204.187.00 11000001.11001100. 10111011. 00000000 Il processo consiste nel confrontare il risultato dell'operazione di AND bit a bit tra il proprio indirizzo e la propria subnet mask con quello tra l'indirizzo del destinatario e la sua subnet mask per determinare se il destinatario dei propri pacchetti si trova sulla stessa rete . esempio Avendo un Host A con IP 192.168.3.5 con subnet mask 255.255.255.0 che vuole inviare dei pacchetti ad un Host B 192.168.3.25 con subnet mask 255.255.255.0, occorre determinare se B è sulla stessa rete di A: AND Host A: 192.168.3.5 11000000 . 10101000 . 00000011 . 00000101 : Ip address Host A 11111111 . 11111111 . 11111111 . 00000000 : Subnet mask Host A 11000000 . 10101000 . 00000011 . 00000000 = Risultato operazione AND bit a bit AND Host B: 192.168.3.25 11000000 . 10101000 . 00000011 . 00011001 : Ip address Host B 11111111 . 11111111 . 11111111 . 00000000 : Subnet mask Host B 11000000 . 10101000 . 00000011 . 00000000 = Risultato operazione AND Il risultato è identico, quindi, i due host possono inviarsi direttamente i pacchetti in quanto sulla stessa rete ( cioè senza impegnare il router per l’instradamento). Qualora il processo di AND avesse evidenziato valori diversi, i due host non avrebbero potuto comunicare direttamente, ma sarebbe stato necessario utilizzare un router tra di essi. 6 Il routing Algoritmi di routing = per la gestione (creazione e uso) delle routing table Attività di routing = inoltro Il routing classful n n n 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 serve a determinare i percorsi verso intere reti, non verso singoli host. Infatti da ciascun indirizzo IP è sempre possibile determinare la classe sulla base dei primi bit dell’indirizzo e ricavare quindi la netmask ed il numero della rete. 7 SUBNETTING Può essere necessario dover suddividere la rete in ulteriori sottoreti. Il subnetting consiste nel suddividere il campo host di un indirizzo IP in due parti : subnet ed host. 193 204 176 0 3x 8 +2 =26 bit per l’indirizzo di rete e si scrive: 193.204.176.0 / 26 00 01 Notazione CIDR (Classless Inter-Domain Routing) 10 11 Ad esempio : 193.204.176.0/24 è la notazione CIDR 000000 000000 000000 000000 di un indirizzo classful di classe C. Si noti che la notazione CIDR consente la rappresentazione delle netmask /24 per la classe C, /8 per classe A, /16 per classe B. Esempio Subnetting Ad es. dividere una rete di classe C in 4 subnet ciascuna con al max 60 host 193 204 176 0 Le 4 subnet ricavate avranno ciascuna al max 64 indirizzi di host da 000000 a 111111 ( 62 utilizzabili per gli host : da togliere i due indirizzi riservati > 000000 per la rete e 111111 per il broadcast). Indirizzi generati: Da : 00 000000 01 000000 10 000000 11 000000 a: 00 111111 01 111111 10 111111 11 111111 indirizzo di rete 00000000 01000000 10000000 11000000 La netmask per le subnet sarà : 255.255.255.192 indir. di broadcast 00111111 01111111 10111111 11111111 11000000 Si ricordi che la netmask è = 11111111.11111111.11111111.11000000 = /26 e cioè la notazione CIDR rappresenta il numero dei valori pari a 1, cioè la netmask della rete. 8 Subnetting e supernetting 193.204.176.0 / 26 11000001.11001100.10110000. 00…00 Netmask 255.255.255.192 n.subnet 4 ind.rete ind. Broadcast IP da … a n.host 0 63 1 62 62 64 127 65 126 62 128 191 129 190 62 192 255 193 254 62 tot. 248 E’ possibile anche raggruppare 2 subnet in un’unica supernet composta di due sottoreti . Ad es. si vuole creare una super rete raggruppando la 193.204.176.128 e la 193.204.176.192 Netmask 255.255.255.192 255.255.255.128 n.subnet 3 ind.rete ind. Broadcast IP da … a n.host 0 63 1 62 64 127 65 126 62 62 128 255 129 254 126 tot. 250 Subnetting Il subnetting di una rete comporta diversi vantaggi: - Riduzione del traffico di rete: in quanto si riduce il dominio di broadcast (broadcast domain); - Miglioramento delle performance della rete: in conseguenza della riduzione del traffico; • IP assume una corrispondenza biunivoca tra reti fisiche e subnet: – routing implicito all’interno di una rete; – più subnet sulla stessa rete fisica; – mai invece, più reti fisiche sulla stessa subnet. • Il routing tra subnet diverse è esplicito è cioè gestito dai router tramite tabelle di instradamento. • All’interno della subnet l’instradamento deve essere fornito dalla rete fisica. 9 …da indirizzi Classful… a indirizzi Classless L’indirizzamento classful crea problemi di spreco di indirizzi : l’indirizzamento classful cioè è troppo rigido (numero prefissato di classi e di indirizzi => A=/8, B=/16 e C=/24) e non riesce a soddisfare nuove o diverse richieste di assegnazione di indirizzi IP. La soluzione al problema è quella di passare dal concetto di classe a quello di blocco (indirizzamento Classless), consentendo la gestione di blocchi di dimensione qualsiasi pari a 2i con 1 ≤ i ≤ 31. La notazione CIDR, del tipo x.y.w.z/n, consente di rappresentare molto sinteticamente un blocco di dimensione qualsiasi. Ad esempio: se si ha bisogno di 300 indirizzi IP (300 host), una classe C ( /24=256 host) è insufficiente, per cui occorre chiedere un blocco pari a /23 == 512 indirizzi per gli host ( 23 bit per la rete e 32-23 = 9 per ind. degli host = 29 = 512 indirizzi diversi ). Oppure, se ne servono meno di 256, ad esempio solo 60 host, allora basta definire un blocco /26, cioè un blocco con indirizzo di rete di 26 bit ed i rimanenti 6 bit (32-26 = 6 -> 26 = 64 ) per gli indirizzi riservati ai 60 host su quella rete + ind. di broadcast e di rete. Indirizzamento Classless In questa forma di indirizzamento un blocco di indirizzi (consecutivi) viene identificato con x.y.w.z/n con x.y.w.z qualsiasi indirizzo di host appartenente al blocco e /n (notazione CIDR per definire la netmask). Per poter gestire blocchi di dimensione 2 i (con 0 ≤ i ≤ 31) è quindi sufficiente generare una netmask = /32-i. Ad es. 193.204.176.30/26 identifica un host con indirizzo di rete di 26 bit e indirizzo di host di 6 bit. 11000001.11001100.10110000.00011110 indirizzo di rete indirizzo di host Ø Mettendo a 0 i 6 bit (32-n) più a destra si ottiene l’indirizzo del primo ind. del blocco, che viene normalmente utilizzato per identificare la rete (e non un nodo) del blocco . Ø Mettendo a 1 gli stessi 6 bit a destra si ottiene l’ultimo indirizzo del blocco, che viene normalmente utilizzato per fare il broadcast limitato a tutti i nodi del blocco. Ø Il numero di indirizzi del blocco è 232-n = 232-26 = 26 Ø /n (cioè /26) identifica la netmask 11111111.11111111.11111111.11000000 . 10 Classless InterDomain Routing Nel 1993 l’IETF ha standardizzato il subnet masking ed il subnet routing, chiamandoli Classless InterDomain Routing (CIDR) (RFC 1519) oltre al subnetting, questa tecnica consente anche di gestire il supernetting, ovvero gestire diverse reti o internetwork locali come una singola entità (in questo modo, ad una azienda si possono dare diversi indirizzi di rete di classe C). A tale scopo è necessario che tutti i bit dell’indirizzo IP relativi agli indirizzi di rete non siano mischiati ai bit dell’indirizzo di host, ovvero la rete deve essere caratterizzata da un unico prefisso (net+subnet): Es1: questa subnet mask è illegale: 255.255.0.128 Es2: 193.204.176.0/20 Mask 255.255.240.0 16 Classi C > da x.y.176.0 a x. y. 191. 255 193.206.32.0/20 Mask 255.255.240.0 16 Classi C > da x.y.32.0 a x. y. 47. 255 192.167.56.0/21 Mask 255.255.248.0 8 Classi C > da x.y.56.0 a x .y. 63. 255 La notazione breve degli indirizzi IP con subnet mask: 160.80.20.120/24 equivale all’indirizzo 160.80.20.120 con subnet mask 255.255.255.0 (24 bit di indirizzo network). CIDR (per il classless routing) Il Classless Inter-Domain Routing (CIDR) è basato su una Variable-Length Subnet Masking (VLSM), che permette di suddividere una rete in subnet differenti. Una importante caratteristica dei protocolli di routing è la maniera in cui essi comunicano i percorsi dei pacchetti (routing advertisement). I protocolli più vecchi (RIP e IGRP) trasmettono ai router collegati solamente l’indirizzo di rete, quale per es. "193.150.21.0" assumendo la maschera di rete come maschera di default della classe corrispondente (classful routing) . I protocolli di rete moderni (OSPF, IS-IS, EIGRP,…) invece trasmettono in notazione CIDR esplicitamente anche la netmask, senza presupposti a priori sulla classe. Questa tipologia di routing viene detta classless, in quanto non tiene conto della divisione in classi ma solo della netmask che permette la suddivisione in blocchi. La VLSM ( Variable Lenght Subnet Mask ) è lo strumento che permette di utilizzare differenti sottoreti all'interno di un blocco di indirizzi assegnati ad una organizzazione (per es. 2 uffici possono utilizzare al loro interno una rete /24 e per la connessione puntoa-punto tra di loro una rete /30). 11 CIDR e VLSM Nel classless routing (notazione CIDR) la Variable Length Subnet Mask (VLSM) esprime il fatto che una rete può essere configurata con differenti netmask : ciò rende più flessibile la suddivisione di reti in più sottoreti mantenendo un adeguato numero di host in ogni sottorete. Per esempio, se il GARR NIS ha assegnato una classe C pari a 192.214.11.0 e si vuole suddividere la rete assegnata in 3 subnet con 100 host in una e 50 host nelle restanti due = tot. 200 host. Teoricamente è possibile farlo, perchè una classe C permette di avere al massimo 256 host. Abbiamo le seguenti possibilità per poter suddividere la rete: Mask 255.255.255.252 (64 subnet con 4 host ) 192.214.11.0/30 con 2 bit per indirizz. host Mask 255.255.255.248 (32 subnet con 8 host ) 192.214.11.0/ 29 con 3 bit per indir. host Mask 255.255.255.240 (16 subnet con 16 host ) 192.214.11.0/28 con 4 bit per indir. host Mask 255.255.255.224 (8 subnet con 32 host ) 192.214.11.0/27 con 5 bit per indir. host Mask 255.255.255.192 (4 subnet con 64 host ) 192.214.11.0/26 con 6 bit per indir. host Mask 255.255.255.128 (2 subnet con 128 host) 192.214.11.0/25 con 7 bit per indir. Host INVECE CON LA VLSM VLSM Con l' utilizzo del routing classless (notazione CIDR e VLSM) posso usare due netmask diverse : e' possibile utilizzare 192.214.11.0/25 (mask 255.255.255.128) per ottenere 2 subnet da 128 indirizzi, la 192.214.11.0 e la 192.214.11.128 e suddividere la seconda in ulteriori 2 subnet da 64 indirizzi ciascuna : 192.214.11.0 = 11000000. 11010110. 00001011. 00000000 /25 = 11111111. 11111111. 11111111 . 10000000 = 255.255.255.128 2 subnet: la 192.214.11.0 0000000 con ind. da 192.214.11.0 a 192.214.11.127 =128 ind e la 192.214.11.10000000 con ind. da 192.214.11.128 a 192.214.11.255 =128 ind In seguito posso definire la 192.214.11.0/26 (sulla seconda subnet) per ottenere 2 ulteriori subnet da 64 host ciascuna : 192.214.11.128 = 11000000. 11010110. 00001011. 10000000 /26 = 11111111. 11111111. 11111111 . 11000000 = 255.255.255.192 suddivisa in 2 sub-subnet da 64 indirizzi ciascuna: la 192.214.11. 10000000 con ind. da 10000000 (128) a 10111111 (171) = 64 ind. e la 192.214.11. 11000000 con ind. da 11000000 (192) a 11111111 (255) =64 ind 12 VLSM Subnet 192.214.11.0 0000000 group 192.214.11.0 /25 Mask 255.255.255.128 Da...192.214.11.0 =128 indirizzi a...192.214.11.127 Subnet 192.214.11.1 0000000 group 192.214.11.0 / 26 Mask 255.255.255.192 Subnet 192.214.11. 10 000000 192.214.11.128 Subnet 192.214.11.11 000000 192.214.11.192 Da...192.214.11.128 a...192.214.11.171 Da...192.214.11.192 Da...192.214.11.255 = 64 indirizzi = 64 indirizzi /25 = 11111111. 11111111. 11111111 . 10000000 = 255.255.255.128 suddivisibile in 2 subnet la 192.214.11. 0 0000000 con indirizzi da 192.214.11.0 a 192.214.11.127 = 128 indirizzi e la 192.214.11. 1 0000000 con indirizzi da 192.214.11.128 a 192.214.11.255 = 128 indirizzi /26 = 11111111. 11111111. 11111111 . 11000000 = 255.255.255.192 suddivisibile in 2 subnet la 192.214.11. 10 000000 con indirizzi da 10000000 (128) a 10111111 (171) =64 ind. e la 192.214.11. 11 000000 con indirizzi da 11000000 (192) a 11111111 (255) =64 ind Esempio di notazione CIDR (classless) L'ampiezza dei campi “Network Prefix” e “Host-ID” viene definita tramite il parametro netmask. La netmask contiene bit a uno in corrispondenza dei campi “Network Prefix” (Net-ID e Subnet-ID) e a zero in corrispondenza del campo “Host-ID”. Es.1: In una rete , l’indirizzo IP 160.80.27.1/24 utilizza la maschera 255.255.255.0 e rappresenta: 255.255.255.0 = 11111111. 11111111. 11111111. 00000000 netmask 160. 80. 27. 1 = 10100000. 01010000. 00011011. 00000001 host 160.80.27: ind. della net locale, .1: primo indirizzo dell’host in una rete con 256 ind. Es.2: 193.204.176.0/20 utilizza una Netmask 255.255.240.0 = 255.255.11110000.00000000 193.204.176.0 = 11000001.11001100. 10110000. 00000000 indirizzo blocco o subnet locale 255.255.240.0 = 11111111.11111111. 11110000. 00000000 netmask 193.204 = ind. Rete, .176 = ind. Subnet locale, .0 = primo ind. Host in Subnet locale con 16x256 ind. Es.3: 193.206.32.0/21 utilizza una Netmask 255.255.248.0 =255.255.11111000.00000000 193.206.32.0 = 11000001.11001110. 00100000. 00000000 255.255.248.0 = 11111111.11111111. 11111000. 00000000 193.206 = ind. Rete, .32 = ind. Subnet locale, .0 = primo ind. Host in Subnet local > 8x256 ind. 13 Indirizzamento e routing L’attività di routing si dice CLASSFUL se l’instradamento viene fatto sulla base della classica suddivisione in classi dell’indirizzo IP (algoritmi di routing class-full sono RIP1, IGRP,..) . Se si prevede di operare tenendo in considerazione la notazione CIDR (la presenza di subnet), il routing è detto CLASSLESS. (algoritmi di routing class-less sono RIP2, EIGRP, OSPF,…) . Ø Il classless addressing complica la procedura di routing dei pacchetti; ogni record della tabella di routing ha 3 campi principali: 1. un network address 2. una maschera di subnet 3. 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 table Una tavola di routing deve contenere le informazioni necessarie all’instradamento dei pacchetti verso l’host destinatario: Percorso completo verso il destinatario Next hop verso il router del destinatario La tavola di routing viene costruita mediante diverse operazioni di “routing advertisement” , cioè scambio di dati su host collegati e percorsi possibili scambiati tra i router. • • I Classful routing protocol non includono la subnet mask nei routing advertisement All’interno dello stesso network, si presume la consistenza delle subnet mask • I Protocolli di routing Classless includono la subnet mask nei routing advertisement • I protocolli di routing Classless supportano subnet mask di lunghezza variabile (VLSM) per suddividere una rete in 2 o piu’ blocchi. 14 Tabelle di routing La tabella di routing La tabella di routing dunque contiene: ¡ ¡ ¡ • • • un record per ciascuna rete collegata direttamente al router, insieme con l’indicazione della relativa interfaccia di rete 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. l'ampiezza dei campi “Network Prefix” e “Host-ID” viene definita tramite il parametro netmask. La netmask contiene bit a uno in corrispondenza dei campi “Network Prefix” (Net-ID e Subnet-ID) e a zero in corrispondenza del campo “Host-ID”. l'importanza di comprendere se due indirizzi appartengono o no alla stessa subnet è fondamentale, in quanto nel primo caso l'host mittente del pacchetto lo invierà direttamente verso il destinatario (routing diretto), nel secondo caso lo invierà ad un router a valle verso la destinazione (routing indiretto) questo comportamento deriva dall'assunzione implicita che ad ogni rete logica (subnet IP) corrisponda una stessa rete fisica. 15 ALGORITMO DI INSTRADAMENTO ① Estrazione dell’indirizzo IP del destinatario dallo header del pacchetto e operazione di AND con la netmask (per ottenere l’indirizzo della rete) ② Se la rete è la stessa del mittente si traduce l’indirizzo IP in indirizzo MAC e si manda il pacchetto sulla stessa rete senza impegnare il router. ③ Se la rete è diversa, si invia il pacchetto al router della propria rete, che cerca l’indirizzo dell’host destinatario nella sua tabella di routing ( operazione di resolving). • Se la tabella di routing del router non contiene l’indirizzo dell’host destinatario, si esamina l’indirizzo di rete (dell’host destinatario) per poi inviare il pacchetto al router della rete individuata. • Se il router non contiene neanche l’indirizzo di rete del destinatario, il router invia il pacchetto al default router vicino per tentare l’operazione di resolving. Routing classless Per ricavare l’indirizzo del router a cui va inviato un pacchetto destinato all’host con indirizzo IP D: A) 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 le voci nella tabella sono analizzate cominciando da quelle aventi network address più lunghi (Longest Prefix Matching) in una routing table un blocco di indirizzi può essere rappresentato da un unico elemento corrispondente al prefisso (Supernetting) 11000000. 00100000. 10001000. 00000000 = 192.32.136.0 (class C address) 11111111. 11111111. 11111000. 00000000 = 255.255.248.0 (network mask) ================================= logical_AND 11000000. 00100000. 10001 = 192.32.136 (IP prefix) 11000000. 00100000. 10001111. 00000000 = 192.32.143.0 (class C address) 11111111. 11111111. 11111000. 00000000 = 255.255.248.0 (network mask) ================================= logical_AND 11000000. 00100000. 10001 = 192.32.136 (stesso IP prefix) B) il record per il router di default è sempre analizzato per ultimo. 16 Differenti versioni del protocollo IP La crescita esponenziale dei dispositivi collegati in rete ha portato da un lato alla utilizzazione della forma di indirizzamento classless (ottimizzazione dell’indirizzamento classful), dall’altro alla utilizzazione di una nuova forma di indirizzamento l’IPv6 che (a differenza dell’IPv4 che prevedeva indirizzi divisi in 4 byte =32 bit) prevede l’uso di indirizzi a 16 byte =128 bit = 8 sezioni esadecimali di 2 byte separate da “:” Ad esempio : A0D3 : FB43 : 4EFB : AA41 : FF88 : 41AD : 0000 : FD23 IPv4 packet layout L’intestazione IPv4 di un datagramma contiene: þ l’indirizzo IP del mittente, þ l’indirizzo IP del destinatario, þ il protocollo di trasporto (TCP o UDP): serve ad indicare all’host destinatario il tipo di trasporto e di conseguenza il modo in cui manipolare i dati ricevuti, þ lo header checksum: è il CRC (Cyclic Redundancy Check) che permette di verificare l’integrità dell’header, þ il TTL (Time-To-Live): il tempo di durata in vita di un datagram; alla partenza viene assegnato un valore predefinito che diminuisce ad ogni attraversamento di un router; quando il TTL raggiunge il valore zero il datagram viene tolto dalla rete. 17 IP packet layout priorità del datagramma + ICMP, Telnet, Ftp, DNS,… Da 20 a 60 byte per la frammentazione Internet Header Version (4bit) length (4bit) Type of Service (8bit) Total Length (16 bit) Identification (16 bit) Time to Live (8) Max=216 -1 byte Flags(3bit ) Protocol(8) (dei livelli superiori) Fragment Offset (13 bit) Header Checksum (16) Source Address (32 bit) IPv4 Destination Address (32 bit) Options (optional) Data Version (4 bits) Priority (4 bits) Payload length (16 bits) IPv6 da 40 a 65535 bytes Flow label (24 bits) Next header (8 bits) Hop limit (8 bits) Source address (128 bits) Destination address (128 bits) 18