Ip Subnetting
Prima di tutto:
Cosa si intende con Subnetting?
Con la parola subnetting si intende la suddivisione di una rete locale in piu' sottoreti, attraverso l'utilizzo di maschere di sottorete. Tale suddivisione rimane invisibile all'esterno della rete locale.
Cos'è un indirizzo IP?
Un indirizzo IP, chiamato anche indirizzo logico, rappresenta un identificativo software per l'interfaccia di rete sulla quale è utilizzato. In combinazione con l'indirizzo fisico (MAC) consente di determinare in modo univoco ogni interfaccia di un dispositivo di rete. Un IP Address è un numero di 32 bit suddiviso in quattro gruppi da 8 bit ciascuno, la forma con la quale viene solitamente rappresentato è detta decimale puntata (Dotted Decimal).
(ricordo che l'indirizzo ip non è associato al pc, ma alla interfaccia di rete )
Essendo ogni numero rappresentato da 8 bit, può assumere un range di valori da 0 a 255. Utilizzando 32 bit per indirizzo è possibile avere 4.294.967.296 combinazioni di indirizzi differenti
Costruiamo la sottorete
Ora che sappiamo questo possiamo preparaci per costruire una sottorete (subnet).
Prima di iniziare dobbiamo pensare ad alcune caratteristiche che dovrà avere la nostra subnet:
1)Determinare il numero di sottoreti necessarie.
E' necessario tenere presente che il numero di subnet che si possono creare è dato da 2^x-2 dove x è rappresentato dai bit presi in prestito dalla parte host dell'indirizzo ai quali naturalmente bisogna levare l'indirizzo di broadcast quello di rete non assegnabili. Esempio: utilizzando prendendo in prestito 4 bit, sarà possibile creare 14 sottoreti;
2)Determinare il numero di host per ogni sottorete.
Questo valore è dato da 2^y-2 dove y è il numero di bit rimasti per la rappresentazione degli host; Esempio: se i bit rimanenti sono 6 si potranno avere sottoreti formate da 62 host l'una;
3)Determinare le subnet valide.
Questo valore è dato da 256-z, dove 256 dove z rappresenta il valore della subnetmask. Esempio: con una subnetmask di valore 224 avremmo avuto 256-224=32. Questo valore è il valore della prima subnet valida ed è anche la base per le successive, la cui progressione sarà: 32, 64, 96, 128, 160, 192;
4)Determinare gli host validi.
Sono rappresentati da tutti i valori compresi tra le subnet create togliendo gli indirizzi di broadcast e network;
5)Determinare degli indirizzi di broadcast e network delle subnet.
Sono gli indirizzi in cui rispettivamente i bit della parte host sono settati a 1(broadcast) e a 0(network).
Dopo aver determinato questi valori, possiamo capire a quale classe corrisponde la nostra subnet:
Classe A
Il valore del primo ottetto è compreso tra 1 e 126 (I primi otto bit di questo indirizzo saranno: 0*****).
E' rappresentata da indirizzi di tipo: Rete.Host.Host.Host ovvero 8 bit per la identificare la rete (di cui il primo fisso) e 24 per identificare gli host. Permette di ottenere 126 reti formate da 16.774.214 host ciascuna.
Classe B
Il valore del primo ottetto è compreso tra 128 e 191 (I primi otto bit di questo indirizzo saranno: 10*****).
E' rappresentata da indirizzi di tipo: Rete.Rete.Host.Host ovvero 16 bit per la identificare la rete(di cui i primi due fissi) e 16 per identificare gli host. E' possibile ottenere 16.384 reti formate da 65.534 host ciascuna.
Classe C
Il valore del primo ottetto è compreso tra 192 e 223 (I primi otto bit di questo indirizzo saranno: 110*****).
E' rappresentata da indirizzi di tipo: Rete.Rete.Rete.Host ovvero 24 bit per la identificare la rete (di cui i primi tre fissi) e 8 per identificare gli host. E' possibile ottenere 2.097.152 reti con 254 host ciascuna.
Classe D
Il valore del primo ottetto è compreso tra 224 e 239 (I primi otto bit di questo indirizzo saranno: 1110****).
Sono indirizzi di rete riservati ai gruppi multicast e non assegnabili ai singoli host.
Classe E
Il valore del primo ottetto è compreso tra 240 e 255 (I primi otto bit di questo indirizzo saranno: 1111****).
Sono indirizzi riservati per usi futuri.
Dopo aver determinato a quale classe appartiene la nostra subnet, rima di apprestarci a scivere tutti gli indirizzi ip della subnet dobbiamo tenere conto di un'ultima cosa: ci sono indirizzi ip che sono risevati:INDIRIZZI SPECIALI: NETWORK, BROADCAST E LOOPBACK
- Network: quando i bit dell'ottetto che rappresenta l'host hanno tutti valore 0, l'indirizzo è detto di rete o Network Address: 192.168.5.0 oppure in binario 11000000.10101000.00000101.00000000;
- 0.0.0.0: quando tutti i bit hanno valore zero, identificano "questo host";
- Broadcast: quando i bit del numero che rappresenta l'host hanno tutti valore 1, l'indirizzo è detto di broadcast o broadcast address, e rappresenta tutti gli host di quella rete. Inviare un pacchetto all'indirizzo 192.168.5.255 o in forma binaria 11000000.10101000.00000101.11111111 equivale a mandare un pacchetto a tutti gli host della rete 192.168.5;
- Broadcast di rete: abbiamo questo tipo di indirizzo quando tutti i bit, sia della parte relativa all'host sia della parte relativa alla rete hanno valore 1. Inviare un pacchetto a 255.255.255.255 o in binario 11111111.11111111.11111111.11111111 significa inoltrarlo verso tutti gli host della rete corrente;
- Loopback: è utilizzato per funzioni di test del protocollo TCP/IP, non genera traffico di rete e corrisponde all'indirizzo 127.0.0.1;
Subnet Mask
Le subnet mask (Maschere di sottorete)sottorete consentono la suddivisione locale di una rete in sottoreti multiple.
Per quanto riguarda le classi A B C standard, cioè non ulteriormente suddivise, esistono delle subnet di default:
- Classe A: Rete.Host.Host.Host ha come subnet 255.0.0.0;
- Classe B: Rete.Rete.Host.Host ha come subnet 255.255.0.0;
- Classe C: Rete.Rete.Rete.Host ha come subnet 255.255.255.0;
Il processo di messa in AND(and bit a bit)
Qui un po' la cosa si complica, ma basta avere una comunissima calcolatrice scientifica che fa operazioni in binario e siamo a posto
Per determinare se il destinatario dei propri pacchetti si trova sulla propria sottorete ogni host utilizza la propria maschera di sottorete durante un processo chiamato di messa in AND (ANDing process). Questo processo consiste nel confrontare il risultato dell'operazione di AND bit a bit tra il proprio indirizzo e la propria maschera subnet mask con quello tra l'indirizzo del destinatario e la propria subnet mask.
L'and binario(&) funziona così :
Esempio
Prendo un esercizio da un mio vecchio esame di reti
Testo dell'esercizio
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. 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?
Svolgimento
Prima di tutto convertiamo in binario con la nostra calcolatrice i vari byte.
a)NetMask = 255.255.128.196 = - . - . 10000000. 11000100 (l'and bit a bit con 255 (11111111 lascia il byte inalterato, per questo i primi 2 byte non vengono considerati nel processo di anding)
Net(B)=Net(A) ?
IP-A = - . - . 10001100. 00010010
NM = - . - . 10000000. 11000100
Net(A)= IP-A&NM= - . - . 10000000. 00000000
IP-B = - . - . 10110100. 00100100
NM = - . - . 10000000. 11000100
Net(B) = IP-B&NM=- . - . 10000000. 00000100
è Net(B) non è uguale a Net(A).
A e B non appartengono alla stessa sottorete.
Net(C)=Net(A) ?
IP-C = - . - . 00000001. 00100010
NM = - . - . 10000000. 11000100
Net(C) = IP-C&NM=- . - . 00000000. 00000000
è Net(C) non è uguale a Net(A).
A e C non appartengono alla stessa sottorete.
Nel caso in cui avessimo trovato 2 valori uguali per Net, avremmo potuto constatare l'appartenenza dei 2 host alla stessa sottorete.