Passa ai contenuti principali

Indirizzamento IP

Obiettivo di questo articolo, senza pretesa di esaurire l'argomento, è quello di presentare in modo chiaro e comprensibile un argomento alle volte ostico: l'indirizzamento IP. 

Questo, fra l'altro, consentirà di affrontare, anche agli utenti meno esperti, operazioni semplici quali  la configurazione di una scheda di rete con maggiore consapevolezza.



Gli indirizzi IP

Come noto, con IP ci si riferisce ad uno dei protocolli di comunicazione di rete più affermati nel mondo delle telecomunicazioni: Internet Protocol. 

Un indirizzo IP è, in particolare, un codice binario che identifica univocamente un dispositivo di rete (una scheda ethernet, la porta di uno switch o di un router, etc.) all'interno di una rete di computer. 

Di primaria importanza, nell'ambito dell'indirizzamento, è la lunghezza degli indirizzi, ovvero il numero di bit utilizzati per rappresentare un indirizzo di rete. Questo, evidentemente, perché con n bit sarà possibile indirizzare fino a 2n dispositivi differenti. Di conseguenza, maggiore è n, maggiore risulterà essere il numero di dispositivi che sarà possibile referenziare, quindi gestire.

Attualmente, sono impiegate due tipologie di indirizzi: IPv4 di 32 bit, e IPv6 di 128 bit. Entrambi saranno oggetto della presente trattazione. 



Il concetto di rete

Tralasciando qui definizioni più formali, è possibile pensare una rete come un insieme di dispositivi che sfrutta la stessa porta di un router per connettersi ad altra rete: compito dei router in una rete a commutazione di pacchetto, è difatti quello di "instradare" i pacchetti fra reti differenti. La porta in questione viene anche indicata col nome di gateway, a sottolineare la sua funzione di punto di ingresso/uscita dalla sottorete. Di seguito, lo schema logico di alcune reti connesse fra loro e ad Internet attraverso un router. 



Ovviamente, bisogna contemplare anche l'evenienza in cui una rete contenga al proprio interno uno o più router, quindi altre reti. In tal caso si parla di reti e sotto-reti.




Reti ed indirizzi IP

All'interno di un indirizzo IP è, di norma, possibile distinguere due parti:
  • Net_ID (o network o routing prefix o prefisso di rete): identifica la rete di appartenenza del dispositivo che possiede tale indirizzo.
  • Host_ID: indica lo specifico dispositivo all'interno della stessa rete.

secondo lo schema: 


Ip Address: [Net_ID][Host_ID]

Il principio è quello secondo cui elementi di una stessa rete debbono possedere indirizzi dello stesso ceppo, ovvero di uguale prefisso di rete. 

Una rete che adotta indirizzi IP con un numero di bit pari ad n per la parte Host_ID può contenere quindi fino a 2n dispositivi di rete differenti. Data una rete, per convenzione due indirizzi assumono un particolare significato e non possono essere assegnati ad alcun dispositivo: 
  • l'indirizzo della rete; il primo degli indirizzi possibili nella rete, ovvero quello contenente tutti i bit della parte Host_ID pari a 0,
  • l'indirizzo di broadcast: l'ultimo degli indirizzi possibili nella rete, ovvero quello contenente tutti i bit della parte Host_ID posti ad 1.     
Il senso sarà chiaro a breve.


Assegnazione degli indirizzi


In tema di indirizzamento, il requisito fondamentale è, quindi, che non esistano due indirizzi uguali all'interno della stessa rete. 

In Internet, la rete delle reti, proprio al fine di evitare pericolose duplicazioni, gli indirizzi di rete possono essere rilasciati esclusivamente da un'organizzazione internazionale universalmente riconosciuta idonea al compito: l'ICANN (Internet Corporation for Assigned Names and Numbers). L'iassegnazione degli indirizzi all'interno delle singole reti è invece libera, ovvero demandata ai singoli amministratori che, anche attraverso specifici strumenti, avranno cura di evitare la duplicazione di indirizzi locali.

Un indirizzo all'interno di una rete, inoltre, si definisce 
  • statico quando, una volta assegnato, non muta nel tempo 
  • dinamico, vale a dire assegnato nuovo ad ogni connessione (da un apposito server DHCP). 

Esempio tipico di indirizzo statico potrebbe essere quello di un Server il cui indirizzo deve essere ben noto ai suoi client e stabile nel tempo; viceversa l'IP Address del laptop di un dipendente aziendale potrebbe venir assegnato nuovo ogni mattina, quando la persona si connette alla rete. 



Il Classful addressing IPv4 di Internet

Al momento, il sistema di indirizzamento più utilizzato è IPv4. Un indirizzo IPv4 è formato da una sequenza di 32 bit, il che consente di indirizzare univocamente fino a 
232 = 4.294.967.296 dispositivi di rete differenti. 

Pur costituendo in sé dei numeri unici, per comodità di notazione, tale sequenza di bit viene usualmente riportata divisa in 4 gruppi, ciascuno composto di 8 bit (1 byte), separati da un punto, e rappresentati in base 10. Tale rappresentazione è anche nota come dotted notationnotazione decimale puntata

Per fare un esempio, 

192.168.1.3

è un indirizzo IPv4 che deriva da:

11000000.10101000.00000001.00000011

ovvero dalla sequenza binaria: 

11000000101010000000000100000011


La Subnet Mask

Come già accennato, un indirizzo IP è composto da un una parte Net_ID e da una parte Host_ID. Nel caso degli indirizzi IPv4, è convenzione distinguere le due componenti attraverso un particolare codice: la subnet mask o mashera di rete

Dato un indirizzo IP, la maschera di rete indica il numero di bit più significativi che rappresentano il Net_ID. In particolare, detto m il numero di bit che rappresentano il Net_ID, la subnet mask può essere espressa  
  • con notazione CIDR (Classless Inter-Domain Routing): /m,
  • oppure come un indirizzo IP i cui primi m bit siano, però, pari ad 1 e gli altri posti a 0.

Ad esempio, l'espressione

192.168.1.3/24               (11000000.10101000.00000001.00000011)/24


indica un indirizzo IPv4 che ha come Net_ID, i primi 24 bit, ovvero:

Net_ID: 192.168.1            (11000000 10101000 00000001)

   
di conseguenza,

Host_ID: 3                                              (00000011)  


La stessa cosa si sarebbe potuta esprimere come segue:

IP Address:  192.168.1.3      (11000000 10101000 00000001 00000011)

Subnet Mask: 255.255.255.0    (11111111 11111111 11111111 00000011)


In entrambi i casi, l'indicazione per i sistemi di trasporto della rete è che, per recapitare dati al dispositivo di indirizzo 192.168.1.3, è necessario raggiungere la rete di indirizzo 192.168.1.0 e, all'interno di questa, cercare il 3° Host. 

Il complemento della subnet mask è detto wilcard mask


Le classi di indirizzi IPv4

Il sistema di indirizzamento IPv4 usa suddividere gli indirizzi in classi, ed organizza lo spazio di indirizzamento a 32 bit secondo la convenzione sinteticamente riassunta di seguito:


Classe   Net_ID            Host_ID   Indirizzi         Subnet Mask

A        '0'    +  7 bit   24 bit    [0-127].n.h.h     255.0.0.0     (/8)

B        '10'   + 14 bit   16 bit    [128-191].n.h.h   255.255.0.0   (/16)
C        '110'  + 21 bit   8  bit    [192-223].n.n.h   255.255.255.0 (/24)
D        '1110' + 28 bit   0  bit    [224-239].n.n.n   -
E        '1111' + 27 bit   0  bit    [240-255].n.n.n   -

Prendendo in esame ad esempio la classe A, la tabella mostra come questa contenga tutti e soli gli indirizzi con bit più significativo pari a 0. In altri termini, gli indirizzi possibili di classe A spaziano

da 0.0.0.0                    (00000000.00000000.00000000.00000000) 
a  127.255.255.255            (01111111.11111111.11111111.11111111). 

Per tali indirizzi si è inoltre convenuto di impiegare i primi 8 bit come Net_ID ed i rimanenti 24 bit per indicare l'Host_ID, ovvero si è stabilito di usare

Subnet Mask: /8 ovvero 255.0.0.0    (11111111.00000000.00000000.00000000)     

In definitiva, dato un indirizzo IPv4 con bit iniziale pari a 0, sia a.b.c.dè immediato per un elaboratore stabilire che tale indirizzo è di classe A; che di conseguenza la subnet mask da applicare è 255.0.0.0; e che quindi la rete di appartenenza è composta dall'insieme degli indirizzi a.x.y.z dove 0<=x,y,z<=255. 

É facile peraltro calcolare che la classe A può indirizzare 28-1 sottoreti Internet e 224 dispositivi per ogni sottorete. Tenendo conto, tuttavia, che il primo e l'ultimo indirizzo di ogni rete sono riservati, il totale degli indirizzi utili di classe A è pari a 27*(224-2)=2.147.483.392.  

Riflessioni analoghe possono estendersi anche alle classi B (bit iniziali '10', subnet mask /16) e alla classe C (indirizzi che iniziano per '110', ai quali si applica una maschera di rete /24 ). Si arriva, allora, a comprendere che il senso della classificazione IPv4 è quello di poter disporre di reti Internet "per tutte le esigenze": in numero limitato, ma particolarmente capienti (classe A), numerose anche se relativamente poco capienti (classe C), di misura intermedia (classe B).  

Un discorso a parte meritano, invece, le classi D ed E, dal momento che i loro indirizzi si compongono esclusivamente del Net_ID. In effetti, la classe D viene impiegata per trasmissioni multicast (vale a dire verso gruppi specifici di host, tecnica, questa, spesso impiegata per applicazioni di streaming multimediale su Internet), mentre gli indirizzi della classe E sono riservati ad usi sperimentali o futuri.

Se per un elaboratore elettronico è agevole ragionare in binario, quindi applicare i processi logici appena descritti, nel lavoro di tutti i giorni è possibile adottare un metodo più pratico per riconoscere a colpo d'occhio se un indirizzo è di classe A, B, o C (si tralascino per il momento le classi D ed E). La precedente tabella evidenzia difatti che: 
  • gli indirizzi di Classe A presentano il primo ottetto compreso in valore fra 0 e 127; per questi indirizzi, il primo ottetto identifica anche il prefisso di rete, gli altri tre ottetti l'identificativo host    
  • gli indirizzi di Classe B hanno il primo ottetto compreso fra 128 e 191; per questi indirizzi il prefisso di rete è fornito dai primi due ottetti, i rimanenti due ottetti rappresentano l'identificativo host
  • la Classe C raggruppa indirizzi con primo ottetto fra 192 e 223; per questi indirizzi il Net_ID è dato dai primi tre ottetti, l'Host_ID dall'ultimo ottetto.    


Indirizzi riservati: network, broadcast e loopback

Alcuni indirizzi IPv4 vengono definiti riservati, in quanto convenzionalmente utilizzati solo per prestabilite funzioni. Fra questi:
  • Network Address: presenta tutti i bit dell'Host_ID pari a 0, è cioè il primo indirizzo di una rete, e, come visto, tale indirizzo viene utilizzato per indicare la rete stessa.
  • Broadcast Address: è l'ultimo indirizzo di una rete, vale a dire quello con tutti i bit della parte Host_ID posti ad 1. Un simile indirizzo viene utilizzato per indirizzare tutti gli host della rete. Di fatto, inviando un pacchetto a questo indirizzo, il pacchetto viene trasmesso contemporaneamente a tutti i dispositivi della rete. 
  • Network Broadcast Address: tutti i bit, sia del Net_ID sia dell'Host_ID, assumono valore 1. Inviare un pacchetto a 255.255.255.255 (11111111.11111111.11111111.11111111) equivale ad inoltrarlo a tutti gli host dell'intera rete.
  • Loopback Address: è rappresentato dall'indirizzo 127.0.0.1. L'indirizzo di loopback indica il dispositivo stesso, pertanto non genera traffico di rete e viene utilizzato prioritariamente per funzioni di verifica (un ping all'indirizzo di loopback è, ad esempio, il primo test che normalmente viene condotto su un pc che non comunica in rete, per stabilire se la scheda di rete sta funzionando correttamente).


Gli indirizzi privati ed il NAT

Oltre agli indirizzi riservati, esistono degli indirizzi, detti privati per distinguerli dagli usuali indirizzi pubblici, che non possono venire utilizzati in Internet, in quanto riservati a reti private. Si tratta degli indirizzi:

da 10.0.0.0    a 10.255.255.255
da 172.16.0.0  a 172.31.255.255
da 192.168.1.1 a 192.168.255.255

L'idea di utilizzare indirizzi privati nasce dall'esigenza di limitare l'uso di indirizzi IPv4 pubblici oramai in via di esaurimento a causa dell'altissimo numero di dispositivi quotidianamente connessi ad Internet.

Gli indirizzi privati possono essere utilizzati da chiunque, purché all'interno di una propria rete locale privata. Situazione tipica di impiego di indirizzi privati è, ad esempio, quella domestica.      

É, tuttavia, necessario chiarire un aspetto importante: cosa succede, difatti, quando, come nel caso appena citato dell'utenza domestica, due pc di due abitazioni (quindi reti locali) distinte si trovano ad avere identico indirizzo IP nello stesso istante? Sicuramente la cosa non comporterebbe problemi di duplicazione degli indirizzi se le due reti fossero isolate. Ma così non è, dal momento che entrambi le reti avranno, come minimo, accesso ad Internet.

La soluzione, in questi casi è offerta dal NAT (Network Address Translation, tecnica implementabile tramite router) in grado di multiplare più indirizzi IP privati su un solo indirizzo IP pubblico, quello della porta del router verso Internet appunto, visibile all'esterno della rete. 


La figura seguente illustra la situazione domestica di cui sopra, nella quale il router, che implementa il NAT, serve una piccola rete privata. Si osservi in particolare come il router sia visibile all'esterno con un indirizzo pubblico e all'interno con un indirizzo privato. La rete Internet, jn particolare, non vedrà i singoli indirizzi privati, ma solamente l'indirizzo pubblico del router. Sarà lo stesso router, tramite NAT, a farsi carico di gestire i messaggi da/verso pc/Internet. 




Subnetting

Quella del subnetting è una tecnica studiata per superare i limiti imposti dalle classi di indirizzi A, B e C.

Si pensi, difatti, al caso di un'impresa alla quale sia stato assegnato un certo insieme di indirizzi pubblici. Per quanto detto fino ad ora, tali indirizzi, indipendentemente dalla classe di appartenenza, avranno tutti lo stesso Net_ID, ovvero saranno concepiti per appartenere tutti alla stessa rete. È tuttavia realistico supporre che l'impresa sia organizzata al proprio interno con più reti, probabilmente ciascuna dedicata ad una diversa attività aziendale. 

Si pone quindi la necessità di suddividere gli indirizzi disponibili in più gruppi, in modo tale che sia possibile assegnare ciascun gruppo ad una differente rete di divisione aziendale. 

A titolo di esempio, si immagini che alla azienda sia stato assegnato il seguente insieme di indirizzi pubblici IPv4 di classe B.

Network Address: 136.197.0.0/16      (10001000.11000101.00000000.00000000)

L'azienda disporrà quindi di 216 indirizzi: 

da 136.197.0.0                     (10001000.11000101.00000000.00000000)
a  136.197.255.255                 (10001000.11000101.11111111.11111111)

essendo 32-16=16 i bit dell'Host_ID.

L'idea del subnetting è semplicemente quella di utilizzare parte di questi 16 bit per frazionare opportunamente l'insieme di indirizzi dati.

In effetti, è immediato rendersi conto che, "prestando" al Net_ID un bit dell'Host_ID, è possibile suddividere lo spazio di indirizzamento nei seguenti due gruppi di indirizziciascuno composto da 215 indirizzi :    

da 136.197.0.0/17                  (10001000.11000101.0-0000000.00000000)
a  136.197.127.255/17              (10001000.11000101.0-1111111.11111111)

da 136.197.128.0/17                (10001000.11000101.1-0000000.00000000)
a  136.197.255.255/17              (10001000.11000101.1-1111111.11111111)

Analogamente, si sarebbe potuto pensare di utilizzare i due bit più significativi, anziché uno solo, della parte host. Si sarebbero così ottenuti i 4 gruppi seguenti, (ciascuno di 214 indirizzi):

da 136.197.0.0/18                  (10001000.11000101.00-000000.00000000)
a  136.197.63.255/18               (10001000.11000101.00-111111.11111111)
    
da 136.197.64.0/18                 (10001000.11000101.01-000000.00000000)
a  136.197.127.255/18              (10001000.11000101.01-111111.11111111)

da 136.197.128.0/18                (10001000.11000101.10-000000.00000000)

a  136.197.191.255/18              (10001000.11000101.10-111111.11111111)

da 136.197.192.0/18                (10001000.11000101.11-000000.00000000)

a  136.197.255.255/18              (10001000.11000101.11-111111.11111111)


Il calcolo può ripetersi includendo altri bit della parte Host e ricavando sempre più gruppi di indirizzi, anche se di capacità decrescente. 

In generale, dato uno spazio di indirizzamento composto di indirizzi aventi Host_ID formato da n bit, cedendo k bit della parte Host_ID alla parte Net_ID, si divide lo spazio di indirizzamento in 2k sottospazi uguali, ciascuno composto da 2n-k indirizzi.

Di seguito uno schema riepilogativo delle possibili subnet mask :


SUBNET MASKs

/8  = 255.00000000.0.0 = 255.0.0.0
/9  = 255.10000000.0.0 = 255.128.0.0
/10 = 255.11000000.0.0 = 255.192.0.0
/11 = 255.11100000.0.0 = 255.224.0.0
/12 = 255.11110000.0.0 = 255.240.0.0
/13 = 255.11111000.0.0 = 255.248.0.0
/14 = 255.11111100.0.0 = 255.252.0.0

/16 = 255.255.00000000.0 = 255.255.0.0
/17 = 255.255.10000000.0 = 255.255.128.0
/18 = 255.255.11000000.0 = 255.255.192.0
/19 = 255.255.11100000.0 = 255.255.224.0
/20 = 255.255.11110000.0 = 255.255.240.0
/21 = 255.255.11111000.0 = 255.255.248.0
/22 = 255.255.11111100.0 = 255.255.252.0

/24 = 255.255.255.00000000 = 255.255.255.0
/25 = 255.255.255.10000000 = 255.255.255.128
/26 = 255.255.255.11000000 = 255.255.255.192
/27 = 255.255.255.11100000 = 255.255.255.224
/28 = 255.255.255.11110000 = 255.255.255.240
/29 = 255.255.255.11111000 = 255.255.255.248
/30 = 255.255.255.11111100 = 255.255.255.252


di conseguenza, delle reti derivanti dal subnetting con i rispettivi range di indirizzi


SUBNETTING NETWORKs 

/8  => Net: n1.[0.0.0-255.255.255]
/9  => Net: n1.[0.0.0-127.255.255][128.0.0-255.255.255]
/10 => Net: n1.[0.0.0-63.255.255]...[192.0.0-255.255.255]
/11 => Net: n1.[0.0.0-31.255.255]...[224.0.0-255.255.255]
/12 => Net: n1.[0.0.0-15.255.255]...[240.0.0-255.255.255]
/13 => Net: n1.[0.0.0-7.255.255]....[248.0.0-255.255.255]
/14 => Net: n1.[0.0.0-3.255.255]....[252.0.0-255.255.255]

/16 => Net: n1.n2.[0.0-255.255]
/17 => Net: n1.n2.[0.0-127.255][128.0-255.255]
/18 => Net: n1.n2.[0.0-63.255][64.0-127.255][128.0-191.255][192.0-255.255]
/19 => Net: n1.n2.[0.0-31.255][32.0-63.255]...[192.0-223.255][224.0-255.255]
/20 => Net: n1.n2.[0.0-15.255][16.0-31.255]...[224.0-239.255][240.0-255.255]
/21 => Net: n1.n2.[0.0-7.255][8.0-15.255].....[240.0-247.255][248.0-255.255]
/22 => Net: n1.n2.[0.0-3.255][4.0-7.255]......[248.0-251.255][252.0-255.255]

/24 => Net: n1.n2.n3.[0-255]

/25 => Net: n1.n2.n3.[0-127][128-255]
/26 => Net: n1.n2.n3.[0-63][64-127][128-191][192-255]
/27 => Net: n1.n2.n3.[0-31][32-63]...[192-223][224-255]
/28 => Net: n1.n2.n3.[0-15][16-31]...[224-239][240-255]
/29 => Net: n1.n2.n3.[0-7][8-15].....[240-247][248-255]
/30 => Net: n1.n2.n3.[0-3][4-7]......[248-251][252-255]



Come ulteriore esempio, si consideri l'indirizzo

IP Address:  192.168.10.13
Subnet Mask: 255.255.255.252 

Ci si rende conto subito che l'indirizzo appartiene ad una rete che in origine doveva essere di classe C (valore del primo ottetto pari a 192) e che è stata sottoposta a subnetting (subnet mask /30). 

La rete originaria 192.168.10.0/24 di classe C alla quale è stato applicato subnetting con sbnet mask /30, ha, quindi, diviso gli originari 256 (192.168.10.[0-255]) indirizzi disponibili in 26=64 gruppi, composti  ciascuno di 22=4 indirizzi, come segue:

192.168.10.[0-3], [4-7], [8-11], [12-15] .... [252-255]        

Se ne ricava che l'indirizzo 192.168.10.13/30 è il primo indirizzo utile della 4^ rete generata dal subnetting, ovvero quella di indirizzo: 

192.168.10.12/30




VLSM (Variable Length Subnet Mask)

Dunque la tecnica del subnetting consente di superare le limitazioni di spazio imposte dalla classificazione IPv4, suddividendo lo spazio di indirizzamento di una rete in parti uguali. 

Il problema nasce, tuttavia, quando, per ragioni di ottimizzazione, venga richiesta una suddivisione disomogenea dello spazio di indirizzamento. Si riprenda quindi il caso dell'impresa alla quale sia stato assegnata una rete di indirizzi pubblici di classe B - sia questa volta Network Address: 131.10.0.0/16 - e che, per proprie necessità, abbia richiesto la creazione di sottoreti di 60, 13, 13 indirizzi rispettivamente.

Lo spazio di indirizzamento include gli indirizzi

da 131.10.0.0                    (10000011.00001010.00000000.00000000)
a  131.10.255.255                (10000011.00001010.11111111.11111111)   

Ora, per formare 60 indirizzi, sono sufficienti 6 bit (26=64). Riservando quindi 6 bit per la parte host e cedendo 10 bit alla parte di rete, è possibile suddividere la spazio di indirizzamento in sottoreti di dimensione 64. In particolare si può creare la sottorete 

Subnet1 Address: 131.10.0.0/26   (10000011.00001010.00000000.00-000000)

che raccoglie i primi 64 indirizzi disponibili: 

da 131.10.0.0                    (10000011.00001010.00000000.00-000000)
a  131.10.0.63                   (10000011.00001010.00000000.00-111111)   

e che esaudisce la prima richiesta (anche se con una ridondanza di 4 indirizzi).

Per formare sottoreti di 13 indirizzi sono poi necessari 4 bit (24=16). Di qui l'idea di suddividere lo spazio di indirizzi rimanenti in gruppi da 16 e prenderne i primi 2 come richiesto per formare le successive 2 sottoreti. Cedendo 12 bit alla parte Net_ID e riservando 4 bit alla parte Host_ID, si ottiene una subnet mask pari a /28. Fra le sottoreti che una tale subnet mask genera, si potrà, inoltre, prendere quella che inizia subito dopo la fine della rete già formata, ovvero:

Subnet2 Address: 131.10.0.64/28   (10000011.00001010.00000000.0100-0000)

che racchiude al suo interno gli indirizzi 

da 131.10.0.64                    (
10000011.00001010.00000000.0100-0000)
a  131.10.0.79                    (10000011.00001010.00000000.0100-1111)   

e che può costituire la risposta alla seconda richiesta.

L'ultima rete dovrà essere, per via di ragionamenti analoghi, quella successiva alla precedente, ovvero

Subnet3 Address: 131.10.0.80/28   (10000011.00001010.00000000.0101-0000)

che include gli indirizzi

da 131.10.0.80                    (
10000011.00001010.00000000.0101-0000)
a  131.10.0.95                    (10000011.00001010.00000000.0101-1111)   

A seconda delle esigenze, sarebbe possibile procedere nella formazione di sottoreti fin quando rimangono indirizzi disponibili.

Una simile tecnica prende il nome di VLSM o Variable Length Subnet Mask.


Supernetting e Route Summarization 

Se il Subnetting ed il VLSM dividono uno spazio di indirizzamento in più parti, il Supernetting ha l'obiettivo di accorpare gruppi di indirizzi. 


La situazione tipica è quella di un router che instradi, sulla stessa porta, pacchetti diretti a reti differenti ma contigue. Senza scendere nei particolari della configurazione di una routing table, è comunque intuitivo immaginare che all'interno di quest'ultima siano presenti direttive di instradamento dei pacchetti del tipo 

per raggiungere gli indirizzi della rete LAN1, è necessario uscire dalla porta P1; 
- per raggiungere gli indirizzi della rete LAN2, è necessario uscire dalla porta P2; 
- etc.     

Sia data dunque una situazione del tipo:


per raggiungere gli indirizzi della rete 192.168.51.0/24 uscire dalla porta s0/0/0; 
- per raggiungere gli indirizzi della rete 192.168.52.0/24 uscire dalla porta s0/0/0

in altri termini, la porta s0/0/0 del router è la direzione per entrambe le destinazioni, ovvero le reti:

192.168.51.0 = 11000000.10101000.0011-0011.00000000
192.168.52.0 = 11000000.10101000.0011-0100.00000000

Se la cosa non crea in alcun modo ambiguità, si potrebbe pensare di accorpare le due direttive nell'unica: 

per raggiungere gli indirizzi della rete 

11000000.10101000.00110000.00000000 = 192.168.48.0/20

uscire dalla porta s0/0/0.

Un'operazione di questo genere ha lo scopo di alleggerire il carico di lavoro della CPU del router, riducendo sensibilmente il numero di confronti nell'unità di tempo, ed è esattamente quello che alcuni protocolli di routing, attraverso appositi algoritmi, implementano automaticamente. 

La rete 192.168.48.0/20 prende allora il nome di Major Network (come si sarà intuito, in generale la Major Network è la rete che accorpa in sé gli indirizzi delle reti che la hanno generata), mentre un simile operazione prende anche il nome di Route Summarization



La Wilcard Mask

Se la network mask ha la funzione di specificare la rete di appartenenza di un indirizzo IPv4, la Wilcard Mask è stata introdotta per specificare gruppi di indirizzi host all'interno di una rete.  

La wilcard mask ha il formato di un indirizzo IPv4 e viene espressa in notazione decimale puntata, essendo anch'essa costituita da 4 ottetti binari. 

Dato l'indirizzo IPv4, la Wilcard Mask è in grado di specificare un intervallo di indirizzi seguendo il seguente criterio: 

  • i bit dell'indirizzo IP corrispondenti in posizione ai bit pari a 0 della Wilcard Mask devono rimanere fissi in valore;  
  • i bit dell'indirizzo IP corrispondenti in posizione ai bit pari ad 1 della Wilcard Mask possono mutare valore.

In altri termini, gli "1" hanno la funzione di caratteri jolly (da cui il nome "wilcard").

Così, ad esempio, dati 

IP Address:   192.168.1.1 = 11000000.10101000.00000001.00000001
Wilcard Mask: 0.0.0.0     = 00000000.00000000.00000000.00000000

il risultato sarà l'IP address di partenza dal momento che i bit della Wilcard Mask, tutti indistintamente pari a 0, impongono che tutti i bit dell'IP Address non varino valore.

All'opposto è la situazione in cui 

IP Address:   192.168.1.1     = 11000000.10101000.00000001.00000001
Wilcard Mask: 255.255.255.255 = 11111111.11111111.11111111.11111111

In questo caso il risultato è la rete 0.0.0.0, ovvero l'intero spazio di indirizzamento IPv4, dal momento che i bit della Wilcard Mask, tutti indistintamente pari ad 1, consentono di cambiare il valore dei bit dell'indirizzo IP liberamente.

Fra i due estremi, potrebbe, invece, aversi:

IP Address:   192.168.1.1 = 11000000.10101000.00000001.00000001
Wilcard Mask: 0.0.0.255   = 00000000.00000000.00000000.11111111

nel qual caso, il risultato è dato da tutti gli indirizzi della rete

Network Address: 192.168.1.0/24 

ovvero gli indirizzi: 

da 192.168.1.0 
a  192.168.1.255

dal momento che i primi tre ottetti dell'indirizzo IP devono rimanere fissi, mentre i biti dell'ultimo ottetto possono variare a piacimento.

Si consideri ora la seguente combinazione:

IP Address:   192.168.16.0 = 11000000.10101000.00010000.00000000
Wilcard Mask: 0.0.15.255   = 00000000.00000000.00001111.11111111

I primi due ottetti dell'IP Address devono rimanere tali, e così anche i primi 4 bit del 3° ottetto; i rimanenti bit dell'IP Address possono assumere qualunque valore fra 0 e 1. Questo significa che il risultato sarà dato da tutti gli indirizzi IP del tipo

11000000.10101000.0001XXXX.XXXXXXXX     (X=0,1)

ovvero dal range di indirizzi

da 11000000.10101000.00010000.00000000 = 192.168.16.0
a  11000000.10101000.00011111.11111111 = 192.168.31.255


Dal punto di vista pratico, data una subnet mask, per calcolare la corrispondente wilcard mask, è sufficiente sottrarre ciascun ottetto a 255. 

Ad esempio, 

  • la wilcard mask corrispondente alla subnet mask 255.255.255.0=/24 è evidentemente 0.0.0.255
  • la wilcard mask corrispondente alla subnet mask 255.255.255.252=/30 è 0.0.0.3 come è facile verificare
  • la wilcard mask corrispondente alla subnet mask 255.255.255.240=/28 è 0.0.0.15




IPv6

Per quanto non facilmente prevedibile in origine, a causa della rapidissima crescita neglli ultimi anni dei dispositivi in grado di connettersi alla rete, gli indirizzi IPv4 sono oramai prossimi all'esaurimento. Questa è la principale ragione per cui si è deciso di introdurre un nuovo tipo di indirizzamento, questa volta di lunghezza 128 bit, che quindi, consenta di indirizzare fino a 2^128 = 3,40*e38 dispositivi differenti

Per collocare temporalmente gli eventi, i primi indirizzi IPv6 furono assegnati nel 2004, anche se il protocollo IPv4 verrà mantenuto in vita fino al 2025, per consentire un adeguato passaggio.

In modo analogo a quanto avviene per gli indirizzi IPv4, gli indirizzi IPv6 vengono rappresentati in forma di 8 gruppi, ciascuno di 16 bit (1 word), separati dal simbolo ":", e rappresentati in base 16.

Ad esempio, 

IP Address: 2001:0db8:0000:0000:0000:0000:1428:57ab

è un esempio di indirizzo IPV6.

Per rappresentare un indirizzo IPv6 sono state convenute particolari modalità:
  • possono essere omessi gli zeri iniziali in ciascun gruppo;
  • un gruppo formato di soli zeri può essere rappresentato con un singolo zero;
  • due gruppi adiacenti formati di soli zeri possono essere rappresentati con la stringa di caratteri "::" purché nello stesso numero sia presente una sola di tali stringhe (viceversa sarebbe difficile ricostruire il numero originario);
  • gli ultimi 32 bit possono essere scritti nella notazione nella notazione decimale puntata (ovviamente per mantenere la retro-compatibilità col sistema IPv4); 

Riprendendo l'esempio precedente, lo stesso indirizzo si sarebbe potuto scrivere, ad esempio, come:

IP Address: 2001:db8:0000:0000:0000:0000:1428:57ab
IP Address: 2001:db8:0:0:0:0:1428:57ab
IP Address: 2001:db8:0::0:1428:57ab
IP Address2001:db8:0::0:20.40.87.171
     
Come per IPv4, anche IPv6 prevede reti, e prefissi di rete di lunghezza variabile. Tuttavia, in IPv6, il Net_ID non è maggiore di 64 bit. Questo consente di disporre di almeno 124-64=64 bit per indirizzare minimo 1,84*e19 dispositivi differenti all'interno della stessa rete (anche quella di un'abitazione domestica).

Tuttavia, IPv6 non supporta il broadcast, ma solo il multicast, l'unicast e l'anycast. Un indirizzo di tipo anycast, in particolare, è un indirizzo IP che può corrispondere a più di un host sulla rete: quando un pacchetto viene inviato ad un indirizzo anycast, la rete lo consegnerà ad uno qualsiasi tra quelli associati all'indirizzo, tipicamente ad "one-to-nearest" (il più "vicino" o il "migliore").

Anche in IPv6 alcuni indirizzi sono riservati. Di seguito i principali


::1
 Loopback addr.
Corrisponde all'indirizzo 127.0.0.1 di IPv4. É l'indirizzo associato al dispositivo di rete che replica come un'eco tutti i pacchetti inviatigli.

FE80::/10
 Link-Local addr.
Prefisso indicante che l'indirizzo è valido solo sullo specifico link fisico

FEC0::/10
 Site-Local addr.
Prefisso indicante che l'indirizzo è valido solo all'interno dell'organizzazione locale

2000::/3
 Global addr.



FF00::/8
 Multicas addr.
Utilizzato per indirizzi multicast


Ma IPv6 introduce ad interessanti sviluppi soprattutto dal punto di vista tecnologico: oltre ad aumentare sensibilmente lo spazio di indirizzamento, IPv6 consentirà il plug and play dei dispositivi connessi, vale a dire che con Ipv6 è tecnologicamente possibile connettere un dispositivo in rete perché questo si auto-configuri senza necessità dell'intervento umano.

Per quanto riguarda la migrazione da IPv4 ad IPv6 sono state prese in considerazione diverse soluzioni. Fra le principali,

  • Tunneling fra isole IPv6: al momento la tecnica più utilizzata, prevede un collegamento point-to-point IPv4 (il tunnel) tra due host IPv6 (le isole). I pacchetti IPv6 vengono incapsulati dall'host sorgente in pacchetti IPv4, inviati nel tunnel e, una volta giunti a destinazione, de-incapsulati dall'host di destinazione.
  • Dual Stack: prevede l'utilizzo di un doppio stack IP all'interno degli host interessati. Questo consente l'interpretazione di entrambe le versioni del protocollo IP, rendendo possibile smistare ai livelli superiori il contenuto del pacchetto senza che questi necessariamente sappiano da quale protocollo IP derivi.
  • Network Address Translator - Protocol Translator (NAT-PT): Il NAT-PT è un sistema che sfrutta i concetti introdotti dalla tecnologia dei NAT. Infatti esso opera una conversione dell'indirizzo IPv6 in indirizzo IPv4 e viceversa secondo le tecniche di un NAT IPv4, permettendo in questo modo a due reti con protocolli IP diversi di poter comunicare tra di loro.



Commenti

Post popolari in questo blog

Introduzione alle reti 3 - Switch tecnologies

In questa sezione verranno esaminate le Virtual LAN, prima espressione della tecnologia LAN Switching.    Virtual Local Area Network (VLAN) Come già detto, uno dei punti di forza di uno switch risiede nella possibilità di creare sotto-reti a basso costo. Le VLAN ( Virtual Local Area Network ) , in particolare,  rappresentano la risposta a quelle situazioni nelle quali, pur non disponendo di grandi risorse, si renda comunque necessario tener distinti due o più ambiti della stessa rete, o, come è usuale dire, suddividere in più parti un dominio di broadcast.  L'esempio tipico è quello di una (piccola) impresa che abbia necessità di tener separati sulla rete i propri device in base alle attività produttive. La rete potrebbe allora pensarsi composta di tante VLAN quante sono le attività aziendali, ciascuna VLAN potendo contenere al proprio interno l'hw destinato ad ogni specifica attività. Dal punto di vista sistemistico, una  VLAN  è costituita da un sottoinsiem

Switch Commands - istruzioni Cisco HP Extreme "in a nutshell"