Sei sulla pagina 1di 16

Determinare la grandezza della

sottorete
Ogni rete IP possiede due indirizzi non assegnabili direttamente agli
host lindirizzo della rete a cui appartiene e l'indirizzo di
broadcast. Quando si creano delle sottoreti, ciascuna di esse ha
bisogno che le venga riservata una coppia di questi indirizzi - essi
devono essere numeri validi allinterno dellintervallo di indirizzi
relativo a ciascuna sottorete. Quindi, suddividendo un rete in due
sottoreti separate troveremo due indirizzi di rete e due indirizzi di
broadcast - con la conseguenza di aumentare il numero degli
indirizzi inutilizzabili per le interfacce (host); creando 4 sottoreti gli
indirizzi che si perdono diventano otto, e cos via.
Il limite minimo nelle dimensioni di una sottorete consta di 4
indirizzi IP:
Due indirizzi utilizzabili per le interfacce - uno per il router della
rete e uno per l'
unico host.
Un indirizzo di rete.
Un indirizzo di broadcast.
Perch poi si voglia realizzare una rete tanto piccola un'
altra
questione! Con un singolo host tutto il traffico deve dirigersi verso
un'
altra rete. Inizialmente l'
indirizzo IP a disposizione pu essere
suddiviso in 2n (n rappresenta il numero di bit a disposizione degli
host nell'
indirizzo, diminuito di uno) indirizzi di sottorete di uguali
dimensioni (una sottorete potr essere poi ulteriormente suddivisa).
Si deve cercare di essere pragmatici durante la progettazione - 1
opportuno stimare il numero minimo di singole sottoreti che sia
consistente con i vincoli fisici, di gestione, tecnologici e di sicurezza

Calcolare la maschera di sottorete


e lindirizzo di rete 1
La maschera di sottorete il meccanismo che consente la
suddivisione locale di una rete in sottoreti multiple.
La maschera di rete, se non vi sono suddivisioni
semplicemente realizzata ponendo a 1 tutti i bit dello spazio di
indirizzamento di rete e a 0 tutti i bit destinati alla parte host.
Quindi, per le tre classi, avremo le seguenti maschere standard:

Classe A (8 bit di rete) : 255.0.0.0


Classe B (16 bit di rete): 255.255.0.0
Classe C (24 bit di rete): 255.255.255.0
Il modo con cui si realizza una sottorete chiedere in prestito
uno o pi bit allo spazio degli host e fare in modo che le
interfacce interpretino localmente questi bit presi in prestito
come parte dei bit relativi allo spazio di rete. Allora, per ottenere
due sottoreti chiederemo un bit allo spazio degli host mettendo a
1 il bit appropriato nella maschera di rete.
Per un indirizzo di classe C, questa sar la maschera di rete:

11111111.11111111.11111111.10000000
o 255.255.255.128.
Per la rete di classe C del nostro esempio (192.168.1.0),
quelle di seguito sono alcune delle soluzioni possibili:

Calcolare la maschera di sottorete


e lindirizzo di rete 2

Non vi nessuna ragione di principio che obblighi a procedere


secondo questa tecnica in cui i bit della maschera di rete sono
aggiunti a partire dal bit pi significativo degli host procedendo
verso il meno significativo. Per se non si fa cos gli indirizzi
che risulteranno saranno molto strani, rendendo a noi umani la
vita difficile nel determinare a quale sottorete appartenga un
particolare indirizzo, visto che non siamo abili a pensare in
numeri binari (i computer invece trattano e tratteranno
qualunque schema verr loro sottoposto senza problemi).
Quindi non teoricamente impossibile avere una netmask del
tipo:

11111111. 11111111.11111111.01000000

Calcolare la maschera di sottorete


e lindirizzo di rete 3
Una volta decisa la maschera di rete, si deve lavorare sugli
indirizzi di rete e di broadcast - e sugli intervalli di indirizzi
resisi disponibili a questo punto, per ciascuna sottorete. Ancora,
considerando solo una rete di Classe C, elenchiamo soltanto la
parte finale dell'
indirizzo:

Come si pu vedere, c'


una sequenza perfettamente definita in
questi numeri che li rende piuttosto facili da verificare. La parte
spiacevole della realizzazione delle sottoreti visibile nei
termini di una riduzione del numero degli indirizzi disponibili4
per gli host, a mano a mano che si aumenta il numero delle
sottoreti.

Esempio di esercizio 1
Data la classe C 192.168.0.x (x[0, 255]), dividere questa rete
in due sottoreti, utilizzando unappropriata netmask. Calcolare
gli indirizzi di broadcast e di rete delle due nuove sottoreti.
192.168.0.0 lindirizzo di rete
255.255.255.0 la netmask oppure
11111111. 11111111.11111111.00000000
192.168.0.255 lindirizzo di broadcast
Per dividerla in due sottoreti dobbiamo prendere in prestito uno
dei bit della parte host. Essendo una classe C, la parte di rete
composta dai primi 3 byte, mentre quella host dal quarto.
Dato che le sottoreti devono essere due sufficiente prendere un
bit alla parte host.

Quindi la netmask 11111111. 11111111.11111111.10000000


che nella notazione decimale diventa 255.255.255.128 .
Per trovare le rispettive sottoreti sufficiente sostituire
nellindirizzo di classe C i bit della parte subnet in tutte le loro
possibili combinazioni e metterle in and bit a bit con la
netmask. In questo caso le reti sono due.
5

Esempio di esercizio 2
192.168.0.1[7 bit qualunque]
192.168.0.0[7 bit qualunque]
Dove lultimo byte espresso in bit.
192.168.0.1[7 bit qualunque]
and bit a bit
255.255.255.128
=
192.168.0.128
(192.168.0.10000000)
Indirizzo della prima Sottorete
192.168.0.0[7 bit qualunque]
and bit a bit
255.255.255.128
=
192.168.0.0
(192.168.0.00000000)
Indirizzo della seconda Sottorete

Esempio di esercizio 2
Il secondo quesito potrebbe essere il medesimo, quali sono gli
indirizzi di broadcast? E quanti host sono presenti in ciascuna
rete?
Gli indirizzi di bradcast sono quelli che mantenendo fissa la
parte di rete e sottorete pongono i bit della parte host tutti ad
uno. Quindi:

192.168.0.10000000
192.168.0.11111111
(192.168.0.255)
192.168.0.00000000
192.168.0.01111111

(192.168.0.127)
7

Esempio di esercizio 2
Il numero possibile di host per ciascuna sottorete data dalla
parte host -2 (lindirizzo di rete e lindirizzo di broadcast).
Cio 2n - 2 dove n il numero di bit per la parte host. Quindi

27 2 = 126
Se invece si vuole calcolare il numero di host persi durante il
subnetting si moltiplica 2 * k dove k sono il numero delle
sottoreti.

2*2=4

ATTENZIONE: Esempio Critico


Facciamo lipotesi che si voglia suddividere lindirizzo di classe
C 192.168.1.0 in 4 sottoreti (ognuna dele quali disponga di 62
indirizzi liberi per le interfacce). Poi due di queste sottoreti si
vuole che siano riaccorpate a costituire ununica rete pi grande,
ottenendo cos fisicamente tre reti. Si avr:

Nota: la ragione per la quale l'


ultima rete ha soltanto 124 indirizzi
utili (invece di 126 come ci si sarebbe aspettati) sta nel fatto che
essa una super rete composta di due sottoreti. Gli host delle
altre due reti interpreteranno 192.168.1.192 come indirizzo di
rete della sottorete non esistente. E 192.168.1.191 come
indirizzo di broadcast della sottorete non esistente.
Quindi, se si utilizzasse 192.168.1.191 o 192 come indirizzi di
host sulla terza rete, le macchine delle sottoreti pi piccole non
sarebbero in grado di comunicare con queste. Ci mette in
evidenza un aspetto importante della questione:
gli indirizzi utilizzabili sono determinati dalla sottorete pi
piccola in un determinato spazio di indirizzamento.

Tabelle di Routing
Si assuma che un computer con un sistema Linux agisca come
router per questa sottorete. Esso avr tre interfacce di rete per le
LAN e, con ogni probabilit una quarta interfaccia verso Internet
(che rappresenter il suo instradamento predefinito - default
route). Facciamo l'
ipotesi che la macchina Linux utilizzi il pi
basso degli indirizzi IP disponibili in ciascuna sottorete per
ognuna delle proprie interfacce. La configurazione di rete sar
del tipo seguente:

Su ciascuna sottorete, gli host dovrebbero essere configurati con


il proprio indirizzo IP e la maschera relativa alla rete cui
appartengono. In ciascun host verr dichiarato come suo
gateway/router il PC Linux con lindirizzo che esso ha nella 10
sottorete in cui si trova l'
host stesso.

Esercizi Vari
1) Data una LAN con un solo router e data la classe C
192.168.0.x (x [0, 255]), si vuole partizionare la LAN in
sottoreti per avere un numero massimo di host per sottorete
pari a 62, utilizzando unappropriata netmask. a) Calcolare il
numero massimo di sottoreti possibili. b) Calcolare gli
indirizzi di broadcast e di rete di tutte le nuove sottoreti.
Inoltre mostrare gli indirizzi in forma binaria.
a) 4
b) si riportano lultimo byte degli indirizzi di broadcast e di
rete in binario (in decimale)
netmask 255.255.255.11000000 / 255.255.255.192
00 N= .00000000 (.0) B= .00111111 (.63)
01 N= .01000000 (.64) B= .01111111 (.127)
10 N= .10000000 (.128) B= .10111111 (.191)
11 N= .11000000 (.192) B= .11111111 (.255)

11

2) Sono dati tre host A, B e C, rispettivamente di indirizzi IP: IP-A =

130.136.140.18, IP-B = 130.136.180.36, IP-C = 130.136.1.34. a)


Supponendo che i tre host abbiano netmask 255.255.128.196, B
appartiene alla stessa sottorete di A? e C appartiene alla stessa
sottorete di A? b) Quale netmask dovrebbero avere i tre host
affinch A e C appartengano alla stessa sottorete, mentre B non
appartiene a quella sottorete?

a)NetMask = 255.255.128.196 = - . - . 10000000. 11000100


Net(B)=Net(A) ?
IP-A = - . - . 10001100. 00010010
NM
= - . - . 10000000. 11000100
Net(A) = - . - . 10000000. 00000000
IP-B = - . - . 10110100. 00100100
NM
= - . - . 10000000. 11000100
Net(B) = - . - . 10000000. 00000100
Net(B) non uguale a Net(A) Net(B)

Net(A)

Net(C)=Net(A) ?
IP-C = - . - . 00000001. 00100010
NM
= - . - . 10000000. 11000100
Net(C) = - . - . 00000000. 00000000
Net(C) non uguale a Net(A) Net(C)

Net(A)

b) utilizzare il programma netmask.c ( ./nome-eseguibile terzo12


byte quarto-byte)

3) Date le due sottoreti 137.204.72.0 e 137.204.74.0 con


netmask 255.255.255.0 della classe B 137.204.0.0, trovare la
netmask che permette di utilizzare le due sottoreti come se
fossero ununica sottorete: a) la netmask deve essere scritta
sia in binario sia in decimale. b) scrivere il nuovo indirizzo
di rete della sottorete (sia in binario sia in decimale).
137.204.72.0 -.-.01001000.00000000
137.204.74.0 -.-.01001010.00000000
lunico bit diverso il secondo del secondo byte (a partire
da destra) nella netmask deve essere ammessa questa
possibilit per cui
a) 11111111.11111111.11111101.00000000
255.255.253.0
b) dato un indirizzo qualunque della sottorete mettendolo in
and bit a bit con la netmask, si trova lindirizzo della rete
137.204.74.2 &
255.255.253.0
137.204.01001010.00000010 &
255.255.11111101.00000000
137.204.01001000.00000000 137.204.72.0
13

4) Data la netmask 255.255.253.0, a) trovare quanti e b) quali


sono i valori (i range)degli indirizzi che appartengono alla
stessa sottorete dellindirizzo 137.204.72.3. Inoltre trovare c)
lindirizzo di broadcast e di rete della sottorete individuata.
la parte host composta da 9 bit a zero
72.3
253.0

01001000.00000011 &
11111101.00000000
010010[0,1]0.00000011 con X [0,255] cio

a) 29= 512
b)137.204.72.0 <= indirizzo <= 137.204.72.255
137.204.74.0 <= indirizzo <= 137.204.74.255
c)

01001010.11111111 = 137.204.74.255
01001000.00000000 = 137.204.72.0

14

5) Data la netmask 255.255.252.0, a) trovare quanti e b) quali


sono i valori della X per cui gli indirizzi di tipo 137.204.X.0
(dove X[0,255]) appartengono alla stessa sottorete
dellindirizzo 137.204.72.3. Inoltre trovare c) lindirizzo di
broadcast e di rete della sottorete individuata.
a) 4
b) si riportano lultimo byte degli indirizzi di broadcast e di rete
in binario (in decimale)
netmask 255.255.11111100.00000000
137.204.01001000.00000000
tutti gli indirizzi messi in and bit a bit con la netmask devono
appartenere alla stessa sottorete.

c)

00
01
10
11

137.204.01001000.0
137.204.01001001.0
137.204.01001010.0
137.204.01001011.0

X= 72
X= 73
X= 74
X= 75

255.255.252.0
137.204.X.Y
137.204.72.0 indirizzo di rete

dove X uno qualsiasi dei valori sopra ed Y [0,255]


dato lindirizzo di rete mettere a uno tutti i bit della parte host
137.204.01001000.0 137.204.01001011.11111111
137.204.75.255 indirizzo di broadcast
14

FINE
Per ulteriori informazioni consultare
il mini-HOWTO di linux:
IP Sub-Networking Mini-Howto
Potete trovarne una copia sulla
pagina web:
http://www.cs.unibo.it/~scacciag/
sezione:
TEACHING
sottosezione:
LINUX DOCUMENTATION
16