Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Sottoreti Alberto Polzonetti alberto.polzonetti@unicam.it
Indirizzamento classfull : punti deboli Continua crescita di internet Decine di migliaia di piccole reti Problemi delle reti con dimensione ridotta Necessità di molte operazioni amministrative esclusivamente per gestire le operazioni di rete Tabelle di indirizzamento estremamente grandi Spazio degli indirizzi che rischia di esaurirsi Come è possibile ridurre il numero di indirizzi di rete assegnati senza abbandonare lo schema di indirizzamento a 32 bit ? Lo stesso prefisso IP deve essere condiviso da più reti fisiche (indirizzamento di sottorete) Sottoreti
Gerarchia a due livelli 141.14.2.21 141.14.2.105 141.14.2.20 141.14.22.8 141.14.0.0 141.14.22.9 R Classe B 141.14.22.64 141.14.7.44 141.14.7.45 141.14.7.96 Sottoreti
Gerarchia a tre livelli 141.14.2.0 141.14.2.105 141.14.2.21 141.14.2.20 sottorete 141.14.7.44 141.14.7.45 141.14.7.96 141.14.7.0 141.14.22.8 141.14.22.9 141.14.22.64 141.14.22.0 sottorete R Classe B Sito 141.14.0.0 Sottoreti
Gerarchia a tre livelli L’introduzione delle sottoreti crea un livello intermedio nella gerarchia del sistema di indirizzamento IP Identificatore di rete – netid Indentificatore di sottorete – subnetid Identificatore di host – hostid L’instradamento IP coinvolge dunque tre livelli : Consegna del datagramma al sito Consegna del datagramma alla sottorete Consegna del datagramma all’host 141 14 Accesso alla rete 2 21 Accesso all’host 141 14 2 Accesso alla sottorete 21 Accesso all’host Sottoreti
Il processo di messa in AND con sottoreti 1 Indirizzo IP 141.14.2.21 1 1 Indirizzo di rete 141.14.0.0 1 Indirizzo IP 141.14.2.21 1 1 Indirizzo di sottorete 141.14.2.0 Sottoreti
Subnetting Subnetting (RFC 917, RFC 950): una prima soluzione A causa del sorgere dei problemi precedenti è stato introdotto, quasi immediatamente ad IP, un meccanismo aggiuntivo che permetteva di suddividere una rete in porzioni più piccole, le subnet, attraverso l'impiego di un identificatore aggiuntivo sotto forma di maschera di bit, la subnet mask (netmask). L’idea è quella di dividere una rete in sottoreti con le stesse proprietà della rete di partenza. La netmask è composta da quattro byte (come l’indirizzo IP) e, in binario, contiene di valori "1" in corrispondenza dei campi network e subnetwork, e dei valori "0" in corrispondenza del campo host. Gli "1" nella netmask possono essere anche non contigui, anche se questo è fortemente sconsigliato. Una coppia IP address – netmask identifica una sottorete, che altro non è che un nuovo intervallo di indirizzi (address range).La netmask si scrive normalmente, come l'indirizzo IP, in notazione decimale puntata: 255.255.0.0 è, ad esempio, una netmask valida. In figura è rappresentato un esempio in cui una rete di classe B, la rete 128.10.0.0, viene partizionata in 256 reti più piccole da 256 elementi ciascuna: la subnet mask in questo caso diventa 255.255.255.0, perchè anche il terzo byte dell'indirizzo di rete fa parte del campo subnetwork. Sottoreti
Indirizzi speciali di sottorete qualsiasi Subnet ID tutti 0 Host ID Indirizzo di sottorete 141.14.2.0 qualsiasi Subnet ID tutti 1 Host ID Broadcast di sottorete 141.14.2.255 tutti 0 Subnet ID qualsiasi Host ID Subnet = 0 141.14.0.0 tutti 1 Subnet ID qualsiasi Host ID Subnet = 255 141.14.255.255 Sottoreti
Indirizzamento classless Idea: rendere la divisione tra network e host flessibile Classi: vengono completamente abolite Ritorno all’indirizzo gerarchico a due livelli La soluzione del subnetting, nonostante presentasse un forte miglioramento rispetto alla gestione originale, aveva ancora alcuni aspetti critici. Un primo aspetto riguardava il modello IP che prevedeva originariamente una gerarchia di rete a 2 livelli: il subnetting creava invece una gerarchia a 3 livelli (host, subnet, net) che diventava difficile da capire (e da gestire). Un secondo aspetto riguardava lo spazio di indirizzamento il cui utilizzo continuava ad essere lontano dall'ottimale: non era possibile ad esempio avere reti da 1024 host (non è nè una classe B nè una classe C) a meno di partizionare una classe B, inoltre lo spazio di indirizzamento riservato alla classe B stava esaurendosi fortemente in quanto il più adatto per una azienda di medio-grandi dimensioni. La soluzione si è basata su un'idea estremamente semplice: rendere flessibile la distizione tra la parte network e la parte host dell'indirizzo IP, cose se ci fosse un "segno divisore" la cui posizione può essere in una parte qualunque dell'indirizzo IP per separare tra le due zone. L'indirizzamento classless dimentica completamente l'idea delle classi A,B,C, così come definite originariamente, ed utilizza invece compiutamente l'idea della netmask che diventa il mezzo per distinguere tra l'identificativo di rete e quello di host. In questo caso una netmask presenta un "1" in corrispondenza del campo network, e uno "0" in corrispondenza del campo host. Un indirizzo IP non è più sensato se non accoppiato ad una netmask: con l'indirizzo IP da solo non è più possibile determinare se quello è un host oppure è un identificativo di rete. Questo secondo modello di indirizzamento, in uso tutt'ora, ha cancellato completamente l'idea della subnet restituendo ad IP la sua architettura gerarchica a due livelli Sottoreti
Netmask: valori Sottoreti Subnet: i valori Nella figura sono elencati i valori che generalmente vengono assegnati ad ogni byte della netmask. Si noti il fatto che gli "1" sono sempre contigui. Gli ultimi due valori non possono essere usati nell’ultimo byte della netmask (ossia le netmask 255.255.255.254 e 255.255.255.255 non sono valide). Il valore 255 non è ammesso in quanto questo significherebbe avere un indirizzo formato solo da parte network, che non avrebbe senso visto che l’indirizzo serve per identificare un’interfaccia. D’altra parte il valore 254 rende la parte host ampia un bit, che significa avere una rete in cui sono disponibili solo due indirizzi. Sfortunatamente i due indirizzi disponibili in una rete di questo tipo sono indirizzi particolari (limited broadcast e network), e quindi non sono utilizzabili per numerare degli host. Prefix Length Dal momento che che normalmente le netmask sono composte da "1" e "0" consecutivi, spesso si abbrevia la notazione postponendo, all'indirizzo IP, il numero di "1" della netmask. Così l'indirizzo 130.192.16.81 mask 255.255.255.0 può essere scritto in forma più compatta come 130.192.16.81/24, e 130.192.16.81 mask 255.255.255.240 diventerà 130.192.16.81/28. L'ultima colonna della figura riporta questa abbreviazione riferita ad una netmask composta composta dal valore 255.255.255 e dall'ultimo byte indicato in figura. Nel proseguo verrà spesso indicato il prefix length anzichè la netmask: sono sostanzialmente due cose equivalenti (a patto che i valori 1 e 0 nella netmask siano consecutivi e non intercalati), ma il prefix length è più compatto ed è anche più intuitivo. Tuttavia la netmask è tutt'ora il modo con cui lo standard specifica la suddivisione tra parte network e parte host, quindi non può essere dimenticata. Ad esempio i protocolli di routing sono tenuti a trasportare nei loro messaggi la coppia rete di destinazione - netmask, e non è ammesso il trasporto del semplice prefix length Sottoreti
Sottoreti a lunghezza fissa per un indirizzo di classe B (flessibilità) Bit di sottorete Numero sottoreti Host per sottorete 1 65534 2 16382 3 6 8190 4 14 4094 5 30 2046 62 1022 7 126 510 8 254 9 10 11 12 13 Sottoreti
Esempio 1: l’organizzazione 221.45.71.0 ha bisogno di 5 sottoreti 22 < 7 < 23 quindi 3 bit Quanti bit usare per individuare 5 + 2 sottoreti ? 255.255.255.0 Mask classe C 1 255.255.255.224 1 Mask con sottorete 8 sottoreti 2 per fini speciali 32 –2 host massimi per sottorete 221.45.71.0/27 Sottoreti
Insieme di indirizzi per la rete : Esempio 1 : segue Insieme di indirizzi per la rete : 221.45.71.0 con mask 255.255.255.224 221.45.71.0/27 Num sottorete Ip sottorete Host iniziale Host finale Broadcast 1° .001 00000 .32 .001 00001 .33 .001 11110 .62 .63 2° .010 00000 .64 .010 00001 .65 .010 11110 .94 .95 3° .96 .97 .126 .127 4° .128 5° 6° .110 00000 .192 .110 00001 .193 .110 11110 .222 .223 Sottoreti
16384 –2 host massimi per sottorete Esempio 2: organizzazione con rete di classe A ha bisogno di 1000 sottoreti 29 < 1002 < 210 10 bit Quanti bit usare per individuare 1000 + 2 sottoreti ? 255.0.0.0 Mask classe A 1 255.255.192.0 1 Mask con sottorete 1024 sottoreti 2 per fini speciali 16384 –2 host massimi per sottorete X.0.0.0/18 Sottoreti
Insieme di indirizzi per la rete : X.0.0.0 con mask 255.255.192.0 Esempio 2 : segue Insieme di indirizzi per la rete : X.0.0.0 con mask 255.255.192.0 X.0.0.0/18 Num sottorete Ip sottorete Host iniziale Host finale Broadcast 1° 00000000.01000000. 00000000 .0.64.0 .0.64.1 00000000.01111111. 11111110 .0.127.254 .0.127.255 2° 00000000.10000000. 00000000 .0.128.0 .0.128.1 .0.191.254 .0.191.255 3° ….. …. ……………. …… ………….. ………… ……… 1022° 11111111.10000000. 00000000 .255.128.0 .255.128.1 .255.191.254 .255.191.255 Sottoreti
Con una mask di 2 bit al massimo faccio 4 sottoreti Soluzione Esempio 3 Un sito di classe C a bisogno di 5 sottoreti con il seguente numero di host: 60,60,60,30,30 Usando un mask di sottorete con 3 bit il numero di host massimo per rete sarebbero 30 Con una mask di 2 bit al massimo faccio 4 sottoreti Soluzione Mask a 26 bit con 4 sottoreti di 62 host Si applica quindi il mask a 27 bit su una rete per suddividerla in due da 30 host MASCHERE di SOTTORETE a LUNGHEZZA VARIABILE Sottoreti
Variable Lenght Subnet Mask (VLSM) Nel 1987, la RFC 1009 specificò la possibilità di assegnare, ad una rete partizionata in subnet, del valori di subnet diversi (VLSM, appunto). Questa tecnica non presentava alcun problema formale in quanto è semplicemente un caso particolare rispetto al precedente; tuttavia presentava alcune criticità in riferimento ai protocolli di routing ai quali era preclusa la conoscenza della netmask di altre zone della rete partizionata in quanto questi protocolli non prevedevano il trasporto verso dell'informazione di netmask all'interno del pacchetto di routing. Supponiamo infatti che un router (ad esempio il router R) riceva le seguenti informazioni: la rete 128.10.0.0 è raggiungibile inoltrando di pacchetto verso l'alto la rete 128.10.2.0 è raggiungibile inoltrando di pacchetto verso il basso Si supponga che il dominio interno (corrispondente all'area verde in figura) adotti la tecnica del subnetting, e che ogni subnet sia pari a 256 indirizzi (classe C "virtuale"). Il router in esame saprà perfettamente che la macchina 128.10.1.2 non esiste sul dominio in esame, in quanto nessuna delle informazioni in sui possesso comprende tale indirizzo (la prima rete si estende da 128.10.0.0 a 128.10.0.255, la seconda da 128.10.2.0 a 128.10.2.255). Viceversa, nel caso della tecnica VLSM questa informazione non è più così scontata: chi assicura il router che il range di indirizzi della prima rete comprende 256 valori e non 512? L'unico modo per assicurarsene è comunicare, insieme al nome della rete, anche la sua dimensione: la rete 128.10.0.0 con dimensione 512 host (netmask 255.255.254.0) è raggiungibile inoltrando di pacchetto verso l'alto la rete 128.10.2.0 con dimensione 256 host (netmask 255.255.255.0) è raggiungibile inoltrando di pacchetto verso il basso Viceversa non esistono problemi per il router esterno al dominio, in quanto egli può permettersi di non conoscere esattamente la composizione del dominio interno, e può continuare ad annunciare la rete di classe B 128.10 sia nel caso di semplice subnetting che nel caso di VLSM. A causa del VLSM fu così necessario modificare i protocolli di routing in maniera da inserire l'informazione di netmask all'interno del pacchetto di routing, cosa che ad esempio il protocollo RIP ha adottato a partire dalla versione 2. Sottoreti
Esempio VLSM (1): task srl 175.50.0.0 Macerata Roma Palermo 1 2 3 4 b c d e f g h a Sottoreti
Esempio VLSM (2) : domande da porsi Per determinare le maschere di sottorete Quante sottoreti in totale richiede uno specifico livello ? Quante sottoreti in totale richiederà in futuro uno specifico livello ? Quanti host sono previsti attualmente per la sottorete maggiore di ciascun livello ? Quanti host sono previsti in futuro per la sottorete maggiore di ciascun livello ? Sottoreti
Esempio VLSM (3) Il livello gerarchico superiore richiede 3 sottoreti Se prevedo 6 sottoreti posso avere un livello di crescita buono Bit netid 19 Maschera di sottorete 255.255.224.0 Ogni sottorete potrà avere 2**13 host 8192 Per ogni sede ho bisogno di quattro segmenti di rete Bit netid 21 Maschera di sottorete 255.255.248.0 Ogni sottorete potrà avere 2**11 host 2048 Per ogni ufficio ho bisogno di otto sottoreti Bit netid 24 Maschera di sottorete 255.255.255.0 Ogni sottorete potrà avere 2**8 host 256 Sottoreti
Esempio VLSM (1): task srl 175.50.0.0 2 bit per gli uffici di roma 3 bit per le sedi principali Macerata Roma Palermo 175.50.32.0 175.50.96.0 175.50.64.0 1 2 3 4 175.50.64.0 175.50.88.0 175.50.72.0 175.50.80.0 b c d e f g h a 3 bit per ogni reparto dell’ufficio 2 175.50.79.0 175.50.72.0 175.50.73.0 Sottoreti