Introduzione alle reti – Capitolo 2

Introduzione alle reti – Capitolo 2

Rischio sniffing e instradamento aleatorio

Con l’instradamento aleatorio potemmo perciò incappare nel rischio di subire uno SNIFFING, ovvero il pacchetto potrebbe transitare per una rete in cui c’è un dispositivo in grado di ricopiare il contenuto dei pacchetti prima di instradarli verso il GATEWAY.

Il rischio sniffing fortunatamente è molto basso poiché il messaggio viene suddiviso in tanti pacchetti ed è praticamente impossibile che tutti i pacchetti facciano la stessa strada e passino per la stessa classe in cui è presente uno SNIFFER. Perciò in questo caso lo sniffer si troverebbe un messaggio del tutto incompleto ed inutile.

Per questo motivo inoltre i pacchetti vengono numerati, perché percorrendo strade diverse potrebbero arrivare in modo disordinato.

Per diminuire il rischio di SNIFFING è anche possibile optare per la criptografia dei dati. Ovvero i dati verranno trasmessi utilizzando un codice comprensibile soltanto a mittente e destinatario, in questo modo anche se uno sniffer riuscisse a recuparare tutti i pacchetti, non riuscirebbe mai a decodificare il messaggio.

Problemi di trasmissione

Ipotizziamo di scaricare un film di alta definizione da 7 GByte. Durante il download un errore di trasmissione derivato da un disturbo o da un fenomeno parassita altera il messaggio. Se la trasmissione non fosse a pacchetti sarei costretto a ripartire dall’inizio con il download, mentre nel caso di trasmissione a pacchetti l’unica cosa che il mio sistema dovrà fare sarà richiedere al mittente quel singolo pacchetto alterato.

Classe + Router + Instradamento Aleatorio + Trasmissione a pacchetti  : Hanno rivoluzionato in maniera significativa il nostro modo di vivere e comunicare, il sistema attraverso il quale approcciamo alla cultura ed al sapere del nostro tempo.

SubNet Mask

Per comodità sin ora abbiamo ipotizzato che una classe ( ovvero il numero di macchine con cui possiamo dialogare senza dover passare per un router ) sia rappresentata dalle prime 3 triplette di un indirizzo Ip.

In realtà non è sempre così, infatti tutto dipende da un altro parametro chiamato subnet Mask. Di solito troviamo la subnet mask nella forma : 255.255.255.0 in questa modalità infatti il concetto di classe a tre triplette è rispettato, ma nel caso venisse modificato qualche valore della NetMask la dimensione della classe potrebbe venire variata.

Per capire come funziona la net mask occorre fare una rapida digressione passando per il sistema binario.

Ipotizziamo che la netmask sia un filtro che lascia dialogare tra loro soltanto determinati indirizzi ip ed ipotizziamo che questo filtro funzioni come un rubinetto che può essere APERTO o CHIUSO.

APERTO = 0 logico
CHIUSO = 1 logico

Se scomponessimo in binario il numero decimale 255 otterremmo il valore ( 11111111 ) questo significa che tutte i rubinetti del numero sono chiusi.

192.168.000.001
255.255.255.000

Infatti questo indirizzo ip ha le prime tre triplette chiuse questo significa che non può parlare con indirizzi che abbiamo valori differenti, mentre l’ultima tripletta è completamente aperta. Questo significa che può parlare con tutte le 256 combinazioni dell’ultima tripletta.

Ipotizzando invece di chiudere tutti i rubinetti, succederebbe questo :

192.168.000.001
255.255.255.255

Questa macchina potrebbe parlare solo con se stessa poiché tutte e quattro le triplette risultano congelate.

Questo significa che è possibile allargare o restringere la dimensione di una classe sulla base delle necessità del tecnico di rete. Ad esempio una classe 255.255.000.000 risulta grande 65.536 elementi poichè :

192.168.000.001
255.255.000.000

La penultima e l’ultima tripletta sono completamente aperte ed ognuna può accettare 256 combinazioni : 256*256 = 65536

Questa rete infatti è composta da 65536 macchine che possono dialogare tra loro senza bisogno di passare per un router.

A questo punto se prendessimo il valore 252 e lo scomponessimo in binario otterremmo ad esempio un valore di questo tipo ( 11111100 ) questo significa che solo gli ultimi 2 bit sono aperti.

Con due bit è possibile creare 4 combinazioni 🙁 00 , 01 , 10 , 11 ) perciò in questo caso:

192.168.000.001
255.255.255.252

Questo la macchina con questo indirizzo ip potrà parlare soltanto con altre 3 macchine senza dover passare per un router. Le macchine che potranno dialogare tra loro saranno:

192.168.000.000
192.168.000.001
192.168.000.002
192.168.000.003

nel caso infatti esista una macchina 192.168.0.4 con net mask : 255.255.255.252 essa potrà parlare con altre tre macchine del suo gruppo, in questo caso :

192.168.000.004
192.168.000.005
192.168.000.006
192.168.000.007

Questo significa che posso tranquillamente suddividere una rete in tante sotto-classi che parlano tra di loro, inoltre posso decidere la dimensione di queste sotto-classi.

Questo può servire per fare sicurezza, oppure per dividere vari uffici che non possono dialogare tra loro, oppure creare delle regole particolareggiate all’interno della rete che devo gestire.

Ritornando al concetto di scomposizione binaria, questo significa che cìper allargare la classe posso soltanto aggiungere in coda degli 0 che allargano il numero di combinazioni possibili. Ad esempio :

11111111 = 255 = numero di combinazioni 1
11111110 = 254 = numero di combinazioni 2
11111100 = 252 = numero di combinazioni 4
11111000 = 248 = numero di combinazioni 8
11110000 = 240 = numero di combinazioni 16
11100000 = 224 = numero di combinazioni 32
11000000 = 192 = numero di combinazioni 64
10000000 = 128 = numero di combinazioni 128
00000000 = 000 = numero di combinazioni 256

Infatti la net mak a 255 permette alla macchina di parlare solo con se stessa perciò una sola combinazione, la 252 come abbiamo visto garantisce 4 combinazioni e come nell’esempio iniziale la 000 apre interamente la tripletta offrendo 256 combinazioni.

Per facilitare il calcolo senza passare per la scomposizione binaria esiste un metodo davvero semplice, infatti basta prendere il valore di macchine che devono parlare tra loro e sottrarlo a 256. Le macchine ovviamente devono essere sempre 2^x. Ovvero se devo creare una rete in cui dialogano tra loro 10 elementi, dovrò scegliere una classe in grado di offrire 16 combinazione : 2^4 = 16

Infatti se voglio una classe di 8 elementi basta fare: 256 – 8 = 248

192.168.000.001
255.255.255.248

La dimostrazione è semplice : 248 in binario è 11111000 questo significa che ho 3 bit aperti. Con tre bit posso creare 8 combinazioni ( 000 , 001, 010 , 011, 100, 101, 110 , 111 ) da qui le otto macchine che possono parlare tra loro. Infatti :

11111111 = 255 = numero di combinazioni 1 –> 255 = 256 – 1
11111110 = 254 = numero di combinazioni 2 –> 254 = 256 – 2
11111100 = 252 = numero di combinazioni 4 –> 252 = 256 – 4
11111000 = 248 = numero di combinazioni 8 –> 248 = 256 – 8
11110000 = 240 = numero di combinazioni 16 –> 240 = 256 – 16
11100000 = 224 = numero di combinazioni 32 –> 224 = 256 – 32
11000000 = 192 = numero di combinazioni 64 –> 192 = 256 – 64
10000000 = 128 = numero di combinazioni 128 –> 128 = 256 – 128
00000000 = 000 = numero di combinazioni 256 –> 0 = 256 – 256

Nessuno ci vieta di allargare la netmask al di fuori di una singola tripletta. Ad esempio una nel mask di questo tipo :

192.168.000.001
255.255.254.000

Offre una classe grande 512 elementi, in quanto l’ultima tripletta ha aperte 256 combinazioni e la penultima ne ha aperte 2. Da qui 256 * 2 = 512

Grazie a questa dissertazione si può capire che una classe può avere dimensioni variabili sulla base dell’esigenza del singolo utente e che ogni tecnico di rete può, sulla base delle singole esigenze, decidere di modificare l’architettura generale di una rete creando isole di macchine che dialogano soltanto tra loro.

Come esercizio si potrebbe provare a creare reti da 1024 elementi, oppure ipotizzare d’avere 2000 computer che devono parlare tra loro.

Inoltre non va trascurata la logica con cui gli indirizzi ip devono essere stabiliti all’interno di reti che possiedono net-mask differenti. In questo caso occorre riservare in seguito una trattazione più approfondita.