Angelo Coiro - Antonio Cianfrani
I protocolli di Routing
INFOCOM Dept.
Introduzione al Routing
I router devono conoscere i possibili percorsi verso le reti remote, ciò è possibile mediante•
Le informazioni ricevute dagli altri router (Routing Dinamico)•
La configurazione eseguita dall’amministratore (Routing Statico)
Il Routing Statico è una tecnica non scalabile•
Le route statiche devono essere configurate manualmente•
In caso di cambi di topologia di rete è necessario che l’amministratore apporti le opportune variazioni alla configurazione delle route statiche•
Elevata complessità gestionale in caso di reti di grandi dimensioni
Spesso i due tipi di routing, Statico e Dinamico, operano congiuntamenteINFOCOM Dept.
Configurazione di una route statica
Il comando per configurare una route statica èR1(config)#ip route Dest_IP_Add SubNet_Mask A/B
Due possibili alternative
Soluzione A: è specificata l’interfaccia di uscita (è possibile solo in caso di link punto-punto)
Soluzione B: è specificato l’indirizzo IP del next-hop router (soluzione obbligatoria in caso di rete ethernet)
Una particolare route statica è la route di default:ip route 0.0.0.0 0.0.0.0 {next-hop-address | outgoing interface]}
INFOCOM Dept.
Protocolli di routing
Un protocollo di routing è usato per comunicare tra i router e scambiarsi le informazioni di raggiungibilità relative alle reti
Le informazioni che un router riceve da un altro router sono usate per costruire e mantenere le routing table
Esempi di routing protocol
Routing Information Protocol (RIP)
Enhanced Interior Gateway Routing Protocol (EIGRP)
Open Shortest Path First (OSPF)
Border Gateway Protocol (BGP)INFOCOM Dept.
Convergenza dei protocolli di routing
Un aspetto fondamentale che caratterizza la prestazioni di un protocollo di routing è la velocità di convergenza
Un protocollo di routing giunge a convergenza quando tutti i router di una rete stanno operando con la stessa visione della rete stessa
Una convergenza veloce è desiderabile perché riduce il periodo ditempo in cui i router potrebbero prendere decisioni di instradamento non corrette
INFOCOM Dept.
Autonomous System
Un Sistema Autonomo (AS) è un insieme di reti sotto un unico amministratore che condividono la stessa strategia di routing
Un AS è visto all’esterno come una unica entità
Ad un AS viene assegnato un identificatore di 16 bit•
L’assegnazione può essere effettuata dall’ARIN (AmericanRegistry of Internet Numbers), da un service provider o da un amministratore
Un AS fornisce la divisione dell’internet globale in reti più piccole, più facilmente gestibiliINFOCOM Dept.
Classificazione dei protocolli di routing
I protocolli di routing possono essere classificati in base ai principi di funzionamento in:
Distance vector: RIP, BGP
Link state: OSPF
Un’altra classificazione si basa sull’ambito in cui possono essere utilizzati:
Interior Gateway Protocol (IGP): internamente ad un sistema autonomo (RIP e OSPF)
Exterior Gateway Protocol (EGP): tra i sistemi autonomi (BGP)Antonio Cianfrani
I protocolli di routing
Distance Vector
INFOCOM Dept.
Protocolli di routing distance vector (1/2)
Gli aspetti caratteristici dei protocolli di routing distance vector sono:
Ciascun router comunica esclusivamente con i router adiacenti (vicini)
•
Due nodi sono adiacenti se sono direttamente connessi mediante la stessa sottorete I router inviano ai vicini dei messaggi contenenti la propria tabella di routing (ad eccezione dell’EIGRP)
Tali messaggi sono inviati periodicamente (il periodo dipende dal protocollo: per il RIP è 30 secondi)
Ogni percorso contenuto nei messaggi ha una distanza che
dipende dalla metrica utilizzata dal protocollo (per il RIP la
metrica è il numero di hop)
INFOCOM Dept.
Protocolli di routing distance vector (2/2)
I router che utilizzano un protocollo di routing distance vector non hanno una visione globale della rete
I router prima calcolano la propria tabella di routing
•
per ogni percorso vengono memorizzate due informazioni: costo e next-hop•
le reti direttamente connesse compaiono con una distanza pari a 0 Quando ricevono un messaggio applicano un algoritmo (Bellmann-
Ford) che consente di aggiornare la propria tabella di routing
solo se esistono percorsi nuovi o migliori (in base alla metrica)
Esempio (1/6)
Network Next-hop Distance Network Next-hop Distance Network Next-hop Distance
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
Esempio (2/6)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth1 0
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
Esempio (3/6)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth1 0
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
UPDATE
UPDATE UPDATE
Esempio (4/6)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
12.0.0.0 11.0.0.2 1
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
10.0.0.0 11.0.0.1 1 13.0.0.0 12.0.0.2 1
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth1 0
11.0.0.0 12.0.0.1 1
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
Esempio (5/6)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
12.0.0.0 11.0.0.2 1
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
10.0.0.0 11.0.0.1 1 13.0.0.0 12.0.0.2 1
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth1 0
11.0.0.0 12.0.0.1 1
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
UPDATE
UPDATE UPDATE
Esempio (6/6)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
12.0.0.0 11.0.0.2 1 13.0.0.0 11.0.0.2 2
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
10.0.0.0 11.0.0.1 1 13.0.0.0 12.0.0.2 1
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth1 0
11.0.0.0 12.0.0.1 1 10.0.0.0 12.0.0.1 2
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
INFOCOM Dept.
Uno dei principali problemi nell’utilizzo dei protocolli distance vector è la possibilità che si vengano a creare dei loop in rete•
Un loop è una condizione in cui un pacchetto IP viene continuamente trasmesso tra due o più router senza mai raggiungere la propriadestinazione
E’ causato dalla lentezza del processo di aggiornamento delle tabelle di routing di un protocollo distance vector: prima che si giunga aconvergenza le tabelle di routing possono non essere consistenti
Effetti principali di un loop:•
Viene saturata la banda di alcuni link•
Il traffico dati non arriva a destinazione•
Gli aggiornamenti di routing potrebbero andare persi e creare ulteriori loopsIl problema del routing loop (1/4)
INFOCOM Dept.
Il problema del routing loop (2/4)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
12.0.0.0 11.0.0.2 1 13.0.0.0 11.0.0.2 2
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
10.0.0.0 11.0.0.1 1 13.0.0.0 12.0.0.2 1
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth1 0
11.0.0.0 12.0.0.1 1 10.0.0.0 12.0.0.1 2
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
INFOCOM Dept.
Il problema del routing loop (3/4)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
12.0.0.0 11.0.0.2 1 13.0.0.0 11.0.0.2 2
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
10.0.0.0 11.0.0.1 1 13.0.0.0 12.0.0.2 1
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth1 0
11.0.0.0 12.0.0.1 1 10.0.0.0 12.0.0.1 2
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
UPDATE
R2 invia un aggiornamento ad R3 prima che R3 lo invii ad R2: tale aggiornamento contiene la route relativa alla rete 13.0.0.0INFOCOM Dept.
Il problema del routing loop (4/4)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth0 2
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
R3 installa nella propria tabella di routing un percorso che in realtà non esiste:
•
Traffico IP raggiunge il TTL massimo e viene scartato•
Aggiornamenti di routing continui (Count to Infinity)INFOCOM Dept.
Count to infinity (1/2)
Network Next-hop Distance
10.0.0.0 eth0 0
11.0.0.0 eth1 0
12.0.0.0 11.0.0.2 1 13.0.0.0 11.0.0.2 2
Network Next-hop Distance
11.0.0.0 eth0 0
12.0.0.0 eth1 0
10.0.0.0 11.0.0.1 1 13.0.0.0 12.0.0.2 3
Network Next-hop Distance
12.0.0.0 eth0 0
13.0.0.0 eth0 2
11.0.0.0 12.0.0.1 1 10.0.0.0 12.0.0.1 2
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
Ogni volta che R3 (o R2) invia i propri aggiornamenti periodici, R2 (o R3) aggiorna la propria tabella di routing incrementando di 1 la distanza relativa alla rete 13.0.0.0.
UPDATE
INFOCOM Dept.
Count to infinity (2/2)
•
Il problema del Count to Infinity viene risolto introducendo una valore massimo di metrica (nel caso del RIP tale valore è pari a 16)•
Quando una route raggiunge tale valore viene automaticamente marcata come irraggiungibileNetwork Next-hop Distance
10.0.0.0 eth0 0
Network Next-hop Distance
11.0.0.0 eth0 0
Network Next-hop Distance
12.0.0.0 eth0 0
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
UPDATE
INFOCOM Dept.
I protocolli distance vector prevedono diversi meccanismi, oltre alla definizione di una metrica massima, per minimizzare il problema dei loop:•
Holddown timer•
Split horizon•
Route poisoning•
Triggered UpdatesSoluzioni al problema dei loop
INFOCOM Dept.
L’holddown timer consente all’informazione di irraggiungibilità di propagarsi in rete
Modalità di funzionamento:
Quando un router riceve un aggiornamento da un vicino che gli indica che una rete prima accessibile adesso non lo è più, il router marca la rete come tale e fa partire un holddown timer
Se arriva un update prima che tale timer si esaurisca dallo stesso vicino indicando che la rete in questione è di nuovo accessibile allora il timer è rimosso e la rete marcata come accessibile
Se un aggiornamento arriva da un router vicino diverso con una metrica migliore di quella originale allora il router marca la rete come accessibile e ferma l’holddown timer
Se prima che l’holddown timer scada si riceve un update da unHolddown timer
INFOCOM Dept.
La regola dello Split Horizon prevede che un router non possa inviarel’aggiornamento relativo ad una route sull’interfaccia da cui ha ricevuto tale aggiornamento
Lo Split Horizon potrebbe però anche impedire che informazioni corrette si propaghino. Per questo alcune volte è disabilitato dall’amministratore di reteSplit Horizon
R1 R2 R3
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
R2 non può inviare aggiornamenti relativi alla rete 13.0.0.0 verso R3
INFOCOM Dept.
Il Route Poisoning consiste nell’inviare all’interno dei messaggi di aggiornamento anche le route divenute irraggiungibili
Tale route vengono inviate con una distanza pari a 16 (unreachable)Route Poisoning
Network Next-hop Distance
10.0.0.0 eth0 0
Network Next-hop Distance
11.0.0.0 eth0 0
Network Next-hop Distance
12.0.0.0 eth0 0
R1
R3 R3
R2 R2
R1
10.0.0.0 11.0.0.0 12.0.0.0 13.0.0.0
eth0 eth1 eth0 eth1 eth0 eth1
.1 .1 .2 .1 .2 .1
Poison
INFOCOM Dept.
La causa dei loop è la lenta convergenza dei protocolli distance vector:bisogna aspettare che gli aggiornamenti periodici si propaghino a tutti i router della rete.
Un modo per accelerare la convergenza è quello di consentire ad un aggiornamento relativo ad una nuova situazione topologica di essere immediatamente inviato da un router a i propri vicini, senza aspettare lo scadere del timer relativo agli aggiornamenti periodici
Nuova situazione topologica:
Interfaccia che cambia stato (up o down)
Network non più raggiungibile
Nuova network nella tabella di routing
Un tale aggiornamento è definito un Triggered UpdateTriggered updates
Antonio Cianfrani
Routing Information Protocol (RIP)
INFOCOM Dept.
Il protocollo RIP
RIP è un protocollo di routing distance vector
Utilizza il numero di hops come metrica per l’individuazione del percorso migliore
Una route con distanza pari a 16 è considerata irraggiungibile
Gli aggiornamenti di routing vengono inviati broadcast ogni 30 secondi
I messaggi RIP sono incapsulati in pacchetti UDP, in cui sia la porta di destinazione che quella di sorgente è posta pari a 520
La distanza amministrativa del RIP è pari a 120
INFOCOM Dept.
RIPv1
RIP ha due versioni•
Classful Routing Protocol (RIP v1)•
Classless Routing Protocol (RIP v2)
RIPv1 non prevede all’interno dei messaggi RIP informazioni relative alla maschera di sottorete:
Quando un router riceve un messaggio relativo a una rete:•
Utilizza la maschera di default basandosi sulla classe dell’indirizzo (classe A,B o C)•
Utilizza la maschera dell’interfaccia su cui ha ricevuto l’informazioneINFOCOM Dept.
Configurazione del protocollo RIPv1 (1/2)
Il comando “router rip” abilita RIP come protocollo di routing
Il comando “network” è usato per istruire il router su quali interfacce RIP deve essere usato:
• Il RIP è abilitato sulle interfacce relative alle reti (direttamente connesse) specificate; tali interfacce invieranno e riceveranno i messaggi RIP
• Le network specificate saranno inserite nei messaggi
RIP inviati ogni 30 secondi
INFOCOM Dept.
Configurazione del protocollo RIPv1 (2/2)
Se dopo il comando network viene inserito un indirizzo “non classful” il router automaticamente fa la correzione
R3(config)#router rip
R3(config-router)#network 192.168.4.0 R3(config-router)#network 192.168.5.1 R3#show running-config
!
router rip
network 192.168.4.0
INFOCOM Dept.
Verifica della configurazione di RIP
Il comando show ip route mostra la tabella di routing
R 192.168.205.0/24 [120/3] via 151.100.37.8, 00:00:04, Eth0
indica il protocollo RIP
indirizzo e maschera della rete di destinazione distanza amministrativa
numero di hops next-hop router
tempo trascorso dall’ultimo aggiornamento (il prossimo tra 26 s) interfaccia locale da cui raggiungere la destinazione
I timers del RIP
Oltre al timer di 30 secondi per l’invio degli aggiornamenti periodici il RIP utilizza tre timers aggiuntivi
Invalid timer. Se una route precedentemente installata nellarouting table non viene aggiornata dopo 180 secondi(valore di default), viene marcata come invalida e la sua distanza viene posta pari a 16.
Flush timer. Se dopo 240 secondi (valore di defult) una route nonviene aggiornata, viene cancellata dalla tabella di routing.
Holddown timer. Utilizzato per limitare i loop, di default è pari a180 secondi
INFOCOM Dept.
Verifica RIP: show ip protocols
Il comando passive-interface
Il comando passive-interface serve per non inviare i messaggi RIP da una specifica interfaccia
Il router continuerà a processare i messaggi RIP che provengono dall’interfaccia “passiva”.
La network direttamente connessa all’interfaccia “passiva”
continuerà ad essere inserita tra le network degli aggiornamenti
RIP
Il debug del RIP
Il comando debug ip rip abilita il debug a schermo del protocollo
RIP
Esercitazione Packet Tracer RIPv1
Configurare indirizzi interfaccie router Configurare RIP sui router
Configurare hosts
Verificare configurazione
10.0.0.0/8
192.168.0.0/24 RTR02
RTR01
SVC01
Net_C