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