Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduzione
Una rete scalabile, richiede uno schema di indirizzamento che gli consenta di espandersi.
Tuttavia la crescita incontrollata dell'infrastruttura di rete può avere forti ripercussioni sulla
sua funzionalità e affidabilità. Man mano che nuovi nodi vengono aggiunti all'infrastruttura
esistente, può essere necessario riassegnare gli indirizzi esistenti. Tabelle di
instradamento eccessivamente ampie, possono rallentare il funzionamento dei router,
soprattutto di quelli più datati. Può, più semplicemente capitare che gli indirizzi disponibili
si esauriscano. Tutte questi problemi possono essere evitati pianificando e sviluppando
attentamente uno schema di indirizzamento efficiente e scalabile
Mentre in passato per l'implementazione di una rete era possibile scegliere tra differenti
protocolli e schemi di indirizzamento, oggi tutte queste tecnologie sono praticamente
scomparse per via dell'adozione universale dei protocolli non-proprietari TCP/IP che
stanno alla base del funzionamento di Internet. Ciò significa che praticamente in ogni rete
è necessario sviluppare uno schema di indirizzamento IP. Sebbene sia rarissimo, è ancora
possibile che in alcune infrastrutture di rete molto datate possano essere utilizzati
protocolli e rispettivi schemi di indirizzamento proprietari come quelli sviluppati da Novel e
Apple, anche se recentemente tali compagnie hanno deciso di adottare quelli TCP/IP
abbandonando lo sviluppo dei rispettivi protocolli proprietari.
I protocolli TCP/IP vennero introdotti nel 1980. In particolare il protocollo IP utilizzava uno
schema di indirizzamento gerarchico a due livelli, all'epoca tale schema offriva un livello
adeguato di scalabilità. L'intera lunghezza dell'indirizzo, 32 bit, veniva divisa in due parti, la
prima identificava la rete il secondo l'host di quella rete.
L'indirizzo IP completo identifica univocamente tutti gli host collegati alla rete Internet, e
consente a questi di comunicare tra di loro. I dispositivi come i router utilizzano la porzione
dell'indirizzo IP che identifica la rete per decidere dove instradare il pacchetto e facilitare la
comunicazione tra gli host che si trovano su reti differenti.
Dal punto di vista umano è molto scomodo gestire numeri binari, proprio per questo, viene
adottata la notazione decimale puntata per rappresentare i 32 bit degli indirizzi IP.
Praticamente i 32 bit vengono divisi in quattro gruppi composti da otto bit ciascuno , tali
gruppi vengono chiamati ottetti. Ogni ottetto viene quindi rappresentato in decimale e
diviso dagli altri utilizzando un punto.
10101100000111101000000000010001
I quattro numeri decimali ottenuti vengono infine separati con un punto, scritti cioè in notazione
decimale puntata:
172.30.128.17
Ma come fare a stabilire quale di questi quattro gruppi rappresenta l'indirizzo della rete e
quale l'indirizzo dell'host? Per esempio nell'indirizzo 172.30.128.17, qual'è l'indirizzo di rete
e quale quello dell'host? La risposta a questa domanda non semplice utilizzando la
rappresentazione decimale puntata.
La prima implementazione dell'indirizzamento IP, per definire ciò che doveva essere
l'indirizzo di rete e ciò che invece doveva essere l'indirizzo dell'host ,utilizzava un sistema
detto a classi. Gli indirizzi IP venivano in pratica suddivisi in cinque classi distinte, in base
al valore dei primi bit dell'indirizzo stesso. Sebbene tale sistema possa essere ancora
applicato, in generale i dispositivi di rete odierni vengono configurati in modo da non
considerare la suddivisione in classi, e utilizzare uno schema di indirizzamento senza
classi (classless).
A B C D E
Classe A Rete (Network) Host
Ottetto 1 2 3 4
Classe D Host
Ottetto 1 2 3 4
Per l'indirizzamento degli host attualmente vengono utilizzati solo gli indirizzi IP
appartenenti alle prime tra classi. Gli indirizzi di classe D vengono utilizzati per
l'indirizzamento multicast, cioè gruppi di host. Gli indirizzi di classe E invece sono riservati
per la sperimentazione.
Indirizzi di classe A
Fanno parte di questa classe tutti gli indirizzi il cui primo bit del primo ottetto è 0 (zero).
Con il primo bit a 0 (zero), il primo ottetto di tali indirizzi può essere un valore compreso tra
(000)10 o (00000000)2 e (127)10 o (01111111)2. Praticamente qualsiasi indirizzo IP, il cui
primo ottetto è compreso tra (000)10 e (127)10 è un indirizzo di classe A. Gli estremi (000)10
e (127)10 sono indirizzi riservati e non possono essere utilizzati per l'indirizzamento delle
reti.
I progettisti, con gli indirizzi di Classe A intendevano servire reti estremamente grandi
formate da milioni di host, pertanto l'indicazione della rete viene fornita dal valore del
primo ottetto, i restanti tre, cioè 24 bit vengono usati per rappresentare gli host. Con 24 bit
sono possibili 224 combinazioni, cioè 16.777.216. La prima e l'ultima di queste
combinazioni (cioè tutti i 24 bit a zero e tutti i 24 bit a 1) sono riservate e non possono
essere utilizzati per l'indirizzamento. Di conseguenza ogni indirizzo di classe A supporta
fino a un massimo di16.777.214 host.
La prima combinazione cioè quella con tutti i bit dell'indirizzo host a 0 (zero) è riservata
perché con essa viene identificata la rete stessa. Ogni rete necessita di un identificativo
che rappresenti tutti gli host ad essa appartenenti; quando i bit degli indirizzi degli host
sono tutti a zero, ciò che rimane sono i bit che rappresentano la rete. Ad esempio
l'indirizzo di classe A 46.0.0.0 è un indirizzo di rete, a nessun host è permesso avere
questo indirizzo.
Per un motivo simile è riservata anche l'ultima combinazione di indirizzi host, cioè quella
con tutti i bit a 1, in questo caso infatti, tale cobinazione, rappresenta l'indirizzo di
broadcast della rete, cioè quell'indirizzo utilizzato per mandare per mandare un messaggio
a tutti gli host della rete.
Con quasi 17 milioni di indirizzi disponibili le reti di classe A, vanno ben al di la delle
richieste di indirizzamento della media delle organizzazione e società. Sebbene sia
semplice immaginare una enorme rete formata da milioni di computer, in realtà per
semplificare l'amministrazione e la gestione delle risorse, tali reti vengono generalmente
suddivise in gruppi logici, di dimensioni inferiori. Tale suddivisione è resa possibile con
l'uso della maschere di sottorete. Tutte le reti di classe A sono partizionate in sottoreti di
dimensione inferiore, se tale operazione non venisse fatta si avrebbe un enorme spreco di
risorse e inefficienza.
Considerato che le reti di classe A vengono identificare solo dal primo ottetto e il primo bit
è sempre a zero è ovvio che possono esistere un massimo di 126 reti di classe A (la rete 0
e la rete 127 sono riservate), ognuna delle quali può avere quasi 17 milioni di host. Il
numero di indirizzi IP dedicati alle reti di Classe A rappresenta circa la metà dello spazio di
indirizzamento totale possibile con indirizzi IPv4.
Indirizzi di classe B
La classe B, comprende tutti quegli indirizzi il cui primo ottetto ha i primi due bit pari a
(10)2. Con tale configurazione si ottiene che il valore più piccolo del primo ottetto di un
indirizzo di classe B è pari a (10000000)2 cioè (128)10, mentre quello massimo è
(10111111)2 cioè (191)10. Quindi qualunque indirizzo IP il cui primo ottetto è compreso tra
128 e 191 inclusi è da considerare un indirizzo di classe B.
Considerato che le reti di classe B vengono identificate dai primi due ottetti, ma di questi
solo 14 contribuiscono realmente a generare il numero di reti possibili, perché ricordiamo
che i primi due sono sempre posti a (10) 2, otteniamo che possono esistere 2 14 reti di
classe B e cioè 16.384. Il numero degli indirizzi IP occupato da tutte le reti di classe B,
rappresenta circa il 25% dell'indirizzamento IPv4. total IP space. L'enorme espansione di
Internet ha causato l'esaurimento di praticamente tutti gli indirizzi di classe B. Questo
essenzialmente significa che la crescita di internet è rimasta legata esclusivamente alla
disponibilità di indirizzi IP appartenenti alla classe C.
indirizzi di Classe C
La classe C, comprende tutti quegli indirizzi il cui primo ottetto ha i primi tre bit pari a
(110)2. Con tale configurazione il valore più piccolo che il primo ottetto può assumere è
pari a (11000000)2 pari a (192)10, il valore più alto è invece (11011111) 2 pari a (223)10.
Pertanto tutti gli indirizzi il cui primo ottetto è compreso tra (192) 10 e (223)10 inclusi sono di
classe C.
Originariamente la classe C era stata prevista per servire tutte organizzazioni di piccole e
medie dimensioni. Dato il numero elevato di tali entità il numero di reti doveva essere
molto elevato, pertanto i progettisti hanno deciso di identificare le reti classe C utilizzando i
primi tre ottetti dell'indirizzo, lasciando l'ultimo per indirizzare gli host. Essendo 28 pari a
256, eliminando la combinazione pari a 0 e quella pari a 255, ecco che il numero di host
che possono esserci in una rete di classe C è pari a 254. Mentre la gestione efficiente di
reti di classe A e B impone il partizionamento utilizzando le maschere di sottorete, le reti di
Classe C invece impongono un limite troppo restrittivo al numero di host.
Come detto, le reti di classe C vengono rappresentate dai primi tre ottetti dell'indirizzo,
cioè 24bit, di questi, 21 contribuiscono a generare il numero di reti, poiché i primi tre sono
sempre a configurazione fissa; da questo si ricava che il numero totale di reti di classe C è
pari a 2.097.152, ognuna delle quali contiene come detto 254 host. Il numero totale di
indirizzi di classe C è pari al 12.5% dell'indirizzamento totale IP. Giacché ormai gli indirizzi
di Classe A e B sono praticamente esauriti, possono essere rilasciati esclusivamente
indirizzi di classe C.
Classe dell'indirizzo Intervallo 1° ottetto Numero di reti supportate Numero di host per
rete supportati
Classe A Da 0 a 127 128 (di cui 2 riservate) 16.777.214
Classe B Da 128 a 191 16.348 65.534
Classe C Da 192 223 2.097.152 254
Indirizzi di Classe D
Gli indirizzi di classe D hanno i primi quattro bit del primo ottetto pari a (1110) 2. Pertanto
l'intervallo di valori possibili per il primo ottetto di un indirizzo di classe D varia da
(11100000)2 pari a (224)10 fino a (11101111)10 pari a (239)10. Gli indirizzi di Classe D non
vengono utilizzati per identificare i singoli host, piuttosto ognuno degli indirizzi di questa
classe può essere utilizzato per rappresentare gruppi di host, chiamati anche gruppi
multicast.
Indirizzi di Classe E
Il primo ottetto degli indirizzi di Classe E ha la seguente configurazione dei primi quattro
bit (1111)2, pertanto l'intervallo di valori possibili per tale ottetto va da (11110000) 2, pari a
(240)2, fino a (11111111)2, pari a (255)2. Cli indirizzi di classe E sono riservati per
sperimentazione e non dovrebbero essere utilizzati per indirizzare gli host su Internet o i
gruppi multicast.
Indirizzo IP 172.24.100.45
Decimale 172 24 100 45
Binario 10101100 00011000 01100100 00101101
Per creare una sottorete su un indirizzo di classe B, è necessario utilizzare una maschera
che identifichi bit fino al terzo o quarto ottetto dell'indirizzo IP.
Supponendo di usare una maschera a 24 bit cioè 255.255.255.0, allora i primi 24 bit
dell'indirizzo IP vengono identificati come numero di rete. La rete nell'indirizzo IP utilizzato
in precedenza diventa 172.24.100.0, come indicato nell'immagine successiva:
Router e host configurati con tale maschera considerano anche il terzo ottetto come
facente parte del numero della rete. Questi ulteriori bit costituiscono il campo della
sottorete, questi vengono aggiunti ai due ottetti previsti nell'indirizzamento a classi.
All'interno di una rete come la precedente, in cui i dispositivi vengono configurati con
maschera a 24 bit, gli otto bit del terzo ottetto vengono usati per stabilire a qual'è la
sottorete di appartenenza dell'host. Infine l'host stesso viene identificato utilizzando
l'ottetto finale. Da ciò si deduce che per ogni sottorete possono esistere al massimo 254
host. Gli host di una stessa rete ma di una sottorete differente possono comunicare tra di
loro solo ricorrendo all'aiuto di un dispositivo come un router.
Per indirizzi di Classe B, una maschera di sottorete di 8 bit crea potenzialmente 2 8 cioè
256 sottoreti. Poiché 8 bit rimangono per il campo host, ogni sottorete può essere popolata
con 254 host. Due indirizzi host sono riservati perchè rappresentano il numero di sottorete
e l'indirizzo di broadcast. L'amministrabilità, efficienza e scalabilità di una rete di classe B
migliorano notevolmente se si utilizza il mascheramento per suddividerla in gruppi logici di
piccole dimensioni.
Si osservi che la maschera di sottorete non viene inviata nell'intestazione del pacchetto IP.
Questo significa che nessun router al di fuori della rete conosce come il mascheramento è
stato utilizzato dentro la rete. Un router esterno continuerà a trattare un indirizzo come
172.24.100.45 come uno dei 65-mila host all'interno della rete di classe B 172.24.0.0. In
pratica la suddivisione logica effettuate con il mascheramento è completamente invisibile
al di fuori della rete.
2.2 La crisi degli indirizzi IP e le soluzioni adottate
2.2.1 La crisi degli indirizzi IP
Inoltre gli indirizzi di Classe C consentono un numero limitato di host, 254 per l'appunto.
Questo valore è troppo piccolo per soddisfare le esigenze di società e organizzazioni di
grandi dimensioni. Gli indirizzi di Classe A e B sono virtualmente esauriti e non possono
essere più acquistati.
All'inizio del 1992, L'IETF Internet Engineering Task Force identificò due specifici problemi:
Il nuovo protocollo, IPv6, nasce per risolvere definitivamente la crisi degli indirizzi IP grazie
ad uno spazio di indirizzamento di 128 bit. Dopo anni di progettazione e sviluppo, IPv6 è
finalmente pronto per essere implementato su larga scala. Tuttavia tale implementazione è
ancor oggi ben lungi dall'essere completata.
Una delle ragioni per cui IPv6 non è stato ancora adottato è che le modifiche a IPv4 decise
per il breve periodo, si sono rivelate così efficaci da non rendere così urgente il passaggio
al nuovo. Possiamo affermare che IPv4, eliminate le regole limitanti delle classi, è tornato
a nuova vita.
CIDR viene pronunciato cider. In un sistema in cui viene utilizzato ancora l'indirizzamento
a classi, i router determina la classe dell'indirizzo IP, e in base a quest'informazione
stabilisce il numero di ottetti che rappresentano la rete e quelli che rappresentano l'host.
Quando invece un router utilizza il CIDR, la determinazione del numero di rete e del
numero di host avviene in base alla lunghezza della maschera di sottorete; l'utilizzo del
mascheramento consente tra l'altro di non limitare all'intero ottetto tali informazioni.
Il CIDR fu introdotto nel 1993 e formalizzato nei documenti RFC 1517, 1518, 1519 e 1520.
Fu impiegato su Internet a partire dal 1994. Questa tecnica ha migliorato enormemente la
scalabilità e l'efficienza dell'indirizzamento IPv4, consentendo di ottenere i seguenti
vantaggi:
Senza il CIDR e l'aggregazione, ogni router è costretto memorizzare nella propria tabella
ognuna delle reti.
Indirizzo di Rete Primo ottetto Secondo Ottetto Terzo Ottetto Quarto Ottetto
172.024.0.0/16 10101100 00011000 00000000 00000000
172.025.0.0/16 10101100 00011001 00000000 00000000
172.026.0.0/16 10101100 00011010 00000000 00000000
172.027.0.0/16 10101100 00011011 00000000 00000000
172.028.0.0/16 10101100 00011100 00000000 00000000
172.029.0.0/16 10101100 00011101 00000000 00000000
172.030.0.0/16 10101100 00011110 00000000 00000000
172.031.0.0/16 10101100 00011111 00000000 00000000
Indirizzo di Rete Primo ottetto Secondo Ottetto Terzo Ottetto Quarto Ottetto
172.024.0.0/16 10101100 00011 000 00000000 00000000
172.025.0.0/16 10101100 00011 001 00000000 00000000
172.026.0.0/16 10101100 00011 010 00000000 00000000
172.027.0.0/16 10101100 00011 011 00000000 00000000
172.028.0.0/16 10101100 00011 100 00000000 00000000
172.029.0.0/16 10101100 00011 101 00000000 00000000
172.030.0.0/16 10101100 00011 110 00000000 00000000
172.031.0.0/16 10101100 00011 111 00000000 00000000
Come dimostra l'immagine precedente le 8 reti, pur risultando differenti al 16 bit, risultano
uguali considerando fino al 13 bit. Un router in grado di utilizzare il CIDR, può quindi
essere in grado di aggregare (o riassumere) tutte e 8 le reti in una sola utilizzando un
maschera con lunghezza pari a 13 bit. Per dimostrare quanto detto, si consideri che
ognuna delle otto reti condivide i primi 13 bit e cioé:
10101100 00011
Questi 13 bit vengono indicati spesso con il termine prefisso. Aggiungendo i 19 zeri
necessari per completare i 32 bit e utilizzando una maschera lunga 13 bit si ottiene:
E' necessario ribadire che gli indirizzi di Classe A e Classe B sono ormai praticamente
esauriti, l'unica scelta per le grandi società è quella di acquistare differenti blocchi contigui
di indirizzi di Classe C e aggregarli così da essere visti come una singola grande rete o
super-rete.
Si consideri una società fittizia XYZ che necessiti di indirizzare 400 host. Utilizzando lo
schema di indirizzamento a classi si avrebbero due alternative: la prima è quella di
richiedere un'intera rete di classe B con conseguente spreco di decine di migliaia di
indirizzi. L'altra opzione è invece quella di richiedere due blocchi di indirizzi di classe C, in
questo modo sarebbe possibile indirizzare 2 x 254 = 508 host. L'aspetto negativo di
una tale scelta è che sarebbe necessario dover instradare entrambe le reti ed inoltre i
router Internet sarebbero costretti a mantenere due voci differenti nelle loro tabelle di
instradamento, piuttosto che una.
Utilizzando lo schema di indirizzamento senza classi, la società XYZ può procedere alla
richiesta di due blocchi di indirizzi di Classe C, che gli garantirebbero lo spazio di
indirizzamento sufficiente alle esigenze e aggregarli senza ulteriori sprechi. Usando il
CIDR tra l'altro la società XYZ potrebbe far richiesta dei blocchi di indirizzi direttamente
all'ISP di fiducia, senza necessariamente ricorrere ad un'autorità centrale come InterNIC
(o ICANN). L'ISP infatti potrebbe riservare gli indirizzi necessaria allla società XYZ
direttamente dal suo spazio di indirizzamento. Il fornitore stesso si assumerebbe l'aggravio
della gestione degli indirizzi. Questo sistema consente a livello di router Internet di
utilizzare un'unica rete aggregate, o supernet, del fornitore di servizi. Sarà cura del
fornitore organizzare le rotte più specifiche verso gli indirizzi dei clienti. Questo metodo
riduce drasticamente la dimensione delle tabelle di instradamento.
Numero Rete Primo Ottetto Secondo Ottetto Terzo Ottetto Quarto Ottetto
207.21.54.0 11001111 00010101 00110110 00000000
207.21.55.0 11001111 00010101 00110111 00000000
Nell'esempio la società XYZ richide all'ISP due blocchi contigui di indirizzi di Classe C,
207.21.54.0/24 e 207.21.55.0/24. Esaminando l'immagine precedente si nota,
che tali blocchi di indirizzi hanno un prefisso di 23 bit in comune:
Aggregando tali reti, con l'utilizzo di una maschera a 23 bit, si ottiene la super-rete
207.21.54.0/23, che consente di indirizzare oltre 400 host, per essere più precisi la
società XYZ ha a disposizione 2 9 – 2 = 510 indirizzi IP, senza comunque incorrere
nell'enorme spreco in caso di utilizzo di una rete di Classe B. L'ISP in questo caso funge
da autorità di registrazione di nomi e indirizzi per i suoi clienti. Le reti dei clienti inclusa
quella della società XYZ, vengono annunciate dai router Internet tramite la super-rete
dell'ISP. Nell'esempio l'ISP amministra 256 blocchi di indirizzi IP di classe C che vengono
annunciate utilizzando un prefisso di 16 bit, come: 207.21.0.0/16
Se sul router viene utilizzato il comando ip subnet-zero, è possibile usate tutte e otto
le sottoreti, altrimenti usando no ip subnet-zero la sottorete 0 non sarà disponibile1.
Ogni sottorete contiene fino a 30 host e possono essere utilizzate indipendentemente l'una
dall'altra. Nell'esempio che segue non verrà utilizzata la sottorete 0 e le prime quattro
sottoreti utili verranno utilizzate per indirizzare gli host appartenenti agli uffici di una
società:
1 Su quanto qui affermato è necessario un chiarimento. Nei moduli CCNA viene esplicitamente dichiarato
che il numero di sottoreti utilizzabili prendendo x bit dal campo host di un indirizzo IPv4 è pari a 2x - 2,
questo perché la sottorete zero e la sottorete di broadcast non possono essere utilizzate. In realtà i motivi
di tale affermazione derivavano più da problemi di ordine pratico, piuttosto che tecnico, quindi sarebbe
meglio parlare di ”sottoreti sconsigliate“ piuttosto che di “sottoreti non utilizzabili”. La maggior parte dei
router consente infatti di utilizzare, quanto meno, la sottorete di boradcast. Discorso a parte merita il
calcolo del numero di host, in questo caso il primo e l'ultimo indirizzo non sono effettivamente utilizzabili
in quanto rappresentano rispettivamente numero e indirizzo di broadcast della sottorete. Nelle domande
di certificazione Cisco, quando non esplicitamente dichiarato, la risposta corretta sul numero di sottoreti
utilizzabili, si ottiene sempre togliendo dal risultato le due sottoreti sconsigliate.
future, inoltre è necessario ancora assegnare gli indirizzi IP per i collegamenti WAN
punto-punto tra i siti rimanenti. Si potrebbe pensare di assegnare le rimanenti tre sottoreti
per indirizzare questi collegamenti WAN, ma in questo caso tutti gli indirizzi IP si
esaurirebbero, con lo spreco tra l'altro di oltre il 30% degli indirizzi. Per evitare questi tipi di
sprechi di indirizzi IP, circa 20 anni fa vennero sviluppate tre tecniche che consentono tra
l'altro di indirizzare in maniera efficiente i collegamenti WAN di tipo punto-punto:
Discuteremo indirizzi privati e IP non numerati più avanti in questo modulo. In questa
sezione affronteremo la tecnica VLSM.
Quando viene utilizzata la tecnica VLSM per l'indirizzamento di una rete è possibile creare
gruppi o sottoreti di differenti dimensioni. Le sottoreti più grandi saranno utilizzate per
indirizzare gli host delle LAN, mentre le sottoreti piccole vengono utilizzate per indirizzare i
collegamenti WAN o per altri casi particolari. Utilizzando una maschera di 30 bit è
possibile creare una sottorete contenente al massimo due host validi. Questo per
l'appunto è il numero esatto di indirizzi necessari per collegamenti WAN di tipo
punto-punto. L'immagine seguente mostra ciò che avviene quando una delle tre rimanenti
sottoreti dell'esempio precedente, viene ulteriormente partizionata utilizzando una
maschera di 30 bit:
Di seguito i comandi necessari per configurare il router del sito A, chiamato RTA, con una
maschera di 27 bit sull'interfaccia ethernet e una di 30 bit sull'interfaccia seriale:
Riassumendo:
La lunghezza della maschera di sottorete può essere scelta in base alle esigenze di
indirizzamento del segmento di rete; per esempio un collegamento di rete
punto-punto richiede solo due indirizzi e pertanto è possibile utilizzare una
maschera a 30 bit;
RIPv1 Routing Information Protocol e IGRP Interior Gatway Routing Protocol, sono i più
comuni protocolli di instradamento interni IGP (Interior Gateway Protocols), ma non
supportano le VLSM poiché non inviano le informazioni sulle sottoreti negli aggiornamenti.
Se il router riceve informazioni su una rete il cui indirizzo appartiene alla stessa rete
dell'interfaccia sulla quale l'aggiornamento è stato ricevuto, viene applicata la
maschera di sottorete che è stata configurata su tale interfaccia;
Se il router riceve informazioni si una rete il cui indirizzo non appartiene alla stessa
rete dell'interfaccia sulla quale l'aggiornamento è stato ricevuto, allora su tale
indirizzo viene applicata la maschera predefinita prevista per l'indirizzamento a
classi;
Nonostante queste limitazioni, il protocollo RIP è ancora molto utilizzato anche perché è
supportato praticamente da qualsiasi router; La popolarità del protocollo RIP deriva quindi
dalla semplicità di implementazione e configurazione e dalla sua compatibilità. La prima
versione di tale protocollo RIPv1 non è esenta da problemi:
Nel 1998 con il documento RCF 1058, venne introdotto una versione migliorata di RIP cioè
RIPv2, che consente di superare le limitazione del suo predecessore:
Queste caratteristiche rendono RIPv2 preferibile a RIPv1, a meno che alcuni vecchi
dispositivi di rete non lo supportino;
Quando viene abilitato il protocollo RIP sui router Cisco, per impostazione predefinita,
questi sono in grado di ricevere (in gergo ascoltano) sia aggiornamenti invitati da router
che utilizzano RIPv1, sia quelli inviati da router che utilizzano RIPv2 ma inviano
esclusivamente aggiornamenti RIPv1. Per poter utilizzare i vantaggi introdotti con RIPv2, è
necessario abilitare tale protocollo esplicitamente con i seguenti comandi:
La semplicità nello stesso tempo la bontà del progetto RIP, gli consentirà di continuare a
sopravvivere anche in futuro; tanto è vero che una nuova versione è stata sviluppata per
supportare le caratteristiche del protocollo IPv6.
CIDR e VLSM non sono stati introdotti solo per evitare lo spreco di indirizzi, ma anche per
favorire l'aggregazione delle rotte o summarization. Senza l'aggregazione delle rotte le
dorsali Internet sarebbero collassate già dal 1997.
L'immagine precedente illustra come l'aggregazione riduce il carico sui router di confine.
Questa complessa gerarchia di reti e sottoreti di dimensioni variabili, viene via via
aggregata man mano che ci si sposta verso il nodo radice, usando alla fine un prefisso,
grazie al quale tutte le reti e sottoreti sottostanti vengono annunciate come una singola
rotta aggregata, nell'esempio 192.168.48.0/20.
E' bene ricordare che l'aggregazione delle rotte è possibile esclusivamente se i router
utilizzano un protocollo di instradamento senza classi, come ad esempio OSPF o EIGRP.
Tali protocolli prevedono infatti l'invio nei messaggi di aggiornamento sia del prefisso della
rete che della rispettiva maschera utilizzata, entrambi di 32 bit. Osservando l'immagine
dell'esempio precedente, la rotta aggregata finale è rappresentata da un prefisso di 20 bit
che tutte le rotte all'interno dell'organizzazione hanno in comune, che è nel caso specifico:
192.168.48.0 in forma decimale puntata.
11000000.10101000.00110000.00000000 in binario
Tuttavia per poter aggregare correttamente le rotte è necessario che gli indirizzi IP
vengano assegnati in maniera gerarchica, in modo tale che via via che si risale fino al
nodo principale gli indirizzi aggregati condividano un maggior numero di bit più significativi
degli indirizzi.
Il termine route flapping viene utilizzato per descrivere quella situazione in cui l'interfaccia
di un router non raggiunge mai una situazione di stabilità, passando continuamente da
attiva (up) a disattiva (down). Trovare la causa di questo problema non è sempre facile
poiché può essere causato da diversi fattori, come un'interfaccia difettosa o un cavo non
terminato.
Utilizzando l'aggregazione, i router ai livelli più alti possono essere efficacemente isolati da
problemi di instabilità delle rotte. Osservando l'immagine precedente si consideri il router
RTC, se l'interfaccia di tale router connessa alla sottorete 200.199.56.0 per qualsiasi
motivo dovesse disattivarsi, la rotta verso tale sottorete sarebbe rimossa dalla tabella di
instradamento. Se RTC non fosse configurato per aggregare le sue rotte sull'interfaccia
verso RTZ, allora invierebbe un messaggio (triggered update) verso RTZ per comunicare
l'indisponibilità della rotta. Ogni volta che i router rilevano una variazione della topologia di
rete, sono costretti a ricalcolare le tabelle di instradamento, e soprattutto sui i router in cui
vengono utilizzati protocolli di instradamento basati su algoritmi a stato del collegamento,
come OSPF (Open Shortest Path First), il processo di ricalcolo può essere abbastanza
oneroso tanto da riperquotersi sulle prestazioni generali del router. Supponendo adesso
che l'interfaccia di RTC verso la rete 200.199.56.0, abbia qualche problema e sia molto
instabile, attivandosi e disattivandosi frequentemente. Tutti i router all'interno del dominio
amministrativo sarebbero costretti a riaggiornare frequentemente le loro tabelle con un
impatto negativo sul funzionamento delle rete.
L'utilizzo dei protocolli TCP/IP è ormai predominante nel mondo, tanto che la stragrande
maggioranza delle applicazioni di rete e dei sistemi operativi li supportano direttamente. La
diffusione di tali protocolli è così ampia che, anche se una rete non richiede un
collegamento a Internet, viene comunque progettata basandosi su essi. Mentre gli host
collegati a Internet richiedono un indirizzo IP globalmente univoco, in generale gli host
appartenenti a reti private possono utilizzare qualsiasi indirizzo IP valido, con il solo
requisito di essere unico all'interno della rete privata.
Poiché insieme a molte reti private vengono affiancate reti pubbliche, il semplice utilizzo di
un indirizzo qualsiasi è una pratica fortemente scoraggiata. Con il documento RFC 1918
sono stati riservati tre blocchi di indirizzi IP con le seguenti modalità e motivazioni:
:
Utilizzo privato o interno;
Un intervallo di indirizzi di Classe A;
Un intervallo di indirizzi di Classe B;
Un intervallo di indirizzi di Classe B;
Questi indirizzi riservati nono possono essere instradati sulle dorsali Internet. I router
Internet dovranno scartare immediatamente tali indirizzi.
L'utilizzo degli indirizzi privati è consentitito al posto degli indirizzi pubblici, in tutti questi
casi:
Gli indirizzi RCF 1918 possono essere utilizzati sia in reti casalinghe che in reti di
produzione. Nei moduli precedenti abbiamo visto come utilizzare la tecnica VLSM per non
sprecare indirizzi nei collegamenti punto-punto, partizionando ulteriormente una sottorete
usando una maschera di 30 bit. Sebbene questa soluzione è di gran lunga migliore che
sprecare ad esempio un intero blocco di indirizzi di Classe C, è necessario impiegare
comunque una sottorete esclusivamente per collegamenti WAN. Una soluzione migliore
potrebbe essere quella di utilizzare gli indirizzi privati per indirizzare i collegamenti WAN.
L'esempio in figura mostra come i collegamenti WAN di una rete sono stati indirizzati
utilizzando una sottorete 10.0.0.0/8 i cui indirizzi fanno parte dello spazio di
indirizzamento privato.
I router possono usare indirizzi privati anche se gli utenti delle LAN ai siti A, B, C hanno
accesso a internet, perchè gli host di ognuno di questi siti utilizza indirizzi globali unici, o
pubblici, presi partizionando la rete 207.21.24.0. I router da parte loro usano le
interfacce seriali con gli indirizzi privati, esclusivamente per inoltrare il traffico e scambiarsi
le informazioni sull'instradamento. Il router centrale posto al sito C e quello dell'ISP
“vedono” esclusivamente l'indirizzo IP del mittente e del destinatario. In pratica ai router
del fornitore, posti gerarchicamente a un livello superiore, non importa come i pacchetti
hanno attraversato la rete attraverso i collegamenti con gli indirizzi privati. Nei fatti diversi
ISP utilizzano gli indirizzi RFC 1918 per indirizzare i collegamenti tra i loro router a livello
core, così da evitare di utilizzare parte dei loro indirizzi globali univoci.
Esiste tuttavia un aspetto negativo nell'utilizzare indirizzi privati per i collegamenti WAN, e
cioè che le interfacce WAN dei router non possono essere sorgenti dirette del traffico
destinato su Internet, o viceversa destinatari del traffico proveniente da Internet. I router
non sono dispositivi utilizzati per navigare su Internet, tuttavia una tale limitazione può
divenire un problema quando è previsto che alcune operazioni come l'amministrazione o il
troubleshooting (ricerca ed individuazione dei problemi) possa essere effettuato anche da
Internet; per esempio tramite l'uso del comando ping (quindi messaggi ICMP Internet
Control Message Protocol) o usando strumenti che si basano sul protocollo SMTP (Simple
Network Management Protocol) o infine collegandosi in remoto tramite telnet. In questi
casi è necessario assegnare anche alle interfacce WAN indirizzi globalmente univoci.
Per risolvere il problema delle sottoreti discontinue l'unica via praticabile è dunque quella
di utilizzare protocolli di instradamento senza classi; tuttavia anche con alcuni di questi è
necessario effettuare delle configurazioni aggiuntive. Nella fattispecie i protocolli RIP v2 e
EIGRP senza un esplicita configurazione che lo vieti, eseguono automaticamente
l'aggregazione delle rotte, secondo quanto previsto dall'indirizzamento a classi. Nella
maggior parte dei casi questo comportamento è auspicabile, perché riduce la dimensione
delle tabelle di instradamento. Tuttavia in casi come il precedente, è necessario procedere
alla disabilitazione dell'aggregazione automatica. Per fare tale operazione è necessario
utilizzare il comando:
Router(config-router)# no auto-summary
Il NAT venne formalmente introdotto con il documento RFC 1631. Identifica il processo di
scambiare un indirizzo IP contenuto nell'intestazione del pacchetto con un altro indirizzo.
Praticamente il NAT viene utilizzato per consentire agli host che utilizzano indirizzi privati,
come definito da RFC 1918, di accedere a Internet.
Un dispositivo di rete in cui è stato abilitato il NAT, come un computer con UNIX o un
router Cisco, opera come dispositivo di confine di un troncone di rete o stub domain2,
come ad esempio una LAN o intranet aziendale con una singola connessione verso il
2 Il termine Stub domain identifica un dominio (o un troncone di rete), in cui tutto il traffico è generato e
destinato dai membri del dominio stesso. Inoltre il percorso che connette due membri passa solo
attraverso quel dominio.
mondo esterno. Quando un host all'interno dello stub domain vuole trasmettere verso un
host che si trova all'esterno, inoltra il pacchetto verso il dispositivo NAT, il quale attiva il
processo NAT, che controlla l'intestazione del pacchetto IP, e se necessario sostitusce
l'indirizzo IP interno (inside) con un indirizzo IP globalmente unico. Quando
successivamente l'host esterno invia una risposta, il processo NAT esegue le seguenti
operazioni:
Riceve il pacchetto;
Ricerca l'indirizzo di destinazione all'interno della tabella delle traslazioni;
Sosituisce l'indirizzo di destinazione con quello originale trovato nella tabella;
10.4.4.5 2.2.2.3
10.4.1.1 2.2.2.2
.
La traslazione degli indirizzi NAT può avvenire dinamicamente o staticamente, e può
essere usata per svariati scopi.
Tra le caratteristiche più potenti dei dispositivi NAT, c'è la possibilità di utilizzare la
funzionalità di PAT Port Address Traslation, traslation degli indirizzi in base alla porta.
Questa consente a differenti indirizzi interni di essere associati allo stesso indirizzo
globale. Questa finzione è anche chiamata NAT molti-a-uno (many-to-one NAT). Grazie al
PAT o address overloading (letteralmente sovraccarico di indirizzi), centinai di indirizzi
privati possono accedete a Internet utilizzando un unico indirizzo globale. I router che
hanno tali finzionalità tengono traccia delle differenti comunicazioni utilizzando oltre che gli
indirizzi del mittente e del destinatario anche i numeri di porta dei protocolli TCP e UDP.
Abbiamo visto nei precedenti paragrafi differenti modi per massimizzare l'efficienza
dell'indirizzamento IP. Come ad esempio evitare di sprecare un'intera sottorete per
indirizzare i collegamenti punto-punto con l'utilizzo delle VLSM o di indirizzi privati.
Nessuna delle due tecniche tuttavia è correttamente supportata dai protocolli di
instradamento a classi come RIP v1 o IGRP. Fortunatamente il sistema operativo IOS di
Cisco, offre una terza opzione per indirizzare efficacemente i collegamenti seriali
punto-punto. Questa opzione prende il nome di IP unnumbered o IP non numerati.
Le due interfacce LAN dei rispettivi router che condividono i loro indirizzi con le
seriali devono appartenenenre alla stessa rete principale. Quando invece si
utilizzano le maschere di sottorete predefinite in base alla classe dell'indirizzo, è
possibile assegnare alla interfacce LAN anche indirizzi appartenenti a reti differenti.
Il procollo DHCP funziona utilizzano un server che distrbuisce ai client che ne fanno
richiesta, le informazioni di configurazione del protocollo IP. I client a loro volta utilizzano
queste informazioni per un periodo di tempo prestabilito chiamato lease time. Quando tale
periodo termina, il client deve richiedere un'altro indirizzo, generalmente comunque il
server rinnova al client l'indirizzo precedente.
Generalmente gli amministratori di rete preferiscono utilizzare un computer dedicato che
funga da server DHCP, dotato di sistema operativo come Microsoft NT Server o UNIX.
Questa soluzione è infatti notevolmente scalabile e relativamente semplice da
amministrare. Tuttavia l'IOS Cisco incorpora tutte le funzionalità di un server DHCP che
possono essere utilizzare all'occorrenza, l'impostazione predefinita per il temp di lease
degli indirizzi rilasciati da tale server è di 24 ore.
Il protocolo BootP fu originariamente formalizzato nel 1985 con il documento RFC 951.
Tale protocollo è il predecessore di DHCP e condivide con esso alcune caratteristiche
operazionali. Entrambi i protocolli utilizzano il protocollo UDP e le porte 67 e 68; queste
vengono spesso descritte come porte well known (riconosciute o ben note) assegnate al
protocollo BootP proprio perchè tale protocollo è il predecessore di DHCP.
2.7.2 Funzionamente del protocollo DHCP
In base alla politiche dell'organizzazione, potrebbe essere possibile, per l'utente o per
l'amministratore, assegnare staticamente a un host uno degli indirizzi IP che appartengono
all'intervallo configurato nel server DHCP. In questi casi, per evitare possibili conflitti di
indirizzi IP, la stragrande maggioranza dei server DHCP, incluso quello dell'IOS Cisco, si
asscurano, prima di inviare al client il messaggio DHCPOFFER, che l'indirizzo da rilasciare
non sia già in uso. Per farlo inviano all'indirizzo prescelto un messaggio ICMP echo
requests, cioè un ping. In particolare, il server DHCP presente nell'IOS Cisco, come
impostazione predefinita, per accertarsi che non ci siano conflitti, invia due ping, verso
l'indirizzo in questione. Ovviamente più è alto il numero di ping più si è certi che l'indirizzo
che verrà rilasciato non è in uso, ma ovviamente cosi facendo il tempo impiegato dal
processo di configurazione DHCP aumenta.
Il processo DHCP server su tutte le versioni di Cisco IOS che lo supportano è abilitato
come impostazione predefinita. Se per qualche ragione tale processo dovesse risultare
disabilitato, può essere riabilitato usando il comando service dhcp in modalità
configurazione globale. La versione negata del comando precedente, cioè il comando
no service dhcp disabilita il processo.
Come avviene con la funzionalità di NAT, anche per quella del server DHCP è richiesto
che venga definito almeno un intervallo o pool di indirizzi IP che il server rilascerà di volta
in volta. Il comando ip dhcp pool definisce appunto tale intervallo di indirizzi:
Il primo comando ip dhcp pool ufficio1, crea un pool chiamato ufficio1, da questo
momento il router entra in modalità configurazione DCHP, specializzata appunto per
configurare i parametri DHCP. Il comando successivo network definisce l'intervallo
indirizzi che dovrà essere rilasciato ai client che ne faranno richiesta. Se per un motivo
qualunque si vogliono escludere degli indirizzi IP dall'essere assegnati dal server DHCP, è
necessario utilizzare in modalità configurazione globale il comando:
ip dhcp excluded-address
che nel caso in oggetto esclude tutti gli indirizzi da 172.16.1.1 a 172.16.1.10. Il comando
ip dhcp excluded-address può essere utilizzato ad esempio per riservare alcuni
indirizzi che dovranno essere assegnati staticamente ad alcuni host.
Un server DHCP è in grado di inviare al client anche altre informazioni oltre che l'indirizzo
IP. Il contenuto di tali configurazione deve essere specificato in modalità configurazione
DHCP:
RTA(config)# ip dhcp pool ufficio1
RTA(dhcp-config)# dns-server 172.16.1.2
RTA(dhcp-config)# net-bios-name-server 172.16.1.2
RTA(dhcp-config)# default-router 172.16.1.1
Senza un gateway predefinito i client non potranno andare molto lontano, questo
parametro viene configurato con il comando default-router. Anche gli indirizzi DNS
sono essenziali per poter navigare su Internet, vanno configurati con il comando
dns-server, quindi per i sistemi windows è possibile rialsciare automaticamente anche
un server WINS con netbios-name-server. Sono moltissimi i parametri che il server
DHCP dell'IOS è in grado di rilasciare.
La tabella precedente mostra invece i comandi show della modalità utente per analizzare il
funzionamento del server DHCP.
2.7.4 Easy IP
Easy IP è una funzionalità del sistema operativo IOS Cisco che consente ai router di
negoziare il proprio indirizzo IP e di attivare il NAT su questo indirizzo. Le funzionalità di
easy PC generalmente vengono utilizzate in piccoli uffici o nelle abitazioni, ambianti che
vengono genraralmente indicati con la sigla SOHO Small Office, home office. Questo
perchè in tali ambienti, generalmente il collegamento a Internet avviene tramite un ISP,
che assegna dinamicamente un indirizzo IP.
Un router SOHO con Easy PC utilizza inoltre DHCP per assegnare automaticamente gli
indirizzi IP ai client locali usando indirizzi privati come specificato in RFC 1918. Quando il
router riceve sulla sua interfaccia WAN l'indirizzo IP tramite il protocollo PPP Point to
Point, viene utilizzato il NAT con overload per la traslazione degli indirizzi locali interni
verso un singolo indirizzo globale. In questo modo sia la parte WAN che quella LAN,
vengono configurate dinamicamente senza alcun tipo di internvento. Ci si riferisce alla
funzionalità Easy PC come routing plug-and-play.
DHCP non è l'unico protocollo che utilizza messaggi di broadcast, esistono infatti altri
protocolli e servizi altrettano importanti che ne fanno uso. Per esempio i router Cisco
utilizzano messaggi broadcast per localizzare nella rete i server TFTP alcunu client li
utilizano per i servizi di sicurezza AAA come per la localizzazione dei server TACACS.
Inoltre in una rete di notevoli dimesioni, a struttura gerarchica, in alcuni casi, i client
potrebbero non essere collegati sulla stessa sottorete dei server sui quali accedono per
richiedere i servizi. Per localizzare tali server la maggioranza dei protocolli prevede l'invio
di messaggi broadcast. Tuttavia tutti i router per impostazione predefinita, non inoltrano i
messaggi di broadcast. In queste condizioni alcuni client non sono in grado ad esempio di
contattare il server DHCP per l'assegnazione dell'indirizzo. Per questa ragione in genere si
fa in modo che per ogni sottorete sia presente un server che esegua tutti i servizi
essenziali come DHCP o DNS. Tale pratica tuttavia non è sempre possibile per problemi
logistici, economici e non ultimo il problema di sovraccaricare un unico server con più
servizi. In tutti questi casi è possibile ricorrere alla funzionalità dell'IOS di Cisco chiamata
helper address.
Prima di procedere alla configurazione vera e propria della funzionalità di helper address,
è necessario identificare le interfacce del router che ricevono i broadcast per i servizi UDP.
Fatto questo in modalità configurazione interfaccia utilizzare il comando
ip helper-address per definire gli indirizzi sui quali i messaggi UDP di broadcast
saranno rediretti.
Servizio Porta
Time 37
TACACS 49
DNS 53
BootP / DHCP Server 67
BootP / DHCP Client 68
TFTP 69
NetBIOS name service 137
NetBIOS datagram service 138
.
Nel caso in cui si utilizzasse un servizio che non sia tra quelli nella lista precedente, l'IOS
Cisco consente di specificare la porta UDP di tale servizio in modo tale da poterne
inoltrare i messaggi di broadcast; il comando da utilizzare è ip forward-protocol da
inseriere in modalità configurazione globale. Per esempio, per poter inoltrare i broadcast
per un servizio che utilizza la porta UDP 517, utilizzare il comando:
Questo comando può essere utilizzato non solo per aggiungere un'altra porta a quelle
specificate precedentemente in tabella, ma anche di eliminare una porta corrispondente a
quella di un servizio che magari non è utilizzato nella rete. Ad esempio se in una rete è
necessario inoltrare i broadcast per i servizi DHCP, TFTP e DNS, ma non quelli dei servizi:
Time, TACACS e NetBIOS, è necessario inserire i seguenti comandi:
RTA(config)# interface e0
RTA(config-if)# ip helper-address 172.24.1.9
RTA(config)# interface e0
RTA(config-if)# ip helper-address 172.24.1.255
Infine, affinché gli host della LAN, riescano ad accedere al server TACACS, che risiede su
una sottorete separata, è necessario configurare l'interfaccia e0 del router RTA
aggiungendo anche il comando: ip helper-address 172.16.1.2.
Si nota inoltre che su tale interfaccia è disabilitato l'inoltro diretto dei messaggi di
broadcast (directed broadcast forwarding is disabled), ciò significa che il router non
convertirà i messaggi di broadcast di livello 3 o broadcast logici come 172.24.1.255 in
broadcast di livello 2 come FF-FF-FF-FF-FF-FF. Affinché il router esegua tale
conversione è necessario configurarlo utilizzado il comando ip directed-broadcast.
Nell'esempio in oggetto tutti i nodi della server farm devono ricevere i broadcasts a livello
2, pertanto l'interfaccia e3 deve essere configurata per inoltrarli:
RTA(config)# interface e3
RTA(config-if)# ip directed-broadcast
In questo modulo abbiamo parlato più volte dei due principali problemi legati
all'indirizzamento IPv4:
Agli inizi del 1990, grazie all'introduzione del CIDR, instradamento senza classi, costruito
sul concetto di mascheramento, IETF è riuscita nell'intento di arginare, temporaneamente,
i due problemi citati in precedenza. La natura fortemente gerarchica del CIDR ha
consentito di migliorare enormemente la scalabilità dell'indirizzamento IPv4, provando
ancora una volta, qualora c'è ne fosse stato bisogno, che le strutture gerarchiche sono, tra
tutte, quelle più scalabili.
Le varie tecniche via via introdotte, mascheramento (subnetting) nel 1985, VLSM nel 1987
e per l'appunto il CIDR nel 1993, hanno aumentato notevolmente la longevità del
protocollo IPv4, estremizzandone la natura gerarchica. Tuttavia tutte queste tecniche non
riusciranno a salvare ancora per molto tempo IPv4 dal suo destino. La questione è
semplice, non ci sono abbastanza indirizzi IPv4 per rispondere alle esigenze future. IPv4
consta di oltre 4 miliardi di indirizzi, che tuttavia non sono sufficienti nel mondo
globalizzato di domani, in cui miliardi di persone, dispositivi e apparati di vario genere,
avranno accesso Internet.
Oltre quelle già citate, sono state introdotte altre soluzioni a breve termine, per affrontare il
problema dell'esaurimento degli indirizzi IPv4. Queste includono l'utilizzo di indirizzi privati
RFC1918, e il NAT, che consente a centinaia di host di accedere a internet utilizzando un
numero limitato di indirizzi IP.
Tuttavia la soluzione definitiva al problema è sicuramente la sostituzione di IPv4 con IPv6
che, con il suo spazio di indirizzamento a 128 bit 3, potrà sicuramente far fronte a qualsiasi
richiesta di indirizzi. IPv6 comunque non differisce da IPv4 solo per il numero più elevato
di indirizzi, ma anche per altre caratteristiche, tra le quali una struttura gerarchica su tre
livelli.
Nel 1994, L'IETF Internet Engineering Task Force propose formalmente IPv6 in RFC
1752; in risposta a tale proposta vennero formati dei gruppi di lavoro. Il protocollo IPv6 è
stato sviluppato per risolvere i seguenti problemi:
Come definito nel documento RFC 1884 successivamente revisionato da RFC 2373 4, la
dimensione degli indirizzi o identificatori IPv6 è fissata a 128 bit, per interfacce ed insiemi
di interfacce, non per i nodi5.Vengono definiti tre tipi generali di indirizzi:
3 E' utile osservare che i 128 bit di IPv6 garantiscono 2 128 indirizzi un numero pari a
340.282.366.920.938.463.463.374.607.431.768.211.456 circa 340 trilioni di biliardi. Invece i 32 bit di
IPv4, garantiscono 232 indirizzi e cioè 4.294.967.296 circa di 4 miliardi.
4 Al momento della stesura RFC 2373 è stato reso obsoleto da RCF 3513, che a sua volta è stato reso
obsoleto da RFC 4291. Nel caso particolare dei tipo di indirizzi IPv6, tali documenti non introducono nulla
di nuovo.
5 Con il termine nodo vengono identificati tutti quei dispositivi che tramite interfacce sono collegati alla rete
Unicast – un identificatore assegnato a una singola interfaccia. Un pacchetto
inviato verso un indirizzo unicast, viene consegnato all'interfaccia identificata con
quell'indirizzo. Gli indirizzi IPv6 unicast sono aggregabili utilizzando un prefisso di
dimensione albitraria; in maniera del tutto simile agli indirizzi IPv4 quando associati
al CIDR Classless Inter-Domain Routing. Sono stati definiti diversi tipi di indirizzi
unicast, in particolare:
Sono inoltre stati introdotti, per essere utilizzati in casi particolari, alcuni sottotipi di
indirizzi unicast globali (Global Unicast), come ad esempio gli Indirizzi IPv6
contenenti indirizzi IPv4 (IPv6 Addresses with Embedded IPv4 Addresses). E'
possibile che in futuro vengano aggiunti altri tipi o sottotipi di indirizzi.
Tra quelli citati in precedenza, si nota l'assenza di indirizzi di broadcast; questo perché in
IPv6, la funzione svolta da tali indirizzi è stato sostituita dagli indirizzi multicast.
A causa del numero eccessivo di cifre che servirebbero per rappresentare un l'indirizzo
IPv6, la notazione decimale puntata è stata abbandonata in favore della notazione
esadecimale. Gli indirizzi IPv6, vengono scritti utilizzando 32 cifre esadecimali, disposte in
otto gruppi di quattro cifre; ogni gruppo è separato dal simbolo di due punti (:).
2001:0db8:85a3:0000:1319:8a2e:0370:7344
Come gli indirizzi IPv4, anche quelli IPv6 vengono scritti utilizzando la notazione CIDR,
cioè priva di classi. Una rete o sottorete IPv6 è corrisponde ad un gruppo contiguo di
indirizzi IPv6; il numero di elementi di tale gruppo deve essere una potenza del 2. I bit
iniziali degli indirizzi del gruppo di indrizzi IPv6, che sono identici per ogni interfaccia
presente nella rete o sottorete, prende il nome di prefisso. La rete o sottorete, viene quindi
identificata dal prefisso e dalla sua lunghezza (in decimale), separati dal simbolo di barra
(/). Per esempio, 2001:0db8:1234::/48 identifica una rete contenente gli indirizzi
da: 2001:0db8:1234:0000:0000:0000:0000:0000
a: 2001:0db8:1234:FFFF:FFFF:FFFF:FFFF:FFFF
poiché una singola interfaccia può essere vista come una rete con prefisso di lunghezza
pari a 128 bit, quindi non sono rare le notazioni che vendono l'indirizzo di un'interfaccia
seguito da /128.
Come avviene per IPv4, anche con IPv6 alcuni indirizzi sono stati destinati per usi
particolari. L'ambito di validità di un indirizzo IPv6 può spaziare dai seguenti livelli:
Validità a livello del Nodo (Node-Local scope): questi indirizzi sono validi
esclusivamente sul nodo (PC, server e altri dispositivi di rete) a cui è applicato;
Validità a livello di collegamento (Link-Local Scope): questi indirizzi sono validi
all'interno di un segmento di rete a cui sono applicati, un esempio può essere quello
di un dominio di broadcast nel caso di reti ethernet;
Validità a livello di sito (Site-local scope): gli indirizzi in questo caso sono validi
all'interno di un sito di un'organizzazione, per esempio la LAN della filiale di una
società;
Validità a livello dell'organizzazione (Organization-Local scope): l'ambito in
questo caso si estende per tutte le sedi dell'organizzazione;
Validità Globale (Global scope): l'indirizzo è valido a livello globale, cioè tutta la
rete internet;
2.9.6 Allocazione dello spazio di indirizzamento IPv6
Dopo aver trattato per anni con il numero sempre più esiguo di indirizzi IPv4 rimanenti, gli
ingegneri di IETF, grazie a IPv6 avevano finalmente uno spazio di indirizzamento a dir
poco illimitato da poter gestire.
E' ironico che i creatori di IPv6 abbiano deciso di utilizzare un tale sistema, nonostante il
fatto che fu proprio una tale scelta a causare il precoce esaurimento degli IPv4 . Utilizzare
un prefisso da 3 a 10 bit, che consenta di identificare gli indirizzi IPv6, è concettualmente
identico a quello di usare i bit dall'1 al 4, per distinguere le classi in IPv4.
Da RFC 3513 e successive, fino a RFC 4291, furono introdotte alcune modifiche,
soprattutto nella terminologia utilizzata, e in particolare venne eliminato il termine “format
prefix”. Questo, sebbene ancora oggi, il sistema di allocazione dell'indirizzamento IPv6, si
basi sulla particolare configurazione dei bit iniziali, è stato uno stimolo per tenerlo in
considerazione il meno possibile. La tabella seguente mostra, in base all'RFC 4291,
l'ultimo al momento della compilazione del presente, come IETF ha strutturato lo spazio di
indirizzamento IPv6:
Tuttavia degli indirizzi Unicast globali (Global Unicast), che sono quelli effettivamente utili
per l'indirizzamento, IETF ne ha resi effettivamente disponibili a IANA 7 circa il 30% e cioè
quelli del blocco 2000::/3. Nella tabella seguente, che mostra com'è attualmente
organizzato lo spazio di indirizzamento IPv6, si può notare come il 70% degli indirizzi non
è ancora stato reso disponibile:
7 IANA Internet Assigned Numbers Authority, è l'autorità formalmente delegata in RFC1881 del dicembre
1995 per l'amministrazione e il rilascio degli indirizzi IPv6.
2.9.7 Gli indirizzi Unicast Globali (Global Unicast Addresses)
Secondo gli attuali piani di sviluppo, i nodi IPv6 che si connetteranno a Internet useranno
gli indirizzi unicast globali aggregabili aggregatable global unicast address. Il termine è
simile a quello della controparte IPv4, per definire l'aggregazione quando viene utilizzato il
CIDR. E come nella controparte gli indirizzi globali si basano su un sistema gerarchico per
mantenere le tabelle di instradamento dei router su dimensioni accettabili. In particolare la
struttura generale degli indirizzi globali unicast IPv6 è suddivisa su tre livelli di gerarchia:
Prefisso di instradamento globale (global routing prefix): E' il livello più alto della
gerarchia di un indirizzo IPv6 (in origine chiamata Topologia pubblica - Public
topology), in genere viene assegnato da IANA o dalle autorità locali (come ICANN
ecc.) direttamente ai fornitori di servizi Internet, cioè gli ISP. Viene utilizzato per
l'instradamento sulle dorsali pubbliche Internet. Può a sua volta essere strutturato
aggiungendo altri livelli di gerarchia;
L'identificativo di sottorete (subnet ID): è il livello intermedio della gerarchia di un
indirizzo IPv6 (in origine chiamato Topologia Locale - Site topology), cioè il livello
assegnato localmente a un'organizzazione. Il suo utilizzo è limitato
all'instradamento interno all'organizzazione a cui è stato assegnato, non fornisce
connettività a nodi esterni;
Questo campo dell'indirizzo IPv6 può essere paragonato alla porzione host degli indirizzi
IPv4. Tuttavia grazie alle dimensioni maggiori, è stato possibile ampliare le modalità di
applicazione. In particolare, è possibile, in alcuni casi, derivare l'identificativo
dell'interfaccia (Interface ID) direttamente dall'indirizzo di livello collegamento (data-link),
quindi dall'indirizzo MAC, della scheda di rete. In pratica un host può essere in grado di
auto determinare il proprio indirizzo IPv6, con la certezza di essere globalmente univoco.
Prima di poter implementare tali meccanismi era necessario risolvere i seguenti problemi:
Alcuni indirizzi unicast IPv6 erano già comunemente utilizzati per varie applicazioni,
era quindi necessario strutturare l'identificativo dell'interfaccia (Interface ID) senza
dover riassegnare i vecchi indirizzi;
Esistono due formati per rappresentare gli indirizzi MAC delle schede rete, il
classico IEEE 802 o EUI-48, che ha una lunghezza di 48 bit, e il nuovo IEEE
EUI-64 che invece ha una lunghezza di 64 bit;
Per superare questi inconvenienti, IETF ha deciso che tutti gli indirizzi unicast globali
(Global Unicast), devono avere l'identificativo d'interfaccia (Interface ID) costituito da 64
bit, e deve essere calcolato utilizzando il formato EUI-64 modificato. Il nuovo formato
8 Come vedremo, un eccezione a questa regola è costituita dagli indirizzi anycast.
diventa quindi: nm=64 128=nm64
poiché come detto in precedenza alcuni indirizzi IPv6, come gli IPv6 contenenti indirizzi
IPv4 (IPv6 Addresses with Embedded IPv4), erano già stati utilizzati, questa
configurazione diviene non obbligatoria negli indirizzi unicast globali (Global Unicast) i cui
tre bit più significativi sono impostati a 000,
EUI-48 (o IEEE 802) e EUI-64, come anticipato in precedenza sono due standard introdotti
da IEEE per rappresentare gli indirizzi fisici delle schede di rete:
Tutte le schede di rete ethernet 802.x hanno indirizzi MAC con entrambi i bit U/L e
I/G impostati a 0, indicando così che l'indirizzo in oggetto è unicast e universale.
IEEE EUI-64
Poiché, il campo estensione, sotto il controllo dei produttori, negli ultimi anni era
andato via via esaurendosi, L'IEEE (Institute of Electrical and Electronic Engineers)
ha standardizzato un nuovo formato EUI-64, che ne aumenta le dimensioni
portandole a 40 bit. La dimensione del campo Identificativo del produttore rimane
come invariata:
In maniera del tutto analoga a EUI-48, EUI-64 prevede l'utilizzo dei bit U/L e I/G,
con stesse modalità e significati, anche le posizioni dei bit all'interno
dall'identificativo del produttore rimangono invariate.
L'identificativo dell'interfaccia (Interface ID) basato sul formato EUI-64 modificato può
essere globalmente univoco quando deriva da un indirizzo Universale e Individuale (bit
U/L e I/G entrambi a 0), quindi ad esempio nel caso di conversione diretta da indirizzi
MAC IEEE 802 a 48 bit o a 64 bit. Oppure avere significato locale quando, o non è
possibile derivarlo da identificatori univoci, per esempio nel caso di collegamenti seriali o
nodi terminali di un tunnel, o tale globalità non è desiderabile, come nel caso di indirizzi
temporanei o per questioni di privacy.
In pratica il bit U/L va posto a 1 quando l'indirizzo EUI-64 è universale (bit U/L a 0), va
invece posto a 0 quando l'indirizzo EUI-64 è locale (bit U/L impostato a 1).
A prima vista, sembra che tale scelta sia stata presa esclusivamente per complicare le
cose. Ma approfondendo l'analisi ha l'effetto opposto. Quando si usano identificatori
univoci globalmente la precedente procedura non costituisce un problema perché viene
eseguita automaticamente dagli host nel momento in cui ricavano il loro indirizzo IPv6
dall'ìndirizzo MAC della propria interfaccia. Quando invece è l'amministratore a dover
configurare manualmente l'identificatore ovviamente perchè non è globale, come nel caso
di un collegamento seriale punto-punto, se non fosse utilizzata l'inversione gli identificatori
IPv6 sarebbero nella forma 0200:0:0:1, 0200:0:0:2, ecc., piuttosto che nella forma
0:0:0:1, 0:0:0:2, che è molto più semplice.
2.9.12 Il vecchio formato degli indirizzi Unicast Globali (Global Unicast Addresses)
Come anticipato all'inizio di questo capitolo, i primi tempi di vita di IPv6 furono abbastanza
travagliati. Da un formato puramente a classi si è passati oggi a un formato (quasi)
completamente privo di vincoli. Tuttavia è molto facile imbattersi in pubblicazioni e articoli
che utilizzano ancora i vecchi schemi e la vecchia terminologia. Con questo paragrafo si
intende riesaminare brevemente l'originale struttura degli indirizzi IPv6, nella speranza di
fare un po' di luce nel caos generato nelle varie transizioni
Gli indirizzi unicast IPv6 erano stati pensati per essere strutturati in modo tale da poter
somigliare a qualcosa come un codice autodescrittivo, cioè, che dall'indirizzo stesso si
potessero ricavare i dati necessari a stabilire informazioni del tipo: “quale autorità aveva
rilasciato l'indirizzo”, “quale fornitore di servizi lo gestisce”, “a quale organizzazione è stato
assegnato”, “in quale posizione geografica si trova l'host”. Per ottenere quanto detto la
struttura dell'indirizzo stesso doveva essere rigidamente definita secondo questo schema:
Topologia pubblica (Public Topology): Questo costituiva il primo livello di
gerarchia dell'indirizzo IPv6 e rappresentava “l'insieme dei fornitori di servizi che
consente l'accesso ad Internet”, in particolare veniva suddiviso in:
La decisione iniziale di strutturare in maniera rigida gli indirizzi IPv6 si è rivelata alquanto
inflessibile. Il nuovo formato (oltre ad avere più senso ndr) consente alle differenti autorità
regionali APNIC, ARIN, LACNIC e RIPE, di decidere come utilizzare e distribuire secondo
il caso primi 45 bit degli indirizzi.
Dall'agosto 2003 con RFC 3587 questi campi e la loro funzione sono stati dichiarati
deprecati. L'unica cosa che è rimasta invariata, sono i tre livelli di gerarchia, ma ogni
livello, oltre ad essere identificato con terminologia differente, può avere qualsiasi
dimensione; l'unica cosa che è rimasta praticamente immutata è l'identificatore
d'interfaccia.
Come nel caso di IPv4, anche in IPv6 alcuni indirizzi vengono riservati per usi particolari,
come ad esempio l'indirizzo di loopback o gli indirizzi privati. Inoltre, come ampiamente
spiegato nei precedenti paragrafi, ancora oggi, l'indirizzamento IPv6 risente dell'iniziale
organizzazione a classi attribuita con l'utilizzo di FP prefisso di formattazione (format
prefix). Sebbene gli ultimi RFC, abbiano reso deprecata tale suddivisione a volte per
motivi storici, a volte per motivi di praticità alcune classi di indirizzi sono state mantenute.
RFC 4291 si riferisce a questi indirizzi definendoli con i termini tipi e sottotipi di indirizzi
unicast.
::/128 – Indirizzo non specificato (unspecified address): E' l'indirizzo con tutti i
bit a zero: 0:0:0:0:0:0:0:0; rappresenta l'assenza dell'indirizzo, e non può
essere assegnato ad alcun nodo. Un caso di possibile utilizzo, è come indirizzo
sorgente di un pacchetto IPv6, inviato da un host in fase di inizializzazione, prima
che abbia appreso il suo reale indirizzo IPv6. Non è possibile utilizzare tali indirizzi
nel campo destinazione dei pacchetti IPv6. Un pacchetto IPv6 con un tale indirizzo
sorgente non potrà mai essere instradato da un router
Indirizzi IPv6 contenenti indirizzi IPv4 (IPv6 Addresses with Embedded IPv4
Addresses): vengono definiti due sottotipi di indirizzi globali unicast IPv6 che
contengono indirizzi IPv4 nei 32 bit meno significativi. Questi indirizzi sono:
La differenza tra i due tipi di indirizzi è subdola, ma molto importante. In ognuno dei
due tipi i primi 80 bit sono sempre impostati a 0, cosicché quando si ha a che fare
con una tale configurazione, salta subito all'occhio che si tratta di un qualche tipo di
indirizzo IPv4. Quindi, gli indirizzi IPv4-Compatibili, sono utilizzati su dispositivi in
grado di gestire anche il protocollo IPv6. Mentre gli indirizzi IPv4-Incorporati
indicano che l'indirizzo proviene da un dispositivo esclusivamente compatibile con
IPv6, e che è stato incorporato in un indirizzo IPv6.
fe80::/64 – Indirizzi Unicast locali al collegamento (Link-Local IPv6 Unicast
Addresses): Sono destinati per indirizzare un singolo collegamento fisico, hanno
validità esclusivamente all'interno di un singolo segmento di rete (per esempio
all'interno di un dominio di brodcast in caso di reti ethernet). Possono essere
utilizzati ad esempio per acquisire automaticamente la configurazione IPv6, oppure
identificare i dispositivi vicini (neighbors), o in assenza di dispositivi di
instradamento come i router. I router non instradano mai i pacchetti che hanno tale
indirizzo come sorgente o destinazione, neanche all'interno dell'organizzazione
stessa.;
fec0::/10 – Indirizzi unicast locali al sito (Site-Local): Questi indirizzi furono
inizialmente previsti per essere utilizzati all'interno di un sito di un'organizzazione, o
per l'intera organizzazione, senza la necessità di specificare un prefisso globale.
Similmente al concetto degli indirizzi privati IPv6. Tale definizione è stata deprecata
nel settembre 2004 in RFC 3879. Lo speciale comportamento previsto per tali
indirizzi in RFC 3513 non è più supportato, e pertanto devono essere trattati come
indirizzi unicast globali.
Questo tipo di indirizzi non ha alcun corrispondente in IPv4. Possiamo definire gli indirizzi
anycast come una via di mezzo tra gli indirizzi unicast e multicast. I primi servono a
identificare un singolo host, i secondi a identificare un gruppo di host, mentre gli indirizzi
anycast consentono di identificare un qualunque host all'interno di un gruppo. Un indirizzo
IPv6 anycast può essere assegnato a differenti interfacce (generalmente appartenenti a
nodi differenti). Quando un pacchetto viene inviato verso un indirizzo anycast questo viene
instradato verso l'interfaccia più vicina alla sorgente, che possiede quell'indirizzo. Con “più
vicina” si intende quell'interfaccia, che in base alle regole del protocollo di instradamento
utilizzato, risulta raggiungibile con un costo minore rispetto a tutte le altre interfacce aventi
lo stesso indirizzo anycast.
Gli indirizzi anycast sono stati previsti per implementare in IPv6, funzionalità che il suo
predecessore non aveva. Per esempio possono essere usati in tutti quei casi in cui è
necessario utilizzare un certo servizio che viene offerto da differenti server o router, non è
importante chi tra loro lo fornirà.
Sintatticamente tra gli indirizzi anycast e gli indirizzi unicast non c'è nessuna differenza,
condividono infatti lo stesso spazio di indirizzamento; in pratica indirizzo unicast, nel
momento in cui viene assegnato a più host diventa automaticamente un indirizzo anycast
La differenza viene fatta a livello software, cioè l'host che possiede un indirizzo anycast
deve essere configurato in modo opportuno.
L'instradamento degli indirizzi anycast come per quelli multicast è per i router
un'operazione abbastanza onerosa; infatti è necessario che le tabelle di instradamento di
ogni router all'interno della rete contengano una voce separata per ogni host anycast
presente, in genere tale tipo di instradamento è chiamato host-route. Tra l'altro ad ogni
indirizzo anycast, è necessario accoppiare un prefisso9 di lunghezza tale da coprire tutte le
sottoreti in cui risiedono gli host ai quali l'indirizzo è stato assegnato.
9 Si ricorda che il concetto di prefisso corrisponde a quello di maschera di sottorete utilizzato in IPv4
Gli indirizzi multicast sono strutturati in quattro campi principali:
Il campo opzioni o flag, formato da quatto bit, che serve a stabilire la tipologia
dell'indirizzo stesso. Il primo bit di tale campo è sempre impostato a 0 gli altri sono
identificati dalle lettere R, P, T. Tali indicazioni sono state aggiornate in base a RFC
4291, documento al quale si rimanda per eventuali altri approfondimenti:
Valore Significato
0 Riservato
Quando l'ambito per una determinata configurazione di bit, è impostato come non
assegnato significa che è disponibile per gli amministratori di rete, per la definizione
di altre regioni multicast.
Un indirizzo multicast non può essere specificato nel comapo sorgente dei pacchetti IPv6,
inoltre questi indirizzi non possono apparire nelle regole di instradamento dei router.
2.10 Esercitazioni di amministrazione avanzata sull'indirizzamento
IP
2.10.1 Configurazione di VLSM e IP Unnumbered
Scenario
Un'Agenzia Turistica Internazionale di piccole dimensioni ha la necessità di configurare la sua
infrastruttura di rete usando un singolo blocco di indirizzi di classe C: 192.168.1.0/24, come mostrato
nell'immagine precedente. Oltre gli indirizzi per le singole interfacce dei router, la società richiede che
vengano allocati 25 indirizzi per gli host su ogni singola LAN, ma desidera anche riservare un numero
sufficiente di indirizzi per futuri ampliamenti.
Affinché ogni sottorete delle singole LAN possa indirizzare 25 host è necessario riservare minimo 5 bit alla
porzione host degli indirizzi. Infatti, con 5 bit è possibile indirizzare un massimo di 30 host, 25 – 2,
rimarrebbero così 5 indirizzi liberi per sottorete, per futuri ampliamenti. I 3 bit dell'ultimo ottetto verranno
utilizzati per creare le sottoreti. In particolare con 3 bit è possibile creare 2 3 = 8 sottoreti (utilizzando il
comando ip subnet zero). Poiché l'indirizzo iniziale della rete è di classe C, la lunghezza predefinita
del prefisso è 24 bit, a questi devono essere aggiunti i 3 bit, presi dalla porzione host dell'indirizzo,
pertanto la maschera di sottorete avrà lunghezza pari a 27 bit, che consente di creare le seguenti
sottoreti:
Inoltre per massimizzare il numero di indirizzi, la sottorete zero è stata a sua volta suddivisa in 8 sottoreti
punto-punto, quindi usando una maschera di sottorete di 30 bit, per indirizzare le intefacce WAN dei router.
Passo 1. Ovviamente, le scelte fatte per le sottoreti impongono l'uso della sottorete zero, pertanto è
richiesto sui router il comando ip subnet-zero.
Su tutti i router configurare il protocollo di instradamento RIPv1, e abilitare gli aggiornamenti su
tutte le interfacca attive con i comandi network appropriati. Essendo RIP un protocollo a classi e
considerato si sta utilizzando un'unica rete di classe C per tutta l'organizzazione, la
configurazione RIP è identica per tutti i tre router:
Passo 2. Eseguire il comando show ip route sul router Vista, come mostrato nel seguente esempio
<output omitted>
Nella tabella di instradamento del router Vista è assente la sottorete 192.168.1.32 /27.
Anche gli altri router hanno tabelle di instradamento incomplete. Questo avviene perché è stato
utilizzato RIPv1 insieme a VLSM. VLSM non è supportato dai protocolli a classi come RIPv1 o
IGRP. Tali protocolli non inviano le maschere di sottorete nei messaggi di aggiornamento, ed è
proprio questo che causa il problema nel caso dell'esempio. Per poter fare in modo che
l'instradamento funzioni nella rete è necessario abilitare RIPv2.
Passo 3. Su ognuno dei tre router abilitare gli aggiornamenti RIPv2, e disabilitare l'aggregazione
automatica, come mostrato di seguito:
Vista#show ip route
<output omitted>
Gateway of last resort is not set
192.168.1.0/24 is variably subnetted, 4 subnets, 2 masks
C 192.168.1.64/27 is directly connected, Ethernet0
R 192.168.1.32/27 [120/1] via 192.168.1.6, 00:00:12, Serial1
[120/1] via 192.168.1.2, 00:00:13, Serial0
C 192.168.1.0/30 is directly connected, Serial0
C 192.168.1.4/30 is directly connected, Serial1
Si osservi che il router Vista riceve adesso due rotte di equal costo 192.168.1.32/27 da
entrambi i router SanJose1 e SanJose2.
Passo 4. Sebbene l'uso delle maschere di sottorete a lunghezza variabile VLSM, abbia ridotto lo spreco di
indirizzi IP, utilizzando IP unnumbered è possibile evitare di dover assegnare indirizzi IP ai
collegamenti WAN punto-punto consentendo un risparmio ancora maggiore di indirizzi IP.
Procediamo pertanto alla configurazione di IP unnumbered su ogni interfaccia seriale WAN dei
router:
Si osservi come entrambe le interfacce seriali del router Vista utilizzino l'indirizzo IP
dell'interfaccia fastethernet 0/0.
<output omitted>
Passo 5. Quando IP unnumbered viene configurato sui collegamenti seriali punto-punto, solo le interfacce
LAN richiedono gli indirizzi IP. Poiché ognuno dei collegamenti LAN utilizza la stessa maschera
di sottorete a 27 bit, non è necessario utilizzare schemi VLSM, pertanto, inquesta configurazione
i protocolli di instradamento a classi tornerebbero a funzionare.
2.10.2 Esercizi con VLSM
Esercizio 1
Creare uno schema di indirizzamento usando maschere di sottorete a lunghezza variabile (VLSM). L'indirizzo
assegnato è di classe C 192.168.10.0 e deve supportare tutte le reti presenti in figura. L'uso di IP
unnumbered o NAT non è permesso.
Per indirizzare 60 host sono necessari minimo 6 bit: 2 6 – 2 = 62 restano 2 bit per le sottoreti. La rete
192.168.10.0/24 viene partizionata in 4 reti con prefisso di lunghezza di 26 bit
Rete 192.168.10.0/24
Configurazione Bit Sottorete Note
... 00 000000 192.168.10.0/26 Indirizza la LAN con 60 host
... 01 000000 192.168.10.64/26 LAN 24 host + Scalabilità
... 10 000000 192.168.10.128/26 LAN 12 host + WAN + Scalabilità
... 11 000000 192.168.10.193/26 Libera
Per indirizzare 24 host sono necessari minimo 5 bit: 25 – 2 = 30. Si procede partizionando ulteriormente la
rete 192.168.10.64/26, resta un solo bit per identificare la sottorete:
Rete 192.168.10.64/26
Configurazione Bit Sottorete Note
... 01 0 00000 192.168.10.64/27 Indirizza la LAN con 24 host
... 01 1 00000 192.168.10.96/27 Libera per espansione
Per indirizzare 12 host sono necessari minimo 4 bit: 24 – 2 = 14. Si procede partizionando ulteriormente la
rete 192.168.10.128/26. In questo caso otteniamo 4 sottoreti da 14 host ciascuna. Con le prime due
indirizziamo i collegamenti per le due LAN da 12 host. La terza verrà lasciata libera per espansioni. La
quarta verrà ulteriormente partizionata per indirizzare i collegamenti WAN
Rete 192.168.10.128/26
Configurazione Bit Sottorete Note
... 10 00 0000 192.168.10.128/28 Prima LAN a 12 host
... 10 01 0000 192.168.10.144/28 Seconda LAN a 12 host
... 10 10 0000 192.168.10.160/28 Libera per espansione
... 10 11 0000 192.168.10.176/28 Indirizzare collegamenti WAN
Per i collegamenti WAN sono necessarie 3 sottoreti di maschera /30. Partizioniamo ulteriormente l'ultima
sottorete della tabella precedente. Otteniamo 4 sottoreti punto-punto l'ultima verrà riservata per future
espansioni.
Rete 192.168.10.176/28
Configurazione Bit Sottorete Note
... 10 11 00 00 192.168.10.176/30 Prima WAN
... 10 11 01 00 192.168.10.180/30 Seconda WAN
... 10 11 10 00 192.168.10.184/30 Terza WAN
... 10 11 11 00 192.168.10.188/30 Libero per espansione
Sebbene si sarebbe potuto procedere a soluzioni diverse, questa sembra quella ottimale. Forse, riflettendo
meglio, l'ideale sarebbe stato lasciare libera la sottorete 192.168.10.64/26 per ulteriori espansioni, e
scalare il resto della suddivisione di una riga nella prima tabella. Questo perché nel caso in cui si rendessero
necessari più host nella rete 192.168.10.0/26 si sarebbe potuto procedere all'accorpamento di questa rete
con192.168.10.64/26 in una rete 192.168.10.0/25. Si può notare come la scelta di lasciare libera la
sottorete successiva a quelle occupate sia stata presa in tutte le suddivisioni successive. Tale scelta in questo
caso si è resa necessaria poiché il numero totale di host contenuto in ogni sottorete è a limite con quello degli
host richiesti per ogni sottorete.
Esercizio 2
Creare uno schema di indirizzamento usando maschere di sottorete a lunghezza variabile (VLSM). L'indirizzo
assegnato è CIDR 192.168.24.0/22 e deve supportare tutte le reti presenti in figura. L'uso di IP unnumbered,
NAT o della sottorete /31 (disponibile a partire dalla versione di IOS 12.2 non sono permessi.
Per indirizzare 400 host sono necessari minimo 9 bit: 29 – 2 = 510, essendo l'indirizzo CIDR resta libero 1 bit
per le sottoreti. Possiamo quindi creare 2 sottoreti /23 di 510 host ciascuna:
Rete 192.168.24.0/22
Configurazione Bit Sottorete Note
192. 168. 000110 0 0. 192.168.24.0/23 Lan a 400 host
00000000
192. 168. 000110 1 0. 192.168.26.0/23 Ulteriori sottoreti
00000000
L'ultima sottorete della tabella precedente verrà utilizzata per indirizzare la LAN con 200 host. Per tale LAN
sono necessari minimo 8 bit: 28 – 2 = 254. Anche qui rimane un solo bit per le sottoreti. Pertanto otteniamo 2
sottoreti /24 di 254 host ciascuna:
Rete 192.168.26.0/23
Configurazione Bit Sottorete Note
192. 168. 000110 1 0. 192.168.26.0/24 Lan a 200 host
00000000
192. 168. 000110 1 1. 192.168.28.0/24 Ulteriori sottoreti
00000000
A questo punto restano da indirizzare le du reti da 50 host e i collegamenti WAN. Per indirizzare 50 host
sono necessari almeno 6 bit: 26 – 2 = 62 . Potremmo in questo caso suddividere la seconda sottorete della
tabella precedente in due sottoreti /25 quindi la prima di queste in due /26, anche perché il numero di host
liberi per future espansioni è di circa 12 host per sottorete, tali valori sono meno stringenti di quelli
dell'esempio precedente.
Rete 192.168.28.0/23
Configurazione Bit Sottorete Note
192. 168. 28. 00 000000 192.168.28.0/26 Prima LAN 50 host
192. 168. 28. 01 000000 192.168.28.64/26 Seconda LAN 50 host
Resta libera la sottorete 192.168.28.128/25 da cui dobbiamo ricavare i tre collegamenti WAN. Possiamo
pendere le ultime sottoreti possibili:
Rete 192.168.28.128/25
Configurazione Bit Sottorete Note
192. 168. 28. 1 111 00 00 192.168.28.240/30 Prima WAN
192. 168. 28. 1 111 01 00 192.168.28.244/30 Seconda WAN
192. 168. 28. 1 111 10 00 192.168.28.248/30 Terza WAN
192. 168. 28. 1 111 11 00 192.168.28.252/30 Libera per estensioni
Se è vero che in questa configurazione siamo riusciti a mantenere liberi quasi 106 indirizzi, è anche vero che
questi sono distribuiti su 3 sottoreti non aggregabili. Il risultato non sembra del tutto ottimale come quello
ottenuto nell'esempio precedente. Purtroppo a volte anche utilizzando le VLSM bisogna scendere a
compromessi.
2.10.3 Uso di DHCP e IP helper address
Scenario
I client sulle reti 192.168.3.0/24 e 10.0.0.0/8 richiedono l'accesso ad un servizio DHCP, per poter
ottenere la configurazione IP automaticamente. E' necessario configurare il router SanJose1 affinché serva
entrambe le reti utilizzando due gruppi di intervalli (pool) di indirizzi separati. Infine è necessario configurare
l'interfaccia di fastethernet0/0 del router Vista per inoltrare i pacchetti di broadcast UDP, incluse le
richieste DHCP, verso SanJose1.
Passo 1. Configurare gli host in modo tale da ottenere la configurazione IP da un servar DHCP.
Passo 2. Configurare il protocollo RIP v2 sui due router SanJose1 e Vista. Accertarsi di abilitare gli
aggiornamenti su tutte le interfacce attive:
Usare i comandi ping e show ip route per verificare che la configurazione sia stata
effettuata correttamente e che ci sia connettività tra i due router;
Adesso configuriamo il primo gruppo di indirizzi da rilasciare per la rete 10.0.0.0/8. Il nome di
tale gruppo sarà 10-net:
Passo 4. L'Agenzia Turistica internazionale, utilizza i primi dieci indirizzi del gruppo definito in precedenza
per indirizzare in maniera statica i router e alcuni server. Pertanto gli indirizzi da 10.0.0.1 a
10.0.0.10 dovranno essere esclusi dall'intervallo DHCP definito, in modo tale che il server
DHCP non provi a rilasciarli:
Passo 5. Ritorniamo ancora in modalità configurazione DHCP, per assegnare al gruppo le altre opzioni,
cioè gli indirizzi del gateway prefdefinito, del server DNS, del server WINS e il nome di dominio:
Passo 6. Il server DHCP è pronto per essere provato. Rilasciare e rinnovare la configurazione IP per
l'Host A. Questo adesso dovrebbe acquisire dinamicamente il primo indirizzo IP disponibile, cioè
10.0.0.11. Controllare la configurazione IP dell'host A con i comandi messi a disposizione dal
sistema operativo10 per verificare che abbia ricevuto l'indirizzo IP, maschera di sottorete e tutti gli
altri parametri in modo corretto.
Passo 7. Poiché anche gli host sulla rete 192.168.3.0/24 richiedono il servizio DHCP, è necessario
che venga definito sul router SanJose1 un altro gruppo DHCP, con indirizzi e opzioni appropriati
per questa rete:
L'agenzia turistica ha recentemente installato dei telefoni IP sulla rete 192.168.3.0. Questi
telefoni richiedono che il server DHCP rilasci anche l'indirizzo IP di un server TFTP per
l'auto-configurazione. Tale server ha indirizzo 10.0.0.5.
Il server DHCP presente nell'IOS Cisco non ha un comando diretto per definire una tale
configurazione. Tuttavia è possibile comunque fare in modo che il server DHCP invii tale
informazione. Praticamente, ogni parametro di configurazione che il server DHCP rilascia viene
identificato da un codice numerico (option number) ad esempio: il codice 3 identifica l'ndirizzo del
gateway predefinito, 50 l'indirizzo IP, e così via11. I telefoni IP Cisco, si aspettano di ricevere
10 Per gli SO Microsoft fino a Windows ME usare il comando winipcfg da windows NT in su utilizzare il comando
ipconfig /all. Per Linux usare ifconfig
11 E' possibile trovare tutti i codici assegnati ai parametri di configurazione rilasciati da un server DHCP a partire da
RFC 2132
l'indirizzo del server TFTP con codice 150. Pertanto è possibile configurare il server DHCP,
specificando il numero di codice seguito dall'indirizzo del server, tale sistema di configurazione è
chiamato raw option number:
Passo 8. La configurazione del server DHCP è praticamente completata. Tuttavia gli host della rete
192.168.3.1 usano messaggi UDP in broadcast per trovare l'indrizzo IP del sever DHCP, e il
router Vista non è ancora configurato per inoltrare tali messaggi. Affinché il servizio DHCP
funzioni correttamente anche sulla LAN del router Vista è necessario configurare la sua
interfaccia FastEthernet per inoltrare i pacchetti UDP verso SanJose1:
Sebbene il comando ip dhcp excluded-address non sia stato impartito sul router
SanJose1, per rimuovere l'indirizzo 192.168.3.1, già assegnato all'interfaccia del router Vista,
questo non è un problema perché, il server DHCP dell'IOS prima di assegnare un indirizzo IP,
verifica che questo non sia già stato assegnato. Come risulta evidente dal seguente:
Scenario
L'agenzia Turistica Internazionale, necessita approssimativamente 100 indirizzi IP privati, che devono essere
traslati uno-a-uno verso un intervallo di indirizzi pubblici di classe C, allocati dal fornitore ISP1.
Passo 1. Prima di iniziare la configurazione, verificare usando ping la connettività, tra il router NAT e il
router ISP1, quindi tra la gli host interni e il gateway predefinito e infine tra il WebServer e il
router ISP1;
Passo 2. Poiché non verrà abilitato nessun protocollo di instradamento è necessario configurare una rotta
predefinita, verso Internet sul router NAT:
D'altra parte anche il router ISP1 deve essere in grado di raggiungere gli host sulla rete
192.168.0/24, per poter instradare i pacchetti di ritorno o comunque richieste esterne.
Tuttavia gli indirizzi di tali host saranno traslati sugli indirizzi IP pubblici 200.200.100.128/25.
E' necessario quindi impostare sul router ISP, una rotta statica verso la rete
200.200.100.128/25:
Passo 3. Creare una lista di accesso standard che definisce gli indirizzi IP di tutti gli utenti interni:
Passo 4. E' necessario adesso configurare lo spazio di indirizzi pubblici e privati che dovranno essere
utilizzati dal NAT, quindi impostare la traslazione:
Nel primo comando viene definito l'intervallo (pool) di indirizzi pubblici a cui viene associato il
nome di public, il secondo comando associa a public la lista di accesso 1 definita in
precedenza, che contiene l'intervallo di indirizzi da associare. Il NAT dinamico viene eseguito per
qualsiasi intervallo di indirizzi privati configurato, per i quali non siano stati già state definite
traslazioni statiche. Si noti che l'intervallo di indirizzi IP pubblici è superiore all'intervallo degli
indirizzi IP privati 128 contro 254. Pertanto se nella rete privata ci sono più di 128 host attivi,
potranno accedere a internet soltanto i primi 128. Gli altri dovranno aspettare che scada per
inattività il contatore che indica al router per quanto tempo deve mantenere l'associazione,
oppure utilizzare il “NAT con overloading” o PAT
Passo 5. Adesso è necessario dichiarare al router qual'è l'interfaccia interna, cioè quella in cui si trovano
gli host con gli indirizzi privati da traslare, e qual'è l'interfaccia esterna, quella cioè sulla quale
dovrà effettuare la traslazione con gli indirizzi pubblici. In topologie di rete più complesse è
possibile avere più interfacce interne:
Ci sono diversi comandi show che possono essere utilizzati per verificare il funzionamento del
NAT come: show ip nat translations, show ip nat statistics e infine il comando
show ip nat translations verbose.
Da uno degli host interni eseguire un ping verso il WebServer (200.200.50.2), per verificare
che sia raggiungibile, provare se possibile anche a collegarsi tramite browser. Eseguire sul
router NAT i tre comandi precedenti. Un esempio di risultato è mostrato in basso:
Si osservi come l'indirizzo privato 192.168.1.5 sia stato traslato dinamicamente nell'indirizzo
pubblico 200.200.100.129, il primo indirizzo disponibile nel pool di indirizzi “public”. Il
comando clear ip nat translation * può essere utilizzato per cancellare tutte le
traslazioni NAT dinamiche:
Scenario
L'agenzia Turistica Internazionale, sta pianificando il lancio di un sito Web informativo, che verrà installato su
un di un server interno e che dovrà essere accessibile al pubblico. Tuttavia l'unico indirizzo di Classe C
disponibile, non è sufficiente al fabbisogno di utenti e dispositivi della rete. Pertanto la rete dovrà essere
configurata in modo tale da consentire a tutti gli utenti interni di accedere a Internet e a tutti gli utenti esterni di
accedere al server Web, utilizzando quindi NAT statico e PAT. Gli utenti interni dovranno essere traslati
verso un unico indirizzo pubblico e tutti gli utenti esterni dovranno accedere al server Web, tramite un
indirizzo IP pubblico.
Passo 1. Prima di iniziare la configurazione, verificare usando ping la connettività, tra il router NAT e il
router ISP1, quindi tra la gli host interni e il gateway predefinito e infine tra il WebServer e il
router ISP1;
Passo 2. Poiché non verrà abilitato nessun protocollo di instradamento è necessario configurare una rotta
predefinita, verso Internet sul router NAT:
Passo 3. Creare una lista di accesso standard che definisce gli indirizzi IP di tutti gli utenti interni:
NAT(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Passo 4. poiché verrà utilizzato il singolo indirizzo indirizzo pubblico (inside global) 200.200.100.1, che
verrà utilizzato per rappresentare tutti gli host interni con indirizzo privato 192.168.1.x, è
necessario applicare la lista di accesso e configurare il NAT con overload o PAT sull'interfaccia
serial0/0 del router NAT.
Questa configurazione consente agli utenti interni di accedere a Internet, ma un utente esterno
non può direttamente iniziare una comunicazione con un utente interno;
Passo 5. Specifichiamo adesso quali sono le interfaccie interna ed esterna per il NAT.
Usare il comando ping 200.200.50.2 da un PC interno alla rete. Quindi sul router NAT usare
i comandi:
Hits: 25 Misses: 30
Expired translations: 20
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 1 interface Serial0/0 refcount 5
Passo 6. Gli utenti Internet, necessitano di accedere al Web Server informativo tramite l'indirizzo
200.200.100.1 sulla porta 80. E' necessario quindi configurare il PAT, cosicchè gli utenti siano
automaticamente ridirezionati verso il Web Server all'indirizzo 192.168.1.5, quando cercano di
collegarsi all'indirizzo IP 200.200.100.1 tramite un browser Web:
L'opzione extendable alla fine di questo comando NAT statico indica al router di riutilizzare
l'indirizzo pubblico e di salvare le informazioni sufficienti sulle sessioni di comunicazione, in
modo tale da poter distinguere le differenti traslazioni. Questo comando ha l'effetto di traslare
tentativi esterni di accesso alla porte 80 con indirizzo 200.200.100.1 su tentativi interni di
accesso alla porta 80 e indirizzo 192.168.1.5. Il processo di eseguire traslazioni NAT in base
al valore della porta del pacchetto in ingresso è chiamato port forwarding.
Passo 7. Una corretta configurazione del port forwarding è indicata dal fatto che si è in grado di
raggiugere dall'esterno il Web server.