Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduzione
Nei due precedenti moduli abbiamo ampiamente trattato alcune delle caratteristiche che
possono rendere una rete estremamente scalabile e affidabile, come il bilanciamento del
carico e l'aggregazione, ognuna delle quali comunque funziona in maniera differente in
base al protocollo di instradamento utilizzato. Un protocollo di instradamento è
quell'insieme di regole che governano lo scambio delle informazioni di instradamento dei
pacchetti tra i router. Grazie alla popolarità e all'architettura aperta, la suite di protocolli
TCO/IP ha consentito lo sviluppo di una decina di ottimi protocolli di instradamento,
ognuno dei quali ha tutta una serie di vantaggi e svantaggi. Poiché la scelta del protocollo
di instradamento è fondamentale per ottenere buone prestazioni dalla rete, è necessario
comprendere le caratteristiche di ognuno di essi in base ai seguenti parametri:
Tempi di convergenza;
Caratteristiche che aumentano la scalabilità;
Risorse impiegate (Overhead);
Uno dei compiti principali di un router è quello di determinare qual'è il miglior percorso
verso una specifica destinazione. I router possono apprendere un percorso o una rotta in
due modi diversi: tramite la configurazione diretta oppure tramite i protocolli di
instradamento dinamico. Tutti i percorsi appresi vengono memorizzati in una struttura dati
tabellare, detta tabella di instradamento (routing table), che viene memorizzata in RAM. La
tabella di instradamento contiene l'elenco di tutti i percorsi migliori verso le destinazioni
conosciute, e viene utilizzata dai router per prendere le decisioni di inoltro in base
all'intestazione di livello 3 dei pacchetti. Il comando per visualizzare la tabella di
instradamento per il protocollo IP, sui router Cisco è show ip route.
Nella tabella di instradamento sono elencati tutti i prefissi delle reti conosciute dal router
associati all'interfaccia di uscita (outbound). L'esempio precedente riporta la tabella di
instradamento del router RTA. L'instradamento di un pacchetto destinato ad esempio,
all'host 192.168.4.46, comporta l'estrazione del prefisso di rete dall'indirizzo, in questo
caso 192.168.4.0/24, quindi la ricerca nella tabella di instradamento per ricavarne
l'interfaccia di inoltro. Nell'esempio il pacchetto verrà inoltrato sull'interfaccia ethernet0.
Nel caso in vece di un pacchetto destinato all'host 10.3.21.5, questo verrà inoltrato
sull'interfaccia Serial0 (S0).
I router scartano i pacchetti destinati a reti non presenti nella tabella di instradamento.
Esistono due metodi per popolare la tabella di instradamento di un router con altre rotte:
Tramite configurazione manuale di rotte statiche (Static routing) verso una o più
destinazioni;
Attivando sul router un protocollo di instradamento dinamico; in questo caso il
router scambiando informazioni con i vicini, riesce automaticamente a risalire ai
percorsi attraverso la rete
Nel caso di reti che non necessitano di un numero elevato di rotte verso le diverse
destinazioni diventa conveniente utilizzare rotte statiche. In realtà le rotte statiche
vengono utilizzate anche in reti di grandi dimensioni; come ad esempio nei router di livello
accesso di una rete di tipo stub. Nelle reti di tipo stub infatti tutto il traffico in ingresso e in
uscita passa attraverso un unico punto. La figura successiva mostra il router RTZ,
configurato con una rotta statica verso la rete 172.24.4.0/24.
Per configurare una rotta statica su un router Cisco, viene utilizzato il comando
ip route, con la seguente sintassi:
Router(config)#
ip route destination-prefix destination-prefix-mask
{address | interface} [distance] [tag tag] [permanent]
Parametro Descrizione
destination-prefix L'indirizzo IP della rete o sottorete di destinazione.
destination-prefix-mask La maschera di sottorete della rete o sottorete di destinazione.
tag tag (Opzionale) E' un parametro che può essere utilizzato come valore di
confronto per controllare la ridistribuzione delle rotte.
(Opzionale). Se specificato impedisce che la rotta venga rimossa dalla
permanent tabella di instradamento anche se l'interfaccia di inoltro venisse
disattivata.
Per aggiungere una rotta manualmente alla tabella di instradamento è possibile utilizzare
una delle due forme del comando ip route command:
RTA(config)# ip route 10.6.0.0 255.255.0.0 s1
o
RTA(config)# ip route 10.7.0.0 255.255.0.0 10.4.0.2
Entrambi i comandi aggiungono una rotta statica nella tabella di instradamento del router
RTA; Nella prima forma viene dichiarato esplicitamente che tutti i pacchetti destinati alla
rete 10.6.0.0/16 dovranno essere inoltrati sull'interfaccia s1; la seconda forma invece
dichiara che i pacchetti diretti verso la rete 10.7.0.0/16 dovranno essere instradati
verso l'indirizzo 10.4.0.2, appartenente all'interfaccia del router successivo lungo il
cammino del pacchetto. Sebbene entrambe le forme siano perfettamente valide, sono
concettualmente differenti. Si osservi a tal proposito il risultato del comando show ip
route del router RTA:
Si può notare come entrambe le rotte, sia quella verso 10.6.0.0, che quella verso
10.7.0.0/16 vengano contrassegnate con la lettera S, ciò a sottolineare che si tratta di
rotte statiche. Tuttavia, mentre la prima viene visualizzata a video con la stessa
formattazione usata per le rotte direttamente collegate. L'altra viene invece visualizzata
con una formattazione simile a quella delle rotte acquisite dinamicamente. La differenza
principale tra i due tipi di comandi sta nel modo in cui le rotte definite vengono trattate
quando si utilizzano protocolli di instradamento dinamico:
Stessa cosa succede per l'altro tipo di rotte statiche, quando il router non riesce a trovare,
per l'indirizzo specificato, un percorso valido per inoltrare i pacchetti.
In metodo alternativo per evitare che le rotte statiche vengano rimosse dalla tabella di
instradamento è quella di definirle su un'interfaccia di loopback.
Di regola, le rotte statiche definite utilizzando l'indirizzo del router successivo del percorso
(il router di next-hop), dovrebbero sempre essere impiegate nel caso di reti di tipo
multi-accesso (multi-access), come ad esempio le reti ethernet. Questo perché nelle reti
multi-accesso, su ogni segmento di rete possono essere presenti più di due router, in
questi casi è necessario specificare esattamente quale dei router vicini deve ricevere il
traffico per una certa rete, e l'unico modo per farlo è usare l'indirizzo della sua interfaccia.
Esistono diversi protocolli di instradamento dinamico progettati per essere utilizzati su reti
TCP/IP. In genere vengono classificati per ambito di funzionamento. I protocolli progettati
per essere utilizzati all'interno di un'organizzazione o sistema autonomo prendono il nome
di protocolli di instradamento interni o IGP interior gateway protocols, mentre quelli
progettati per instradare il traffico tra sistemi autonomi prendono il nome di protocolli di
instradamento esterni o EGP exterior gateway protocols. La tabella seguente visualizza i
protocolli più utilizzati per reti TCP/IP:
In questo modulo concentreremo la nostra attenzione sui protocolli IGP. Nei moduli
successivi invece analizzeremo a fondo i protocolli EGP, con particolare riferimento a
BGP4.
algoritmi vettore-distanza
algoritmi sullo stato del collegamento.
L'immagine precedente mette in risalto una particolare voce della tabella di instradamento
vista in precedenza. Nella fattispecie il percorso verso la rete 192.168.1.0/24. Nelle voci
nella tabella di instradamento che si riferiscono a rotte non direttamente connesse vengono
visualizzati due numeri tra parentesi quadre: [distanza amministrativa/metrica].
Nell'esempio, [120/3] significa che la distanza amministrativa per quella particolare rotta
è 120 mentre la sua metrica è 3. I router valutano la bontà di un percorso di rete in base a
questi due numeri.
I router utilizzano la metrica per valutare o misurare una rotta. Quando una rete è
raggiungibile tramite differenti percorsi e questi sono stati annunciati tramite lo stesso
protocollo di instradamento, il router considera il percorso con metrica inferiore quello
migliore per raggiungere quella rete. L'esempio precedente mostra che il percorso è stato
appreso tramite il protocollo RIP, è infatti contrassegnato con la lettera R, la metrica
utilizzata dal protocollo RIP si basa sul numero di nodi intermedi o salti (hop), che il
pacchetto deve attraversare prima di arrivare a destinazione. L'esempio in questione riporta
una metrica pari a 3, che sta a indicare che per raggiungere la di destinazione il pacchetto
dovrà ancora attraversare altri tre router. Il valore di metrica viene calcolato in maniera
differente da ogni protocollo di instradamento. Per esempio il protocollo EIGRP utilizza
un'espressione matematica abbastanza complessa, parametrizzata su differenti variabili tra
le quali, larghezza di banda e affidabilità del collegamento.
Quando, invece, un router riceve aggiornamenti sulla stessa rete, provenienti da differenti
protocolli di instradamento, non può utilizzare la metrica per confrontare le due rotte.
Questa come detto, dipende dal tipo di protocollo di instradamento, e metriche differenti
non possono essere confrontate. In questo caso il router utilizza la distanza amministrativa,
in particolare sceglie la rotta annunciata con il protocollo di instradamento con distanza
amministrativa inferiore. La distanza amministrativa è praticamente una misura
dell'affidabilità delle rotte annunciate da un certo protocollo di instradamento. Per esempio,
nel caso i cui il router ricevesse due annunci su una stessa rotta, uno proveniente dal
protocollo RIP, l'altro dal protocollo EIGRP, verrebbe scelta la rotta annunciata dal
protocollo EIGRP, perchè ha una metrica pari a 90, mentre il protocollo RIP ha metrica 120.
Il sistema operativo Cisco IOS, assegna ad ogni protocollo di instradamento dei valori di
distanza amministrativa preimpostati. Piccoli valori indicano un protocollo di instradamento
più affidabile.
Generalmente gli algoritmi vettore-distanza, prevedono che i router vicini si scambino per
intero la loro tabella di instradamento a intervalli regolari. Inoltre, i protocolli
vettore-distanza più semplici, come RIP e IGRP, non prevedono che tra i router vicini la
comunicazione avvenga in maniera diretta, le informazioni di instradamento vengono
pertanto inviate verso indirizzi broadcast o multicast.
I vantaggi dei protocolli vettore-distanza, rispetto ai protocolli a stato del collegamento sono
due, e cioè sono relativamente più semplici da configurare e richiedono meno risorse in
termini di potenza di calcolo e memoria. Inoltre il protocollo RIPv1 ha anche il vantaggio di
essere universalmente implementato e supportato in qualsiasi dispositivo di instradamento.
E' spesso utilizzato come denominatore comune nelle reti che utilizzano dispositivi meno
recenti (legacy) o di differenti produttori.
I protocolli a stato del collegamento sono basati sull'algoritmo di Dijkstra, chiamato anche
SPF shortest path first. Il protocollo a stato del collegamento più utilizzato è OSPF Open
Shortest Path First, che verrà esaminato in dettaglio nei moduli successivi.
I router che utilizzano protocolli a stato del collegamento hanno un esplicita e diretta
visione dello stato di tutte le interfacce dei router della rete. In pratica ogni router
costruisce una base di dati contenente lo stato di tutti i collegamenti tra ogni router in una
determinata area. In altre parole ogni router acquisisce le informazioni necessarie a creare
una mappa topologica della rete. Utilizzando questa mappa, o base di dati dello stato dei
collegamenti (link-state database), il router esegue l'algoritmo SPF per poter identificare i
percorsi migliori da inserire nella tabella di instradamento. L'algoritmo SPF per ognuno dei
percorsi di rete calcola un albero di attraversamento avente come nodo radice il router
locale.
Piuttosto che apprendere i percorsi inviando l'intera tabella di instradamento, i router che
utilizzano protocolli a stato del collegamento, annunciano, tramite messaggi chiamati LSA
link-state advertisements, lo stato dei propri collegamenti direttamente a tutti gli altri router
dell'area interessata, cosicché ognuno di essi possa popolare la propria base di dati dei
collegamenti. A differenza dei protocolli vettore-distanza, i protocolli a stato del
collegamento (link-state) prevedono che tra i router adiacenti o vicini si formi una speciale
relazione, in modo tale da assicurare che i messaggi LSA vengano scambiati
correttamente ed efficientemente.
Lo scambio dei messaggi LSA avviene con il metodo del flood1 letteralmente inondazione.
All'inizio quando tutti i router necessitano di popolare la propria base di dati dello stato dei
collegamenti (link-state database), ognuno di essi, usando i messaggi LSA, si scambia le
informazioni sullo stato del collegamento. Durante il funzionamento a regime, cioè quando
tutti i router hanno raggiunto la convergenza, è previsto lo scambio dei messaggi LSA a
intervalli regolari, oppure quando un router rileva una variazione alla topologia di rete. In
quest'ultimo caso, il router invia immediatamente un messaggio LSA contenente un
aggiornamento parziale. Gli aggiornamenti parziali contengono esclusivamente le
informazioni sui collegamenti che sono cambiati e non l'intera tabella di instradamento,
come avviene invece con i protocolli vettore-distanza. Gli aggiornamenti parziali,
consentono un utilizzo più efficiente della banda, soprattutto in caso di collegamenti WAN
relativamente lenti. Grazie ai messaggi LSA di aggiornamento immediato, i router che
utilizzano protocolli a stato del collegamento vengono immediatamente informati delle
variazioni alla topologia di rete. Con i protocolli vettore-distanza invece un router apprende
le eventuali variazioni alla topologia di rete dal suo vicino solo dopo la scadenza degli
intervalli di aggiornamento impostati.
Oltre ad avere tempi di convergenza estremamente ridotti e un miglior utilizzo della banda
passante rispetto ai protcolli vettore-distanza, i protocolli a stato del collegamento
supportano: CIDR classless intedomain routing (instradamento senza classi), VLSM
variable-length subnet mask (maschere di sottorete a lunghezza variabile) e supernetting
(l'aggregazione delle rotte). Questo li rende un ottima scelta per infrastrutture di rete di
grandi dimensioni. Nei fatti comunque, i protocolli a stato del collegamento, si rivelano
superiori ai protocolli vettore-distanza, in reti di qualsiasi dimensione. Tuttavia, i limiti di
utilizzo dei protocolli a stato del collegamento sono dettati dai quelli che sono i due loro
principali svantaggi:
Non è ne fattibile ne desiderabile che ogni router mantenga nella sua tabella di
instradamento le rotte verso ogni possibile destinazione. Sarebbe più logico utilizzare una
rotta predefinita o gateway di ultima risorsa (last resort). Tale rotta verrebbe utilizzata dal
router esclusivamente per inoltrare i pacchetti cui indirizzi di destinazione non sono inclusi
tra le voci della tabella di instradamento. Il router potrebbe utilizzare la rotta predefinita per
instradare il pacchetto verso un altro router che a sua volta potrebbe conosce una rotta
verso quella destinazione o utilizzare a sua volta una rotta predefinita verso un altro router,
e così via, fino a quando o il pacchetto raggiunge la destinazione o viene scartato per
inesistenza della rotta.
Per configurare una rotta predefinita sui router Cisco è possibile utilizzare due differenti
comandi: ip route 0.0.0.0 0.0.0.0 o ip default-network.
Il modo più semplice per definire su un router una rotta predefinita è quello di creare una
rotta statica usando come rete di riferimento 0.0.0.0/0:
Router(config)#
ip route 0.0.0.0 0.0.0.0 [next-hop-ip-address | exit-interface]
La rete 0.0.0.0/0 sui router Cisco ha un significato particolare. Significa qualsiasi rete,
in pratica qualsiasi indirizzo di destinazione corrisponde con essa. Questo perché, la
sequenza di 32 bit a zero, significa che nessun bit dell'indirizzo di destinazione deve avere
esatto corrispondente.
La rotta per 0.0.0.0/0 è spesso chiamata anche quad-zero. In reti di dimensioni limitate
è possibile configurare manualmente su ogni router la rotta predefinita utilizzando questo
sistema. Tuttavia, in reti particolarmente complesse, è auspicabile che i router si scambino
dinamicamente tra loro questa informazione. Il modo in cui avviene questo scambio varia
in base al tipo di protocollo di instradamento utilizzato; una cattiva configurazione può
causare problemi di difficile individuazione. Generalmente una rotta predefinita punta
verso una rete al di fuori di quella aziendale, pertanto non è possibile per i router interni
rilevarne eventuali problemi.
Quando viene utilizzato il protocollo RIP, la rotta statica 0.0.0.0/0 viene propagata
automaticamente a tutti i router. L'unico modo per evitare che venga inclusa negli
aggiornamenti RIP, è quello di utilizzare un filtro che la blocchi, un tale sistema sarà
analizzato più avanti nel corso.
Dalla versione 12.1 del sistema operativo IOS Cisco, il protocollo RIP non propaga più in
maniera automatica la rotta predefinita. In questo caso, affinché la propagazione possa
avvenire è necessario abilitarla esplicitamente con il comando: network 0.0.0.0.
Tra tutte le rotte candidate il router sceglierà quella con metrica più vantaggiosa come
rotta candidata predefinita. Tale rotta viene identificata nella tabella di instradamento
tramite un asterisco.
Osservando l'immagine precedente, poiché il router RTB è quello di confine, deve essere
configurato manualmente in modo tale da inviare ai router della rete aziendale le
informazioni sulla rotta predefinita, nella fattispecie quella verso il router dell'ISP. Sebbene
sul router RTP sia possibile configurare una rotta statica 0.0.0.0/0 verso il router
dell'ISP, questa non verrebbe annunciata dal protocollo IGRP. Per evitare di dover
configurare manualmente la rotta statica 0.0.0.0/0 per ogni router dell'azienda, è
possibile configurare il router RTB impostando una rotta candidata verso
207.21.20.0/24:
La rete 207.21.20.0/24 è adesso una rete esterna (exterior network) con proprietà
particolari. Le reti esterne, sono appunto reti che si trovano al di fuori della rete aziendale
e che servono come gateway di ultima risorsa. Il router RTB invierà le informazioni su
questa rotta negli aggiornamenti IGRP, ai router RTA e RTC, che apprenderanno
dinamicamente che le rete 207.21.20.0/24 è una rete esterna,facendo del router RTB il
loro gateway di ultima risorsa. Sia il router RTA che RTC propagheranno a loro volta
questa rotta, denotandola come candidata predefinita, a tutti gli altri router IGRP, se
presenti.
Il comando ip default-network offre un grado di flessibilità più elevato della semplice
configurazione di una rotta statica 0.0.0.0/0. Con tale comando è infatti possibile
denotare diverse rotte come candidate predefinite. E in reti particolarmente complesse ciò
permette ai router di scegliere la migliore rotta predefinita su cui instradare un pacchetto,
in base al miglior valore di metrica .
Il precedente problema può essere risolto in diversi modi. Un approccio potrebbe essere
quello di configurare il router con il comando ip classless, in modalità di
configurazione globale. Tale comando è abilitato per impostazione predefinita su tutte le
versioni dell'IOS dalla 11.3 in poi, e consente al router di instradare un pacchetto
utilizzando il miglio prefisso di rete disponibile. Nell'esempio precedente, utilizzando il
comando ip classless sul router RTX, per raggiungere sottoreti sconosciute nel
dominio locale 172.16.0.0/16, questo utilizzerebbe la rotta 0.0.0.0/0.
Un altro approccio protrebbe essere invece quello di configurare RTX con una rotta
esplicita verso la rete principale 172.16.0.0/16 :
In questo caso, nell'assenza di una rotta più specifica verso l'indirizzo 172.16.1.1, il
router RTX utilizzerebbe la rotta statica verso la rete principale 172.16.0.0/16
riuscendo così a instradare correttamente il pacchetto destinato all'indirizzo 172.16.1.1.
Una rotta statica mobile, non è altro che una semplice rotta statica con una distanza
amministrativa superiore a quella delle rotte principali. In pratica si tratta di una rotta
alternativa o di emergenza (backup), che non viene inserita nella tabella di instradamento
del router fino a quando una rotta verso la stessa destinazione diviene irraggiungibile. Per
chiarire meglio il concetto si osservi l'esempio nell'immagine seguente:
Supponiamo che dal router RTB si possa raggiungere la rete 10.0.0.0/8 tramite due
differenti percorsi. Supponiamo anche, che il percorso principale per la rete 10.0.0.0/8
sia quello attraverso il router RTC, e che sia stato inserito nella tabella di instradamento
del router RTB tramite un protocollo di instradamento dinamico, per esempio RIP. E'
tuttavia auspicabile che il router RTB, in caso di problemi al percorso principale, utilizzi
quello di backup, tramite il router RTA. Il problema in questo caso è che spesso i
collegamenti di backup vengono realizzati utilizzando tecnologie a commutazione di
circuito come ISDN o collegamenti analogici (Dial-up); su tali collegamenti per ovvie
ragioni non vengono mai utilizzati i protocolli di instradamento dinamico. In questo caso è
necessario configurare sul router RTB una rotta statica mobile, che si attivi quando quella
principale dovesse, per un qualsiasi motivo, smettere di funzionare.
Il comando precedente imposta una rotta statica verso la rete 10.0.0.0/8 tramite il
router RTA, ma in questo caso è stato esplicitamente impostato un valore per la distanza
amministrativa pari a 130. Per impostazione predefinita la distanza amministrativa delle
rotte statiche è pari a 1. Specificando esplicitamente un valore per la distanza
amministrativa che sia più elevato di quello della rotta principale, si crea una rotta statica
mobile (floating static route). Nell'esempio in questione il percorso principale è stato
installato nella tabella di instradamento del router RTB, tramite il protocollo RIP, le cui rotte
hanno una distanza amministrativa pari a 120. Configurando la rotta statica con una
distanza amministrativa superiore, nella fattispecie 130, la si rende meno desiderabile di
quella appresa con il protocollo RIP; pertanto il router utilizzerà quest'ultima tutte le volte
che dovrà instradare un pacchetto verso la rete 10.0.0.0. Comunque se il percorso
attraverso il router RTC non dovesse essere più disponibile, il router RTB installerebbe
automaticamente nella sua tabella di instradamento la rotta statica mobile che è stata
definita.
E' possibile utilizzare le rotte statiche mobili insieme ad altre rotte statiche per poter creare
uno schema di instradamento semi-adattabile alle mutazioni della topologia di rete.
In questo caso il router RTZ popolerebbe la sua tabella di instradamento con una rotta
predefinita verso l'interfaccia s0 e una rotta per la rete 4.0.0.0/8 verso l'interfaccia s2.
Nel caso in cui la rotta predefinita dovesse fallire, verrebbe sostituita con la rotta
predefinita verso l'interfaccia s1. Se invece dovesse fallire la rotta principale verso
l'interfaccia s1, il router la sostituirebbe prima con la rotta verso l'interfaccia s3, e in caso
di ulteriore fallimento di quest'ultima, con quella verso l'interfaccia s4.
Per quanto detto quindi si capisce come ODR non sia un protocollo di instradamento.
Semplicemente il router che utilizza tale caratteristica può apprendere automaticamente le
informazioni riguardo le reti stub ad esso collegate, ma non vale il viceversa, cioè i router
delle reti stub non possono apprendere i percorsi verso il router della rete hub. Questo
dipende appunto dal fatto che le informazioni vengono trasportate dal protocollo CDP, che
è di livello collegamento (data-link), pertanto il loro ambito di validità è limitato al tratto tra il
router centrale (hub) e il router della rete stub. Tuttavia utilizzando un protocollo di
instradamento dinamico è possibile ridistribuire le rotte apprese con ODR.
RTA#
2 SNAP Subnetwork Access Protocol, è un protocollo Internet che opera tra due entità a livello rete. Il
protocollo SNAP specifica un metodo standard per incapsulare un datagramma IP o un messaggio ARP
Address Resolution Protocol su reti IEEE. L'entità SNAP nel sistema terminale (end-system) utilizza i
servizi della sottorete per eseguire tre funzioni chiave: trasferimento dati, controllo della connessione e
selezione del QoS, servizio di qualità.
sub. Si osservi anche che ODR supporta VLSM le maschere di sottorete a lunghezza
variabile, pertanto non è necessario utilizzare indirizzi allineati al prefisso della classe.
Inoltre, poiché vengono scambiate le informazioni strettamente necessarie, l'utilizzo della
larghezza di banda è minimo.
Il protocollo CDP è abilitato per opzione predefinita su tutti i dispositivi Cisco con sistema
operativo ISO 10.3 e superiori; la caratteristica ODR tuttavia è stata introdotta a partire
dalla versione 11.2 dell'IOS. Sebbene ODR venga utilizzato esclusivamente sui router
della rete hub, è tuttavia necessario che anche i router della rete stub abbiano IOS con
versione 11.2 o successiva.
Sicuramente ODR rappresenta una soluzione più scalabile dell'utilizzo di sole rotte
statiche.
La funzionalità di ODR viene abilitata sui router Cisco con un singolo comando in modalità
globale router odr. Disabilitando qualsiasi protocollo di instradamento dinamico sui
router delle reti spoke, questi cominceranno automaticamente ad annunciare reti e
sottoreti direttamente collegate usando CDP. Sul router hub, comunque ODR può essere
utilizzato in congiunzione con un protocollo di instradamento dinamico. Il protocollo CDP è
abilitato per impostazione predefinita, tuttavia, se disabilitato, è necessario abilitarlo con il
comando cdp run. Per abilitare il protocollo CDP su un'interfaccia specifica è possibile
utilizzare il comando cdp enable.
L'immagine precedente mostra una tipica rete a topologia hub-and-spoke. Per configurare
ODR è necessario utilizzare il comando router odr nel router hub. Se tutti i router
utilizzano IOS 11.2 o superiore e la tecnologia di rete utilizzata supporta il protocollo SNAP
(come Frame Relay), il router hub apprenderà automaticamente gli indirizzi delle reti stub
grazie a ODR. E' necessario comunque configurare sui router delle reti stub una rotta
statica predefinita verso il router della rete hub. A partire dalla versione 12.0.5.T nell'IOS
Cisco è stata introdotta una nuova caratteristica che consente al router della rete hub di
inviare automaticamente una rotta predefinita ai router delle reti spoke.
Le rotte che il router hub ha appreso tramite ODR, possono essere ridistribuite usando un
protocollo di instradamento dinamico. Rifacendoci all'esempio dell'immagine precedente,
se sul router della rete hub RTA nasce l'esigenza di annunciare le rotte apprese con ODR
usando ad esempio il protocollo OSPF, la configurazione del router RTA diventa:
RTA(config)# router odr
RTA(config)# router ospf 1
RTA(config-router)# redistribute odr metric 100 subnets
RTA(config-router)# network 10.2.0.0 0.0.255.255 area 1
3.5 La Convergenza
3.5.1 Problemi legati alla convergenza
La fase che precede la convergenza, quella cioè in cui i router non hanno ancora
raggiunto una visione omogenea della topologia di rete, è quella in cui la rete è più
suscettibile a problemi di instradamento. Infatti, mentre alcuni router potrebbero per
esempio già essere a conoscenza del fatto che un collegamento di rete non è più
disponibile, su altri tale informazione potrebbe non essere ancora giunta. In questa fase
quindi, le tabelle di instradamento di ogni singolo router potrebbero contenere informazioni
contraddittorie, e ciò potrebbe portare alla perdita di pacchetti o anelli (loop) nei percorsi di
rete.
E' ovvio che è impossibile che tutti i router di una rete rilevino simultaneamente una
variazione alla topologia. Il tempo che trascorre dal momento in cui un router rileva una
variazione topologica, al momento in cui i router convergono dipende principalmente dal
protocollo di instradamento utilizzato. In generale i principali fattori che determinano il
tempo di convergenza sono:
E' chiaro quindi che il tempo di convergenza di una rete dipende sia da una buona
progettazione, sia dal modo in cui i protocolli di instradamento utilizzato, quindi dal modo
in cui vengono ricalcolati i percorsi e in cui vengono distribuiti gli aggiornamenti.
I protocolli di instradamento prevedono che ogni router invii dei messaggi per aggiornare i
router adiacenti o a intervalli regolari o all'accadere di un evento, come ad esempio la
variazione della topologia di rete. A tal proposito, distinguiamo i protocolli di instradamento
ad intervalli di tempo o Time-driven che attendono che intercorra un determinato periodo
di tempo prima di inviare aggiornamenti, e protocolli ad eventi o event-driven che invece
inviano gli aggiornamenti solo quando è necessario, nella fattispecie quando viene rilevata
una variazione alla topologia di rete. Un classico esempio di protocollo time-driven è RIP,
che prevede che la tabella di instradamento venga inviata per intero ogni 30 secondi,
anche se la topologia di rete non è cambiata. I protocolli a stato del collegamento
(link-state) e EIGRP, sono invece event-driven, e prevedono che i messaggi di
aggiornamento vengano inviati solo quando avviene una variazione alla topologia di rete;
tali messaggi possono contenere o l'intera tabella di instradamento incluse le variazioni,
oppure le sole variazioni dall'ultimo aggiornamento.
Per queste ragioni la maggior parte dei protocolli utilizza una combinazione di entrambi i
sistemi. Una delle eccezioni è il protocollo RIP, le cui specifiche standard non
prevedevano alcun tipo di aggiornamento immediato in base a variazioni topologiche.
Tuttavia l'implementazione sui router Cisco prevede che il protocollo RIP invii un
aggiornamento immediato ogni volta che avviene una variazione alla topologia di rete.
Anche il protocollo IGRP prevede aggiornamenti immediati. Senza tale occorgimento ne
RIP ne IGRP sarebbero protocolli efficienti.
I protocolli che si basano principalmente sugli eventi, prevedono che i router si scambino
periodicamente messaggi di dimensioni contenute per verificare la connettività di un
segmento di rete. Ad esempio il protocollo OSPF utilizza un contatore chiamato MaxAge,
che indica il periodo di validità di una determinata informazione, scaduto questo periodo è
necessario che questa informazione venga rinnovata altrimenti non sarà più considerata
valida.
3.6.3 La metrica
Parametro Tipo
Numero di nodi intermedi (hop-count) Statico
Larghezza di banda (bandwidth) Statico
Ritardo (delay) Statico
Carico (load) Dinamico
Affidabilità (reliability) Dinamico
Unità massima di trasferimento (MTU – Maximum trasmission unit) Statico
Parametri quali ritardo e larghezza di banda sono valori statici che dipendono dal tipo di
mezzo trasmissivo e non variano nel tempo, invece carico e affidabilità sono parametri
dinamici che possono variare nel tempo e vengono calcolati in tempo reale su ogni
interfaccia dal router.
In genere più sono i parametri sui quali viene effettuato il calcolo della metrica, migliore è
la capacità di adattamento del protocollo di adattarsi a specifiche esigenze. Per esempio il
protocollo IGRP utilizza per impostazione predefinita due parametri statici, larghezza di
banda e ritardo. Entrambi possono essere configurati manualmente consentendo massima
precisione nel controllare le rotte che vengono scelte. Inoltre il protocollo IGRP può anche
essere configurato per includere nel calcolo della metrica due parametri dinamici, carico e
affidabilità. Grazie a questi due parametri dinamici il protocollo IGRP consente ai router di
poter prendere decisioni di instradamento in base a condiziono che mutano di volta in
volta. Per esempio se un certo collegamento diventa troppo congestionato o poco
affidabile, la metrica della rotta aumenta, in questo caso se presente può essere utilizzata
una rotta alternativa con metrica inferiore.
Scenario
L'Agenzia Turistica Internazionale, utilizza attualmente, come protocollo di instradamento dinamico
interno, RIP v2. E' intenzionata adesso a migrare al protocollo EIGRP.
Passo 1. Su tutti i router configurare il protocollo RIPv2 e abilitare gli aggiornamenti su tutte le interfacce di
rete attive. Si seguito, come esempio di riporta la configurazione di SanJose1:
Usare i comandi ping e show ip route per verificare la piena connettività della rete.
Passo 2. Per evitare che la connettività venga perduta è bene prima di tutto configurare e attivare il
protocollo EIGRP, prima di disattivare il protocollo RIP. Sui router SanJose1 e SanJose2,
configurare il protocollo EIGRP con sistema autonomo 24. Non configurare per adesso il router
Vista:
Passo 3. Dal router Vista utilizzare il comando show ip route. Si osservi che The EIGRP non è stato
ancora configurato su tale router, tuttavia grazie al fatto che sugli altri router è ancora è attivo il
protocollo RIPv2 riceve aggiornamenti da questi sulla rotta verso la rete 10.0.0.0/8 con
distanza amministrativa pari a 120 e metrica pari a 1. A questo punto abilitare il debug così da
osservare i cambiamenti alla tabella di instradamento:
Passo 4. Se la connessione al router avviene tramite telnet usare il comando terminal monitor in
modo da poter visualizzare i log del comando debug. Quindi abilitiamo il protocollo EIGRP sul
router Vista:
Vista(config)#router eigrp 24
Vista(config-router)#network 192.168.1.0
Vista(config-router)#network 192.168.2.0
Vista(config-router)#network 192.168.3.0
Adesso il comando show ip route sul router Vista riporterà la rotta EIGRP verso la rete
10.0.0.0 /8. Sebbene la metrica di tale rotta sia più elevata rispetto a quella del protocollo
RIP, nella tabella di instradamento del router Vista è stata installata proprio la rotta EIGRP per
via della distanza amministrativa più bassa (90). Per visualizzare maggiori informazioni
dall'output del comando debug utilizzare il comando
Se la distanza amministrativa è pari a 255, il router non ritiene affidabile la sorgente della rotta e
non la installa nella tabella di instradamento.
Passo 5. Infine per completare la migrazione a EIGRP, è necessario disattivare il protocollo RIP sui tre
router con il comando: no router rip. Utilizzare sul router Vista il comando show ip
route:
Scenario
L'Agenzia Turistica Internazionale, richiede che venga implementato il protocollo IGRP per i suoi
collegamenti WAN, utilizzando il bilanciamento del carico su percorsi di differente metrica.
Passo 1. Su tutti i tre router configurare il protocollo IGRP utilizzando il sistema autonomo 24, e
abilitare gli aggiornamenti sulle interfacce attive con il comando network. Il calcolo della
metrica di IGRP per impostazione predefinita include la larghezza di banda (bandwidth), è
pertanto necessario, configurare tale valore sulle interfacce seriali, affinché il calcolo della
metrica sia accurato. La configurazione nel caso in esempio dovrebbe essere eseguita come
segue:
Passo 2. A questo punto sul router Vista, configurare il bilanciamento del carico su percorsi di costo
differente, utilizzando il comando variance. Il valore di varianza predefinito è 1:
Usare il comando show ip route per verificare che il router installi le due rotte di costo
differente verso la stessa destinazione nella tabella di instradamento:
Vista#show ip route
<omissis>
I 10.0.0.0/8 [100/41072] via 192.168.1.2, 00:00:01, Serial0/0
[100/28051] via 192.168.2.2, 00:00:00, Serial0/1
C 192.168.1.0/24 is directly connected, Serial0/0
C 192.168.2.0/24 is directly connected, Serial0/1
C 192.168.3.0/24 is directly connected, FastEthernet0/0
Passo 3. Su qualsiasi router eseguire il comando show ip protocols per controllare i contatori
IGRP invalid, holddown, e flush. Si osservi che una rotta viene invalidata dopo 270 secondi, e
che viene eliminata dalla tabella di instradamento dopo 10 minuti o 630 secondi. Anche il
numero massimo di nodi intermedi è impostato come valore predefinito a 100. In reti di
piccole dimensioni è opportuno variare i contatori IGRP in modo da migliorare i tempi di
convergenza. L'impostazione Fast IGRP è una specifica configurazione dei contatori studiata
per milorare la convergenza. Questa prevede che i contatori vengano modificati secondo
questi valori:
Usare il comando show ip route per verificare che sul router Vista non esista più una rotta
per 192.168.3.0/24.
Ritornare adesso sul router SanJose1 ed eseguire il comando show ip route. Si osserci
che la rotta verso 192.168.3.0 è ancora presente, ma è contrassegnata come “possibly
down”.
L'agenzia turistica internazionale ITA, richiede che venga configurata una rotta predefinita sul router
SanJose2, e che venga utilizzato il protocollo RIP per propagarla a tutti gli altri router. Verificata la
funzionalità di tale configurazione, ITA richiede inoltre la migrazione dal protocollo RIP a quello IGRP per
poter verificarne la funzionalità, mantenendo comunque la rotta predefinita.
Passo 1. Configurare tutti gli indirizzi delle interfacce dei router, ma per il momento evitare di
configurare l'indirizzo 172.16.1.1/16 sul router SanJose2, trasmite questa rete verrà
successivamente impostato il collegamento dell'ITA verso l'ISP e quindi Internet.
Configurare il protocollo RIP su tutti i router, accertarsi di non includere nel processo di
aggiornamento RIP del router SanJose2 la rete 172.16.0.0/16. Utilizzare i comandi ping
e show ip route per verificarela connettività di tutta la rete, escluso per l'appunto la rete
172.16.0.0/16.
Passo 2. Configuriamo il router SanJose2 per simulare l'esistenza di una rete esterna. Nel caso in
oggetto è possibile simulare il collegamento tra l'ITA e l'ISP tramite un'interfaccia di loopback.
Allo scopo utilizzare i seguenti comandi:
Passo 3. Configuriamo adesso il router SanJose2 con una rotta predefinita 0.0.0.0/0 che punta
verso l'ISP simulato:
Il precedente comando serve a configurare una rotta predefinita statica, sulla quale il router
instraderà tutto il traffico diretto verso reti che non si trovano nella propria tabella di
instradamento; nel caso in oggetto tutto il traffico sarà instradato verso l'interfaccia WAN
simulata con loopback 0.
E' ovvio che sebbene né SanJose1 né Vista abbiano esplicitamente una rotta verso
172.16.0.0/16 il comando ping verso l'indirizzo 172.16.1.1 da entrambi i router ha
comunque esito positivo in quanto questi utilizzano la rotta predefinita.
Passo 5. Adesso che è stato verificato il funzionamento della rotta predefinita, è necessario migrare da
RIP a IGRP. E' necessario rimuovere RIP dai tre router, con il comando:
Con il protocollo RIP disabilitato, configurare il protocollo IGRP su tutti i router utilizzando 24
come identificativo per l'AS (sistema autonomo):
Usare i comandi ping e show ip route per verificare che il protocollo IGRP sia
funzionante. Non preoccuparsi al momento che si sta' ancora utilizzando un l'indirizzo virtuale
172.16.1.1 sull'interfaccia loopback0.
Passo 6. Controllare la tabella di instradamento del router SanJose2. La rotta statica predefinita
dovrebbe essere ancora presente. Mentre per quanto riguarda RIP, a volte è necessario il
comando default-information originate per propagare tale rotta, come visto in
precedenza; per il protocollo IGRP, il comando default-information originate non è
disponibile, e a posto di questo è necessario utilizzare ip default-network per propagare
le rotte predefinite. Pertanto sul router SanJose2, è necessario usare i seguenti comandi:
I primi due comandi consentono di configurare il router SanJose2 in modo da inviare ai router
adiacenti, le informazioni riguardanti la rete 172.16.0.0/16 (il collegamento simulato con
l'ISP sull'interfaccia loopback0), negli aggiornamenti del protocollo IGRP. L'ultimo comando
ip default-network indica inoltre al router di contrassegnare la rete indicata come rotta
candidata predefinita (candidate default route). Tale rotta viene indicata nella tabella di
instradamento usando un asterisco (*). Quando una rete è contrassegnata come predefinita,
tale attributo viene specificato anche nei messaggi di aggiornamento, e rimane immutato per
tutto il processo di propagazione della rotta all'interno della rete.
Passo 7. La rete 172.16.0.0/16 dovrebbe essere adesso conosciuta sia dal router SanJose1 che da
quello Vista. Per verificare la funzionalità di tale rotta predefinita, è necessario creare una
seconda interfaccia di loopback sul router SanJose2. Impartire i seguenti comandi sul router
SanJose2:
Questa interfaccia di loopback simula una seconda rete esterna, ma non è esplicitamente
identificata nella tabella di instradamento dei router SanJose1 e Vista. Verificare quanto detto
impartendo sui tali router il comando show ip route. Sebbene non esista una tale rotta il
comando ping 10.0.0.1. su questi due router da comunque esisto positivo per via della
rotta predefinita candidata.
Scenario
L'ITA, l'Agenzia Turistica Internazionale, al livello core della sua rete, per l'instradamento dei pacchetti
utilizza sia il protocollo RIP che rotte statiche mobili (floating static routes). Uno dei router principali di
confine, Vista, ha due rotte verso la rete 10.0.0.0/8. Solo una di queste viene annunciata negli
aggiornamenti RIP. Se l'altro percorso venisse configurato con una rotta statica e distanza amministrativa
predefinita, questo sarebbe preferito al percorso annunciato con il protocollo RIP. Questo perché il router
dovendo scegliere tra percorsi di natura differente verso la stessa destinazione, preferisce quelli con
distanza amministrativa. Tuttavia, poiché la larghezza di banda sul collegamento verso il percorso che
annuncia il protocollo RIP è superiore a quella del percorso definito staticamente, l'ITA, desidera che la
prima rotta sia preferita alla seconda. Pertanto è necessario modificare il valore predefinito della distanza
amministrativa della rotta statica, creando una rotta statica mobile.
Passo 1. Costruire la rete in figura e accertarsi, con il comando ping, senza attivare nessun protocollo
di instradamento che i dispositivi direttamente connessi riescano a comunicare l'un l'altro.
Consentiamo al router SanJose2 di raggiungere la rete 192.168.3.0 della LAN del router
Vista tramite una rotta statica:
SanJose2(config)# ip route 192.168.3.0 255.255.255.0 192.168.2.1
Verificare con il comando ping che l'host B riesca a raggiungere l'interfaccia seriale sia del
router SanJose1, 192.168.1.2, che SanJose2, 192.168.2.2.
Passo 3. Grazie al protocollo RIP, il router Vista dovrebbe avere installato nella propria tabella di
instradamento una rotta verso la rete 10.0.0.0/8 tramite l'interfaccia serial0/0.
Verificato il funzionamento del protocollo RIP è ora necessario configurare la rotta statica dal
router Vista verso SanJose2 per raggiungere la rete 10.0.0.0/8, usare il comando:
Configurato il router Vista con questo comando, la rotta dinamica annunciata dal protocollo
RIP viene disinstallata dalla tabella di instradamento, e al suo posto viene installata la rotta
statica. Per verificare quanto detto utilizzare il comando sh ip route sul router Vista.
Lasciando una tale configurazione, il router Vista utilizzerà il collegamento verso SanJose2,
per raggiungere la rete 10.0.0.0/8. Tuttavia l'ITA, desiderava che tale rotta venisse
utilizzata solo in caso di malfunzionamento di quella annunciata con il protocollo RIP.
Pertanto è necessario riconfigurare la precedente rotta statica in modo da renderla mobile
(float). In modo che questa rimanga nella configurazione del router, ma sia comunque inattiva
e non venga installata nella tabella di instradamento, questo fino a quando la rotta principale
non vada in avaria. Prima di configurare la rotta statica mobile, è necessario rimuovere dalla
configurazione del router Vista, la precedente rotta statica configurata, usando il comando:
Verificato che la rotta statica non faccia più parte della configurazione del router Vista, creare
la rotta statica mobile con il seguente comando:
Il numero 130 alla fine del comando rappresenta la distanza amministrativa per la rotta. Per
impostazione predefinita, quando non viene specificato alcun valore, le rotte statiche, hanno
distanza amministrativa pari a 1. In questo caso, poiché le rotte installate dinamicamente dal
protocollo RIP, hanno distanza amministrativa paria a 120, è stato necessario usare un
valore più grande, 130, per fare in modo che il router Vista continuasse ad utilizzare la rotta
RIP. Il router Vista utilizzerà la rotta statica mobile se e quando, quella dinamica andrà in
avaria. In caso di fallimento della rotta principale, anche il router SanJose1 dovrà essere in
grado di instradare i pacchetti verso Vista. Per consentire questo, è possibile utilizzare anche
sul router SanJose1, una rotta statica mobile:
Passo 4. Durante il normale funzionamento, sul router Vista, deve essere presente solo la rotta
dinamica annunciata da RIP, verso la rete 10.0.0.0/8.
Le rotte statiche mobili non essendo installate nella tabella di instradamento dei router non
possono essere viste con il comando sh ip route, tuttavia rimangono memorizzate nella
loro configurazione, e possono essere rintracciate con il comando sh run.
Osserviamo come il router Vista reagisce ad un avaria sul collegamento; eseguire il seguente
comando:
e disconnettere il collegamento ethernet con SanJose1. Dopo qualche secondo nella finestra
di collegamento del router Vista dovrebbero essere visualizzati i seguenti messaggi: