Indirizzo IP - Sito Stek Andaloro
Transcript
Indirizzo IP - Sito Stek Andaloro
Indirizzo IP IP (Internet Protocol) sta al livello 2 della scala Tcp/Ip o al livello 3 della scala ISO/OSI. Un indirizzo IP identifica in modo logico (non fisico come nel caso del MAC Address) una macchina (anche un'interfaccia....) all'interno della rete. Fornisce anche le informazioni utili all'instradamento del pacchetto. A seguire l'header del protocollo IP: Vers: 4 bit che indicano la versione dell'Ip, al momento la Ipv4 IHL (Internet Header Lenght): 4 bit che indicano la lunghezza dell'intestazione TOS (Type of Service): tipo di servizio, indica la priorità Lunghezza totale: 16 bit, include l'header e i dati Identificativo: serve ad identificare in modo univoco un datagramma Flag: il primo bit è posto sempre a 0; il secondo bit posto a 0 indica se si può frammentare; il terzo bit posto a 0 indica che è l'ultimo frammento Offset: posizione del frammento nel datagramma TTL Time to Live (tempo di vita): indica il numero massimo di tratti di rete che un segmento può attraversare: ad ogni router viene decrementato, appena arriva a 0 si distrugge il pacchetto Protocollo: indica il protocollo di livello superiore Checksum dell'intestazione: controllo dell'errore: • Il checksum contenuto all’interno dell’intestazione IP e’ calcolato solo sull’intestazione IP (20 byte). Il calcolo del checksum non viene eseguito su nessuno dei byte che seguono l’intestazione IP. Per calcolare il checksum IP di un frame in uscita per prima cosa il valore viene posto a zero, quindi la somma a 16bit con complemento a uno dell’intera intestazione viene calcolata (l’intestazione viene considerata sempre come sequenze di parole a 16bit). Il complemento a 1 di questa somma viene quindi memorizzata nel campo checksum dell’intestazione IP. Quando il frame IP viene ricevuto la somma a 16bit con complemento a uno viene calcolata. Essendo il checksum calcolato da chi ha trasmesso il frame, gia’ compreso nel frame stesso, il checksum calcolato dal ricevitore dovra’ avere tutti i bit a 1 (ffff in notazione esadecimale, cioe’ uno dei due possibili valori di 0 nella rappresentazione dell’aritmetica a complemento a 1) se l’intestazione e’ stata ricevuta correttamente. Se il checksum contiene un solo bit diverso da 1 allora il frame viene scartato e non viene generato nessun errore. Sara’ compito di uno dei protocolli soprastanti IP (es TCP) a richiedere la ritrasmissione del frame. Opzioni IP: registrazione del percorso o altri... Padding: riempitivo L'IP è formato da 32 bit (4 byte), viene espresso sotto la forma decimale. Ogni byte va da 0 a 255 (Es: 137.204.213.2). Approfondimento: Da più di 10 anni le comunicazioni di Internet utilizzano oltre al vecchio sistema IPv4 (il più diffuso, pubblicato nel 1981) anche il nuovo IPv6 (pubblicato nel 1998). Per superare i limiti di IPv4, i progettisti di IPv6 hanno definito un nuovo insieme di regole che introduce diverse migliorie rispetto al precedente. Con IPv6 il limite storico dell'IPv4 (circa 4 miliardi di indirizzi) viene innalzato a circa 340 miliardi di miliardi di miliardi di miliardi di indirizzi. IPv6 contiene numerosi miglioramenti rispetto a IPv4, ma il suo principale valore sta proprio nella quantità quasi inesauribile di indirizzi. Con IPv6 gli indirizzi pubblici non sono più un lusso e tutti gli apparati possono avere un indirizzo univoco sull'intera rete. L'indirizzamento univoco faciliterà enormemente la crescita della rete e la comparsa di nuove modalità di utilizzo. Gli indirizzi IPv6 sono composti di 128 bit e sono rappresentati come 8 gruppi di 4 cifre esadecimali (ovvero 8 word di 16 bit ciascuna). Classi di indirizzamento IP L'indirizzo IP si presenta come "spezzato". • • Net-ID: indirizzo di rete Host-ID: indirizzo dell'host Classe A (generalmente assegnate alle WAN): 2^8 indirizzi di rete, ogni rete ha 2^24 host Classe B (generalmente assegnate alle grandi LAN): 2^16 indirizzi di rete, ogni rete ha 2^16 host Classe C (generalmente assegnate alle piccole LAN): 2^24 indirizzi di rete, ogni rete ha 2^8 host Classe D: multicasting Classe E: usi futuri Es. 30.50.18.45 è un indirizzo di classe A Es. 200.50.18.2 è di classe C Si è pensato a strutturare le reti per classi per aumentare il numero di indirizzi IP possibili, anche perchè se 200.50.18.2 appartiene alla rete 200.50.18.0 (ip non utilizzabile per un host), l'indirizzo 200.50.18.255 è definito indirizzo broadcast (ip non utilizzabile per un host). Una rete con una ventina di host usa una classe di indirizzi privati del tipo 192.168.0.0. In qualche punto del path (percorso) che collega la rete ad Internet c’è un dispositivo che fa il NAT (Network Address Translation), tipicamente il firewall o il router, che espone la rete verso Internet con un unico indirizzo IP pubblico. Il device NAT si comporta così: nel pacchetto in uscita toglie l’indirizzo privato ed inserisce il proprio (pubblico), quando il pacchetto di risposta arriva fa il processo inverso, toglie il proprio IP e mette l’indirizzo privato dell’host che ha generato la sessione, e glielo inoltra. Da sottolineare come in NAT sia completamente trasparente per gli host in comunicazione. Inoltre non esiste alcun modo per stabilire se e quanti host privati ci siano dietro un IP pubblico “nattato”. In parole povere il vostro provider non è in grado di sapere se in casa vostra c’è un solo PC oppure un intero datacenter. Subnetting Le tre classi nelle quali sono suddivise le reti vincolano a usare dimensioni prefissate in termini di indirizzi disponibili e non possono certo soddisfare le esigenze di tutte le possibili realtà di LAN: in molti casi una rete di classe A o B è troppo grande e una rete di classe C troppo piccola. Il subnetting è l'operazione che viene effettuata sul campo host, suddividendolo in due parti per organizzare la rete in parti più piccole: le sottoreti. Es. Prendiamo una rete di classe B: 137.204.0.0 possiamo assegnare il terzo byte alle sottoreti (creandone quindi 2^8 sottoreti) e l'ultimo byte per gli host (2^8-2 host). Per suddividere una rete molto grande in piccole sottoreti si fa uso di uno strumento chiamato Subnet-mask. Ad esempio la subnet-mask precedente è 255.255.255.0 11111111.11111111.11111111.00000000 (o anche /24) Es. 192.168.8.10/24 (255.255.255.0) Network-ID = 192.168.8.0 (banalmente...) Es. 10.10.0.1/13 (255.248.0.0) la sua subnet è 10.8.0.0 Indirizzo in decimale 10 10 0 1 Indirizzo in binario 00001010 00001010 00000000 00000001 Subnet in binario 11111111 11111000 00000000 00000000 AND 00001010 00001000 00000000 00000000 Es. 10.0.2.201/30 (255.255.255.252) la sua subnet è 10.0.2.200 Il Indirizzo in decimale 10 0 2 201 Indirizzo in binario 00001010 00000000 00000010 11001001 Subnet in binario 11111111 11111111 11111111 11111100 AND 00001010 00000000 00000010 11001000 numero massimo di host che una sottorete può contenere è 2^h-2 dove h è il numero di bit assegnati agli host. Il "-2" si fa per eleiminare dalla conta l'indirizzo di rete e l'indirizzo broadcast. In realtà nelle sottoreti non isolate, almeno un indirizzo dovrà essere assegnato al Default Gateway, che è il dispositivo router verso cui instradare tutto il traffico diretto al di fuori della sottorete. Ora riguardando l'esercizio precendente, con una mask /24 sarà possibile avere 2^8 sottoreti dalla 137.200.0.0, quindi il numero di sottoreti è uguale a 2^s, dove s è il numero di bit assegnati alla subnet. Esempio: l'host 192.168.10.200 con subnet-mask 255.255.255.192 (/26) Indirizzo in decimale 192 168 10 200 Indirizzo in binario 11000000 10101000 00001010 11001000 Subnet in binario 11111111 11111111 11111111 11000000 AND 11000000 10101000 00001010 11000000 La sua subnet è 192.168.10.192/26, poichè l'indirizzo è di classe C, su 26 bit i primi 24 sono riservati alla rete e 2 alla sottorete: perciò sono possibili quattro sottoreti a 26 bit: 192.168.10.00000000=0 192.168.10.01000000=64 192.168.10.10000000=128 192.168.10.11000000=192 Laboratorio 1 Packet Tracer Packet Tracer è un programma realizzato dalla Cisco e distribuito gratuitamente. Su di esso vengono formati i corsisti Cisco che vogliono conseguire le certificazioni. Esso simula la realizzazione di una o più reti. Aprendo il programma esso si presenta così: Nella parte bianca abbiamo il nostro piano di lavoro dove possiamo andare a trascinare i nostri dispositivi. Questi si trovano in basso a sinistra e sono suddivisi per categorie: Routers, Switches, Hubs, End Devices, etc. Cliccando sulle categorie possiamo andare a scegliere il modello di dispositivo da trascinare. Iniziamo a trascinare due dispositivi di tipo Generic tra gli End Devices, in più dagli Hubs preleviamo un ripetitore generico multiporta (prendete quello con più di due porte). Infine collegare i dispositivi con l’hub tramite il cavo, preso dalla categoria Connections, Copper StraightThrough. Per effettuare il collegamento basterà semplicemente, dopo aver selezionato il giusto cavo, cliccare sul primo dispositivo e poi andare con il mouse verso il secondo e cliccare nuovamente, infine scegliere la corretta porta. La configurazione dovrebbe essere più o meno questa (per cambiare le etichette su i pc basterà cliccare su PC0 e andare a scrivere l’indirizzo IP (Internet protocol identifica in maniera logica una macchina in rete, lo vedremo in teoria) della macchina): A questo punto possiamo cliccare sull’hub e possiamo visualizzare la componente fisica del dispositivo: La sua composizione è modulare, come quella di altri dispositivi che vedremo più avanti, e in caso potremo andare ad aggiungere altri ingressi. Come si vede possiamo zoomare oppure spegne e riaccendere il dispositivo. Se andiamo a cliccare su uno dei pc vedremo questo: Anche questa composizione è modulare e possiamo vedere anche qui la componente fisica. Ci sono diverse linguette in alto: noi clicchiamo su Desktop: Scegliamo IP Configuration e assegnamo i seguenti valori: Chiudiamo (il salvataggio è automatico) andiamo ad assegnare all’altro pc l’IP 192.168.0.2 nella stessa maniera. A questo punto se ci posizioniamo con il mouse (senza cliccar nulla) su uno dei pc comparirà una finestrella che ci indica l’IP appena assegnato, il MAC address ( identifica in maniera fisica una macchina in rete, lo vedremo in teoria) e altri parametri. Torniamo a cliccare sul primo PC e andiamo di nuovo su Desktop e però questa volta scegliamo Command Prompt (cioè quello che possiamo visualizzare su i nostri pc digitando cmd in Esegui). Il primo comando che daremo sarà ipconfig: Come vediamo possiamo controllare alcuni informazioni come il nostro IP oppure la subnet mask in uso. A questo punto proviamo a effettuare un “ping”. In un certo senso un ping è una sorta di saluto che fa un dispositivo ad un altro per verificare la connessione. In buona sostanza inviando un ping si inviano 4 pacchetti ICMP ( Internet Control Message Protocol ). Proviamo quindi: Come possiamo vedere abbiamo inviato 4 pacchetti e ne abbiamo ricevuto altrettanto, persi 0. Ci sarà indicato anche il numero di bytes il tempo impiegato e il TimeToLive (tempo di vita di ogni pacchetto lo fare in teoria). Se provassimo a pingare un IP che non è stato assegnato.... potremo verificare che i pacchetti sono andati tutti persi. Tutto ciò è stato fatto in modalità realtime come si vede in basso a destra. Proviamo ad abbassare il Prompt e a andare in modalità Simulation. Cliccare su Show all/None e poi edit filters per poi scegliere di visualizzare solo i pacchetti di tipo ICMP. A questo punto cliccare sulla lettera (Add a simple PDU) poi andare nell’area di lavoro e cliccare sul primo e poi sul secondo PC e poi clicca Auto / Capture Play (o Capture / Forward se vogliamo visualizzare passo passo). Possiamo visualizzare il tragitto del nostro pacchetto. In questa modalità possiamo cancellare tramite il tasto delete (in basso al centro) tutto quello che si è fatto come se fosse appunto una simulazione. Proviamo anche a tornare sul nostro Prompt, dopo aver fatto delete, e a inviare un ping in questa modalità: Come prima possiamo visualizzare il percorso dei pacchetti dopo aver cliccato su Auto Capture / Play. Laboratorio 2 Packet Tracer Guardando l’esercizio precedente andiamo a ricreare una rete fatta da 3 pc con IP (192.168.0.1, 192.168.0.2, 192.168.0.3) e un hub al centro. Andiamo in modalità Simulation editiamo solo il protocollo ICMP come fatto in precedenza e mandiamo un ping dal Prompt del primo pc verso il secondo pc. Come possiamo vedere l’hub non distingue i dispositivi. Ma continua a inviare i pacchetti su tutte le porte. Esso è semplicemente un ripetitore. Proviamo infatti a ricreare la stessa rete (magari con IP 192.168.0.4, 192.168.0.5, 192.168.0.6) però questa volta collegati da uno Switch 2950 24. Aspettare che tutti i pallini diventino verdi e poi andare sul Prompt del primo pc e mettere questo comando: arp -a. Non andremo a visualizzare nulla perchè ancora non è stata compilata la tabella di ARP ( Address Resolution Protocol ). Questa tabella praticamente fornisce una mappatura tra l’indirizzo IP e il MAC address. Questa si andrà a popolare solo dopo aver fatto ad esempio il ping. Difatti il primo pacchetto che arriva allo switch verrà comunque duplicato su entrambe le porte, poi, dopo che i dispositivi avranno risposto, la tabella di arp sarà stata popolata e quindi lo switch saprà indirizzare i pacchetti solo ai dispositivi corretti, evitando collisioni e perdita di pacchetti. Proviamo a rifare dunque un ping come la volta predente in modalità Simulation, questa volta editando non solo il protocollo ICMP ma anche l’arp. A questo punto rifacendo arp -a potremo visualizzare la tabella: Dopo aver fatto un ping anche sul terzo dispositivo visualizzeremo la nostra tabella di arp completa. Esercizi svolti di Subnetting Esercizio 1 Sia dato un indirizzo di classe C: 205.25.10.0; segmentare la rete così da avere 5 subnet ognuna con almeno 20 host. Svolgimento: Essendo la rete di classe C si lavora solo sull'ultimo ottetto: 23 = 8 subnet (22 =4 sarebbero poche...) 25- 2 = 30 host 205.25.10. sss hhhhh Con subnetmask 255.255.255.224 • Gli host della prima subnet (205.25.10.0) saranno 205.25.10. 00000001 => 205.25.10.1 (1° host) 205.25.10. 00000010 => 205.25.10.2 (2° host) 205.25.10. 00000011 => 205.25.10.3 (3° host) ..................................................................................... 205.25.10. 00011110 => 205.25.10.30 (ultimo host) 205.25.10. 00011111 => 205.25.10.31 (broadcast) ● Gli host della seconda subnet (205.25.10.32) saranno 205.25.10. 00100001 => 205.25.10.33 (1° host) 205.25.10. 00100010 => 205.25.10.34 (2° host) 205.25.10. 00100011 => 205.25.10.35 (3° host) ............................................................................ 205.25.10. 00111110 => 205.25.10.62 (ultimo host) 205.25.10. 00111111 => 205.25.10.63 (broadcast) ......................................................................................... • Gli host dell'ultima subnet (205.25.10.224) saranno 205.25.10. 11100001 => 205.25.10.225 (1° host) 205.25.10. 11100010 => 205.25.10.226 (2° host) 205.25.10. 11100011 => 205.25.10.227 (3° host) ............................................................................ 205.25.10. 11111110 => 205.25.10.254 (ultimo host) 205.25.10. 11111111 => 205.25.10.255 (broadcast) Proviamo a simulare la prima subnet con packet tracer: Come vediamo ho inserito i primi tre host (205.25.10.1, 205.25.10.2, 205.25.10.3) più l’ultimo (205.25.10.30) della prima subnet (205.25.10.0), a lato ho messo anche il primo host (205.25.10.33) della seconda subnet (205.25.10.32). Come è facile verificare tutti gli host della subnet “pingano” tra di loro. Infatti se io dal 205.25.10.2 “pingo” il 205.25.10.1 ottengo il risultato atteso. Banalmente posso provare a effettuare anche un ping sull’indirizzo broadcast 205.25.10.31 e otterrò quattro pacchetti inviati e ricevuti da ogni host della subnet. Infine non riusciamo a “pingare” il primo host della seconda subnet. Esercizio 2 Indicare l’indirizzo del 30° host della 14° subnet relativa all’indirizzo di rete 150.180.0.0 con subnet mask 255.255.248.0. Svolgimento: Indirizzo di classe B e visto che la subnet è 255.255.248.0 in binario avremo: 11111111.11111111.11111000.00000000 Gli indirizzi saranno tutti del tipo: 150.180. ssssshhh.hhhhhhhh Per trovare la 14° subnet dobbiamo convertire in binario il 13 (la prima subnet parte da 0, la seconda da 1, la terza da 2, ....., la 14° da 13, ...). (13)10 =(1101)2 Quindi la 14° subnet sarà: 150.180. 01101000.00000000 Cioè 150.180.104.0 Il 30° host sarà: 150.180. 01101000.00011110 Cioè: 150.180.104.30 Il primo host di questa subnet sarà: 150.180.104.1 L’ultimo host di questa subnet sarà: 150.180. 01101111.11111110 Cioè: 150.180.111.254 Infine il broadcast: 150.180.111.255 Verifichiamo la subnet con packet tracer. Proviamo a “pingare” dal primo al 30° e poi all’ultimo (se volete passarvi il tempo anche all’indirizzo broadcast….). Esercizio 3 Indicare l’indirizzo del primo e dell’ultimo host della decima subnet relativa all’indirizzo di rete 25.0.0.0 di cui 13 bit sono dedicati agli host e i rimanenti alle subnet. Svolgimento: Indirizzo di classe A: 3 ottetti liberi, ergo 24 bit. Se 13 sono per gli host, 11 sono per le subnet: # subnet 211 =2048 # host 213-2=8190 Gli indirizzi sono del tipo 25. ssssssss.ssshhhhh.hhhhhhhh con subnet mask del tipo 255.255.224.0. Per cercare la 10° subnet => (9)10 =(1001)2 : 25.00000001.00100000.00000000 Cioè: 25.1.32.0 Il primo host sarà: 25.1.32.1 L’ultimo: 25.1.63.254 Il broadcast: 25.1.63.255 Verifica con Packet Tracer. Esercizio 4 Indicare l’indirizzo del primo e dell’ultimo host della 30° rete dell’indirizzo 135.12.0.0 in cui 10 bit sono per gli host e i rimanenti per le subnet. Svolgimento: Indirizzo di classe B, ho 16 bit disponibili quindi se 10 sono per gli host 6 saranno per le subnet. Gli indirizzi saranno del tipo: 135.12. sssssshh.hhhhhhhh Con una subnet mask del tipo 255.255.248.0. Avremo in totale: # subnet 26 = 64 # host 210-2 = 1022 Converto quindi (29)10 = (11101)2 La mia 30° subnet sarà: 135.12. 011101 00.00000000 Cioè: 135.12.116.0 Il primo host sarà: 135.12.116.1 L’ultimo: 135.12. 01110111.11111110 Cioè: 135.12.119.254 Verificare con Packet Tracer. Esercizio 5 L'host con indirizzo e subnet mask: 192.168.10.20/27 deve comunicare con l'host 192.168.10.40 I due host sono nella stessa sottorete? Svolgimento: 192.168.10.20 = 192.168.10.00010100 (per comodità converto solo l'ultimo byte...) essendo /27 per sapere la sottorete: 192.168.10 .00010100 AND 255.255.255.11100000 192.168.10 .00000000 rete di appartenenza 192.168.10.0 192.168.10.40 = 192.168.10.00101000 essendo /27 per sapere la sottorete: 192.168.10 .00101000 AND 255.255.255.11100000 192.168.10 .00100000 l'host di destinazione appartiene a un'altra sottorete contatto il default getway Esercizio 6 Dato l’indirizzo IP 192.16.10.22, subnet mask 255.255.255.240: Qual è l’indirizzo della sottorete? Quanti bit verranno usati per gli host e quanti per le subnet? Quante saranno le subnet in totale e quanti gli host per ogni subnet? Qual è l’indirizzo di broadcast? Qual è il range degli indirizzi IP disponibili per gli host? Svolgimento per trovare l'indirizzo della sottorete di 192.16.10.22 faccio un AND con la subnet mask 192.16.10.22 = 192.16.10.00010110 essendo /28 per sapere la sottorete: 192.16 .10 .00010110 AND 255.255.255.11110000 192.16 .10 .00010000 = 192.16.10.16 è l'indirizzo della subnet in definitiva usiamo 4 bit per gli host e 4 bit per la subnet avremo 16 subnet e per ogni subnet 14 host Prima troviamo il range di indirizzi che quindi sarà dal 192.16.10.17 al 192.16.10.30 (....l'ultimo byte è 00011110) Quindi il broadcast sarà 192.16.10.31 (....l'ultimo byte è 00011111) Esercizio 7 Dato l'indirizzo di classe C 192.168.0.0 con subnet mask di default 255.255.255.0. Abbiamo bisogno di usare 4 subnet. Quale subnet custom dovremo adoperare? Quanti host ci saranno per ogni subnet? Qual è il range degli indirizzi della prima e della seconda subnet? Svolgimento Per trovare 4 subnet dovremo adoperare 2 bit quindi la subnet custom sarà /26 (255.255.255.192) i rimanenti 6 bit sono destinati per gli host quindi avremo 26-2 = 62 host per subnet la prima subnet sarà 192.168.0.0/26 il suo range degli indirizzi è da 192.168.0.1/26 a 192.168.0.62/26 la prima subnet sarà 192.168.0.64/26 il suo range degli indirizzi è da 192.168.0.65/26 a 192.168.0.126/26 Esercizio 8 Data la rete 199.199.10.0 devo ricavare almeno 10 sottoreti ciascuna in grado di ospitare almeno 8 host A che classe appartiene la rete? Qual è la subnet mask di default? Quanti bits sono necessari per la subnet? E per la parte host? Qual è la subnet mask «custom»? Svolgimento la classe di appartenenza è una classe C la subnet mask di default per una classe C è la /24 (255.255.255.0) per ottenere 10 subnet abbiamo bisogno di 4 bit i rimanenti 4 bit saranno sufficienti per ottenere 8 host per rete (24 – 2 = 14) la subnet custom da utilizzare sarà la /28 (255.255.255.240) Esercizio 9 Data la rete 129.112.10.0/24 definire una proposta di subnetting che soddisfi le seguenti richieste La sottorete «amministrazione» deve contenere almeno 20 host La sottorete «ricerca e sviluppo» deve contenere almeno 100 host La sottorete «management» deve contenere almeno 25 host La sottorete «vendite» deve contenere almeno 40 host Ci saranno due proposte di svolgimento. Dovrai dire se una delle due scelte è sbagliata. Se alla fine, a tuo avviso, entrambe le proposte sono errate proponi la tua soluzione. Prima proposta di svolgimento 129.112.10.0/24 dobbiamo creare 4 subnet quindi usiamo come subnet mask fissa una /26 amministrazione 192.112.10.0/26 spazio di indirizzamento 1-62 ricerca e sviluppo 192.112.10.64/26 spazio di indirizzamento 65-126 management 192.112.10.128/26 spazio di indirizzamento 129-190 vendite 192.112.10.192/26 spazio di indirizzamento 193-254 è errato? Perché? Seconda proposta di svolgimento usiamo subnet mask variabile (5 bit per gli host quindi 3 vanno alla subnet) amministrazione 192.112.10.0/27 spazio di indirizzamento 1-30 (7 bit per gli host quindi 1 va alla subnet) ricerca e sviluppo 192.112.10.32/25 spazio di indirizzamento 33-158 (5 bit per gli host quindi 3 vanno alla subnet) management 192.112.10.160/27 spazio di indirizzamento 161-190 (6 bit per gli host quindi 2 vanno alla subnet) vendite 192.112.10.192/26 spazio di indirizzamento 193-254 è errato? Perché? Svolgimento La prima scelta è errata perché così facendo lo spazio di indirizzamento per ricerca e sviluppo risulterà insufficiente per accogliere i 100 host. Infatti con una subnet mask del tipo /26 avremo 26 2 = 62 host. La seconda scelta è anche errata in quanto se andassimo a guardare sempre la rete ricerca e sviluppo il primo e l'ultimo host risultano su due subnet diverse! Per verificare ciò basterà effettuare un AND logico con la subnet mask: (mi limito a verificare solo l'ultimo byte....) 3310 = 001000012 AND 12810 = 100000002 010 = 00000000 15810 12810 = 100111102 AND = 100000002 12810 = 100000002 L'ultima soluzione è corretta Occorre quindi per prima cosa dividere il nostro spazio in due sottoreti. La prima parte sarà assegnata a ricerca e sviluppo, la seconda parte sarà divisa ulteriormente dalle altre subnet. Infatti: per 100 host necessari 7 bit la subnet mask del tipo /25 è corretta. ricerca e sviluppo 192.112.10.0/25 altre... 192.112.10.128/25 spazio di indirizzamento per ricerca e sviluppo 1-126/25 la seconda parte sarà partizionata per le altre subnet la rete vendite necessita uno spazio di indirizzamento per gli host a 6 bit (26 - 2 = 62 host) per poter arrivare a 40 host. Infatti andremo a prendere vendite 192.112.10.128/26 altre... 192.112.10.192/26 spazio di indirizzamento per vendite 129-190/26 Amministrazione e management richiedono uno spazio di indirizzamento per gli host a 5 bit management 192.112.10.192/27 spazio di inidirizzamento 193-222/27 amministrazione 192.112.10.224/27 spazio di inidirizzamento 193-254/27 Esercizio 10 Dato l'indirizzo IP 140.34.42.28 e sapendo che la lunghezza della netmask associata è pari a 20 bit, individuare: • il prefisso di rete • il numero dell'host • l'indirizzo di broadcast Svolgimento: Usare una /20 vuol dire usare una subnet mask del tipo 255.255.240.0. Per trovare il prefisso di rete dovremo sempre fare un AND tra l'indirizzo dell'host e la subnet mask. 140.34 .00101010.00011100 AND 255.255.11110000.00000000 140.34 .00100000.000000002=140.34.32.010 Per trovare il numero dell'host potremo ragionare così: Sull'ultimo byte possiamo mettere 256 host che vanno a moltiplicarsi per la differenza tra l'host e la rete che è di 10 (42-32), quindi fa 2560 però gli sommiamo anche il 28 dell'ultimo byte e risulta 2588° host. In realtà esiste un altro procedimento più lineare (praticamente è la stessa cosa...), cioè fare uno XOR tra l'indirizzo dell'host e l'indirizzo di rete: 140.34.00101010.00011100 XOR 140.34.00100000.00000000 0 .0 .00001010.000111002=0.0.10.2810=10*256+28=2588°host L'indirizzo di broadcast si ottiene mettendo a 1 tutti i bit relativi agli host: 140.34.00101111.11111111=140.34.47.255 Oppure si può ottenere facendo uno XOR tra l'indirizzo di rete e l'indirizzo degli host con tutti 1. 140 .34 .00100000.00000000 XOR 00000000.00000000.00001111.11111111 140 .34 .00101111.11111111=140.34.47.255 Esercizio 11 Al Politecnico di Milano viene assegnato l’indirizzo di rete 131.175.0.0/16 (l’ambiente è da considerarsi classless); il Politecnico è a sua volta composto da 16 dipartimenti, all’incirca simili come dimensioni, che si decide di collegare in rete. Ogni dipartimento è a sua volta composto da vari stabili suddivisi in più piani. In particolare il dipartimento #3 è composto da 8 stabili e il dipartimento #14 è composto da ben 32 stabili diversi. Il dipartimento #3, nello stabile #2, ha l’esigenza di applicare una ulteriore suddivisione in subnet sapendo che al momento la più grande rete di piano contiene 30 host. • Specificare le 16 sottoreti della rete 131.175.0.0/16. • Elencare, in forma concisa, gli indirizzi degli host assegnati al dipartimento #1 (le subnet partono da 0.......). • Identificare l’indirizzo di broadcast della sottorete #1. • Specificare le 8 subnet che compongono gli stabili, tra loro simili, del dipartimento #3. • Elencare, in forma concisa, gli indirizzi degli host assegnati allo stabile #3-6. • Identificare l’indirizzo di broadcast della sottorete #3-6. • Determinare la netmask più idonea per le reti di piano dello stabile #2 del dipartimento #3 (pensando che ogni stabile ha massimo 8 piani). • Elencare in forma concisa, gli indirizzi degli host assegnati al piano #3-2-3. • Identificare l’indirizzo di broadcast della sottorete #3-2-3 Svolgimento Per creare 16 subnet abbiamo bisogno di 4 bit sulla parte host: 131.175.sssshhhh.hhhhhhhh/20 131.175.00000000.00000000/20 131.175.00010000.00000000/20 131.175.00100000.00000000/20 131.175.00110000.00000000/20 ............ 131.175.11100000.00000000/20 131.175.11110000.00000000/20 Per la seconda subnet: 131.175.00010000.00000000/20 lo spazio di indirizzamento degli host sarà: 131.175.00010000.00000001/20-131.175.00011111.11111110/20 Cioè 131.175.16.1/20-131.175.31.254/20 Il suo indirizzo broadcast sarà 131.175.00011111.11111111/20=131.175.31.255/20 La rete del dipartimento #3 sarà la quarta subnet quindi 131.175.00110000.00000000/20 va divisa in 8 subnet ulteriori, avremo bisogno di altri 3 bit 131.175.0011sssh.hhhhhhhh/23 131.175.00110000.00000000/23 131.175.00110010.00000000/23 131.175.00110100.00000000/23 131.175.00110110.00000000/23 131.175.00111000.00000000/23 131.175.00111010.00000000/23 131.175.00111100.00000000/23 131.175.00111110.00000000/23 La subnet dello stabile #3-6 è praticamente la settima di quest'ultime: 131.175.00111100.00000000/23 Il suo spazio di indirizzamento sarà: 131.175.00111100.00000001/23-131.175.00111101.11111110/23 Cioè: 131.175.60.1/23-131.175.61.254/23 Il suo indirizzo broadcast sarà 131.175.00111101.11111111/23 cioè 131.175.61.255/23 La rete dello stabile #2 del dipartimento #3 è la terza: 131.175.00110100.00000000/23=131.175.52.0/23 Questa rete è suddivisa in piani, gli host sono massimo 30 quindi mi basterebbero 5 bit. Mi rimarrebbero 4 bit liberi per indicizzare le reti, verrebbero fuori 16 piani.... Posso stare più tranquillo con gli host e prendermi 6 bit ( 26 -2 = 62 host) e indicizzare con 3 bit 8 piani. Quindi in definitiva la sua subnet mask sarà 255.255.255.192. Per trovare la #3-2-3 dobbiamo trovare la quarta subnet dell'indirizzamento appena stabilito sopra. 131.175.0011010s.sshhhhhh/26 131.175.00110100.11hhhhhh/26ù 131.175.00110100.11000000/26=131.175.52.192/26 Lo spazio di indirizzamento sarà quindi: 131.175.00110100.11000001/26-131.175.00110100.11111110/26 131.175.52.193/26-131.175.52.254/26 Il suo broadcast sarà: 131.175.52.255/26 Esercizio 12 Presupporre che un'azienda abbia assegnato un indirizzo 156.26.0.0 e voglia: 1. un massimo di 60 reti di classe C (da 1 a 254 host) 2. un massimo di 14 reti con un massimo di 10 host 3. quattro reti point-to-point Svolgimento: Iniziamo con il suddividere lo spazio in 4 subnet della stessa dimensione, quindi assegneremo loro 2 bit e una subnetmask a 18 bit. 156.26.sshhhhhh.hhhhhhhh Quindi le subnet saranno: 156.26.00000000.00000000=156.26.0.0/18 156.26.01000000.00000000=156.26.64.0/18 156.26.10000000.00000000=156.26.128.0/18 156.26.11000000.00000000=156.26.192.0/18 Per soddisfare il primo requisito, cioè 60 reti di classe C (/24), dividiamo la prima subnet 156.26.0.0/18 utilizzando gli altri 6 bit disponibili sul terzo byte. 156.26.00ssssss.00000000 (quindi diventa /24) Avremo così facendo 26 =64 subnet: 156.26.00000000.00000000=156.26.0.0/24 156.26.00000001.00000000=156.26.1.0/24 156.26.00000010.00000000=156.26.2.0/24 ............... 156.26.00111111.00000000=156.26.63.0/24 Per il primo requisito utilizzare le reti da 156.26.0.0/24 a 156.26.59.0/24 Andiamo a prendere 156.26.63.0/24 la suddividiamo in altre subnet, in modo tale da ottenere 10 host per subnet, quindi saranno sufficienti 4 bit (24-2=14 host). 156.26.63.sssshhhh Ci rimangono 4 bit per le subnet: 24 = 16 subnet. 156.26.63.00000000=156.26.63.0/28 156.26.63.00010000=156.26.63.16/28 156.26.63.00100000=156.26.63.32/28 ................ 156.26.63.11100000=156.26.63.224/28 156.26.63.11110000=156.26.63.240/28 Per il secondo requisito: subnet Primo host ultimo broadcast 1° 156.26.63.0/28 156.26.63.1/28 156.26.63.14/28 156.26.63.15/28 2° 156.26.63.16/28 156.26.63.17/28 156.26.63.30/28 156.26.63.31/28 3° 156.26.63.32/28 156.26.63.33/28 156.26.63.46/28 156.26.63.47/28 ... ........ ............... ............... ............ 14° 156.26.63.208/28 156.26.63.209/28 156.26.63.222/28 156.26.63.223/28 Andiamo a creare le reti end-to-end: Prendiamo l'ultima subnet precedente 156.26.63.240/28. Per avere 4 reti useremo altri 2 bit per le subnet: 156.26.63.1111sshh Così facendo avremo 4 subnet con ognuna 2 host: 156.26.63.11110000=156.26.63.240/30 156.26.63.11110100=156.26.63.244/30 156.26.63.11111000=156.26.63.248/30 156.26.63.11111100=156.26.63.252/30 Per il terzo requisito: subnet Primo host Secondo host broadcast 1° 156.26.63.240/30 156.26.63.241/30 156.26.63.242/30 156.26.63.243/30 2° 156.26.63.244/30 156.26.63.245/30 156.26.63.246/30 156.26.63.247/30 3° 156.26.63.248/30 156.26.63.249/30 156.26.63.250/30 156.26.63.251/30 4° 156.26.63.252/30 156.26.63.253/30 156.26.63.254/30 156.26.63.255/30 156.26.0.0/16 156.26.0.0/18 Reti classi C • 156.26.0.0/24 • 156.26.1.0/24 • 156.26.2.0/24 • 156.26.3.0/24 ............ • 156.26.62.0/24 • 156.26.63.0/24 156.26.64.0/18 Reti con 14 host • 156.26.63.0/28 • 156.26.63.16/28 156.26.128.0/18 156.26.192.0/18 156.26.63.32/28 ................... • 156.26.63.224/28 • 156.26.63.240/28 • Reti punto punto • 156.26.63.240/30 • 156.26.63.244/30 • 156.26.63.248/30 • 156.26.63.252/30