Internetworking – Subnet e Supernet Corso di Reti di Calcolatori AA 2002/2003 Sommario • Introduzione • Sottoreti • Masking • Routing con sottoreti • Super- reti • Classless addressing • Strutture dati Limiti Indirizzamento IP • Indirizzo 32 bit: prefisso + suffisso • A ogni rete fisica è corrisponde ind. IP rete unico • Ogni host di una rete ha il prefisso IP di rete della rete fisica a cui appartiene • Crescita esponenziale reti • Overhead nella gestione degli indirizzi • Dimensioni tabelle routing • Esaurimento indirizzi (classe B) Possibili Soluzioni • Evitare di assegnare nuovi indirizzi di rete, se possibile • Utilizzare stesso prefisso IP per più reti fisiche Possibili Soluzioni • Invece di classe B, utilizzo classe C • Conseguenze • Procedure Routing devono essere modificate • Tutte macchine connesse alla rete modificata devono aderire alle convenzioni Sottoreti • Caso di utilizzo dello stesso prefisso ip per più reti • Prefisso di rete ip resta lo stesso • Suddivido host-ids in 2 parti • Sottorete • Host sottorete Assegnazione Sottoreti Host id Network id Subnet adr Host adr L’indirizzo di classe B 156.111 può essere suddiviso nel seguente modo: Considero i primi 8 bit dell’host id per identificare una sottorete Ottengo 254 sottoreti (0 e 255 sono riservati): 156.111.1.0 156.111.254.0 Ciascuna sottorete può indirizzare 254 host con i rimanenti 8 bit dell’host id Sottoreti • Esempio con indirizzo di classe B 156.111.0.0 • 8 bit = id di sottorete • 2^8 = 256 spazio ind. - 2 indirizzi ris = 254 subnet • Es: 156.111.1.X – 156.111.254.X • 8 bit = per id host sottoreti • Maschera: subnet_mask = 255.255.255.0 • 1111 1111 1111 1111 1111 1111 0000 0000 • Regola: i bit corrispondenti alla parte di rete e sottorete sono settati a 1 • AND tra indirizzo IP e mask restituisce indirizzo IP di rete Maschere di sottorete 128 64 32 16 8 4 2 1 1 0 0 0 0 0 0 0 128 1 1 0 0 0 0 0 0 192 1 1 1 0 0 0 0 0 224 è opportuno 1 1 1 1 0 0 0 0 240 utilizzare bit contigui 1 1 1 1 1 0 0 0 248 1 1 1 1 1 1 0 0 252 1 1 1 1 1 1 1 0 254 1 1 1 1 1 1 1 1 255 Nel creare maschere di sottorete Esempi di maschere di sottorete di indirizzi di classe B • 255.255.0.0 (0000 0000 0000 0000) • 0 sottoreti con 65534 host • 255.255.192.0 (1100 0000 0000 0000) • 2 sottoreti con 16382 host • 255.255.252.0 (1111 1100 0000 0000) • 62 sottoreti con 1022 host • 255.255.255.252 (1111 1111 1111 1100) • 16382 sottoreti con 2 host Esempi di maschere di sottorete di indirizzi di classe C • 255.255.255.0 (0000 0000) • 0 sottoreti con 254 host • 255.255.255.192 (1100 0000) • 2 sottoreti con 62 host • 255.255.255.224 (1110 0000) • 6 sottoreti con 30 host • 255.255.255.240 (1111 0000) • 14 sottoreti con 14 host Come interpretare indirizzi di subnet • Indirizzo IP I = 130.122.34.3 • Maschera di sottorete M=255.255.255.192 • I & M = 130.122.34.0 = N indirizzo della rete • Ultimi 8 bit: 3 = 0000 0011, 192 = 1100 0000; • Dopo l’and gli ultimi 8 bit sono: 0000 0000 • I corrisponde a host 3 nella rete 130.122.34.0 • Not M = 0.0.0.63 = NM (ultimi 8 bit: 0011 1111) • I & NM = 0000 0011 = 3 Come interpretare indirizzi di subnet • Indirizzo IP I = 130.122.34.132 • Maschera di sottorete M=255.255.255.192 • I & M = 130.122.34.128 indirizzo della rete • 132 = 1000 0100, 192 = 1100 0000 • Dopo l’and gli ultimi 8 bit sono: 1000 0000 = 128 • I corrisponde a host 4 nella rete 130.122.34.128 • Not M = 0.0.0.63 = NM (ultimi 8 bit: 0011 1111) • I & NM = 0000 0100 = 4 Vantaggi Sottoreti • Aumenta il controllo sullo spazio indirizzabile • E’ più facile allocare lo spazio degli indirizzi • Migliori prestazioni rete • Nascondono ai router remoti la presenza di più reti locali Esempio vantaggi con Sottoreti 156.111.1.1 156.111.1.2 156.111.254.254 156.111.0.0 Rete di classe B... Più di 60000 host possono comunicare direttamente Come gestirli? E quali performance ottengo? 156.111.1.1 156.111.1.2 156.111.2.1 Meglio utilizzare le sottoreti 156.111.4.1 156.111.4.2 R 156.111.3.1 Funzionamento Router con sottoreti • Routing gerarchico • Router remoti • Utilizzano network prefix • Local site • Utilizza maschera di sottorete Routing con Sottoreti • Estrai IP address Id dal datagram • Se prefisso di Id coincide con una rete direttamente connessa • Invia datagram a dest. • Altrimenti • Per ogni entry nella tabella • Calcola N = Id & mask • Se N è presente allora Invia a next-hop specificato • Se no-match allora errore di routing Esempio dest maschera 30.0.0.0 40.0.0.0 128.1.0.0 192.4.10.0 255.0.0.0 255.0.0.0 255.255.0.0 255.255.255.0 salto 40.0.0.7 Consegna diretta Consegna diretta 128.1.0.9 • Datagramma in arrivo indirizzato a 192.4.10.3 • Foreach i maski&192.4.10.3 • • • • 192.0.0.0 30.0.0.0 192.0.0.0 40.0.0.0 192.4.0.0 128.1.0.0 192.4.10.0 192.4.10.0 passo a 128.1.0.9 Supernet • Indirizzamento senza classi • Complementare rispetto subnet • Indirizzo assegnato a una organizzazione copre + prefissi di classe • Motivazioni • Classe B si sta esaurendo • Classe C + numerosa Supernet • Considero azienda di medie dimensioni • I 255 host di una classe C sono troppo pochi • Preferisce classe B con subnetting • Alternativa • Assegno n classi C contigue • Se n = 256 simulo indirizzo classe B Routing nelle Supernet • 256 ind. classe C vs 1 ind. classe B • Esplosione tabelle routing • Classless Inter-Domain Routing (CIDR) • • • • Collassa l’informazione in unico blocco (network address, count) ... (192.5.48.0, 3) 192.5.48.0 - 192.5.49.0 - 192.5.49.0 Tabelle contengono info solo su ISP CIDR • Utilizzo maschera • Impongo blocchi di dim. potenza di 2 • Richiede di specificare 2 valori • Indirizzo più basso del blocco • Maschera a 32 bit • Indirizzo/ #bit1 nella maschera • 128.211.168.0/21 Strutture dati e algoritmi per classless lookup • Velocità è essenziale • Individuare next-hop • Modificare tabella • Indirizzo CIDR non è self-identifying • Classfull address • Hashing Strutture dati e algoritmi per classless lookup • RICERCA PER LUNGHEZZA DI MASCHERA • Parto da 32 bit settati a 1 e decremento • Scelgo il massimo prefisso che trova riscontro nella tabella • Inefficiente • Worst case 32 iterazioni (caso default) Strutture dati e algoritmi per classless lookup • BINARY TRIE • Utilizzo struttura gerarchica • Valore dei bit successivi stabilisce percorso da seguire • E’ necessario calcolare un insieme di prefissi unici per costruire l’albero • Effettuo ricerca nella struttura • Mi fermo su una foglia o se non proseguo Esempio di Binary trie Prefissi inseriti 001 1 0 0100 0 0101 0 1 011 1010 1 1 1 0 10110 10111 Percorso per 10111 1 0 0 1 0 1 Strutture dati e algoritmi per classless lookup • BINARY TRIE - continua • Ciascuna foglia contiene • Indirizzo a 32 bit A • Maschera che copre la porzione di rete M • D&M=A? • Se no, scarico il datagramma • In realtà trovo candidati potenziali Strutture dati e algoritmi per classless lookup • BINARY TRIE - continua • Unicità prefissi? • Estendo la struttura • Ogni nodo interno contiene ind e mask • Scelgo il percorso + lungo (+ specifico) Strutture dati e algoritmi per classless lookup • BINARY TRIE - continua • Ottimizzazioni • Patricia tree • Info aggiuntiva in ogni nodo • Salto lunghi prefissi comuni • Level Compressed trie • Elimina livelli dell’albero che possono essere saltati