EIGRP
Home ]

 

Introduzione
L'algoritmo "DUAL"
Il "vicino accettabile"
La regola
Un esempio
Il processo di diffusione
I pacchetti
La Neighbor Table
La Topology Table
Route state
Route tagging
Compatibilita' con IGRP 

 

INTRODUZIONE

Il protocollo EIGRP (Enhanced IGRP) e' stato sviluppato da CISCO a partire dalla release software 9.21 sulle basi del protocollo IGRP, rispetto al quale sono stati introdotti i seguenti miglioramenti: 

  Convergenza più rapida

  Maschere a lunghezza variabile

  Minore traffico di routing

  Trasferimento di dati affidabile (Reliable Transfer Protocol)

  Supporto multiprotocollo

  Loop Free (ma si possono verificare dei Black Hole)

EIGRP non prevede updates periodici; in effetti ogni router mantiene una copia delle routing table di tutti i router adiacenti ed i messaggi di scambio delle route devono quindi essere di tipo affidabile.

In caso di cambio di una route si attiva il "Diffusing Update ALgorithm" (DUAL). Questo algoritmo e' basato sull’idea che non si può creare un loop, scegliendo un percorso migliore per giungere a destinazione, mentre è vero il contrario.

Torna all'inizio

 

L'ALGORITMO "DUAL"

L'algoritmo è composto da due parti:

  Selezione del "vicino accettabile"

  Attivazione del "processo di diffusione"

Il principio di funzionamento dell'algoritmo e' il seguente: quando un router riceve un routing update verifica se il nuovo costo è minore del precedente e, in questo caso, aggiorna la route, propaga la nuove informazione ai vicini e termina.

Il principio generale e' che un cambio di route di tipo "peggiorativo" viene preso in considerazione solo se proviene dallo stesso router che attualmente viene usato per raggiungere quella destinazione.

Viceversa, se il nuovo costo è maggiore, verifica se esiste un "vicino accettabile"; se questo non esiste attiva il processo di diffusione che consiste nel propagare l’informazione "ho dei problemi di connettività su un link" ai vicini, fino a quando qualcuno è in grado di segnalare un nuovo cammino.

IL VICINO ACCETTABILE

Ogni router R mantiene per ogni destinazione D e per ogni suo router adiacente A le seguenti informazioni:

  d(A, D): distanza tra ogni router adiacente e la destinazione

  l(R, A): costo del link tra R ed A

come illustrato nella seguente figura:

 

 

Il router sceglie come percorso migliore quello che soddisfa la relazione: min [ l(R,X) + d(X,D) ]

X è il particolare router adiacente che minimizza la relazione.

Un router in Passive State è un router che ha una versione stabile della routing table.

Si supponga, a questo punto, che il router R riceva da un router adiacente K un messaggio indicante che il costo del link l(K,A) è cambiato oppure che il costo verso una destinazione d(K,D) è cambiato.

Per la regola del "costo minore verso una destinazione":

  se il nuovo costo verso la destinazione è minore del precedente in possesso di R, si adotta come next hop il router K e si aggiorna le route

  se il nuovo costo è superiore a quello in possesso di R:

  Se K non è il router X (che era il precedente next hop verso D) scarta l’informazione

  Se K è il router X applica la regola del "vicino accettabile"

Per essere sicuri che ci sia stato un cambio di route si aspetta quindi che il precedente next hop verso la destinazione si sia aggiornato. Solo a questo punto R decide di aggiornarsi applicando la regola del "vicino accettabile".

LA REGOLA DEL "VICINO ACCETTABILE"

  Cerca tra tutti i router adiacenti A se esiste un router K tale che la sua distanza dalla destinazione D sia minore della distanza precedentemente in possesso di R: d(K,D) < d(R,D)

  Questo significa che il nuovo router K è in grado di raggiungere la destinazione D attraverso un percorso alternativo senza passare da R e quindi il costo d(K,D) non dipende dal costo d(R,D)

  Se non esiste alcun vicino adiacente che soddisfa la relazione il router R deve attivare il processo di "Diffusione"

UN ESEMPIO

Si supponga che, nella rete illustrata in figura, venga interrotto il link C-D:

 

 

A questo punto, B non è vicino accettabile. Se X riporta i costi in blu, non è vicino accettabile; se, viceversa ha i costi in rosso, allora è un vicino accettabile.

Torna all'inizio

 

IL PROCESSO DI DIFFUSIONE

Il router R "congela" la sua routing table (e passa ad uno stato "attivo"). Se prima del guasto non vi erano loop, congelando la routing table ci si assicura che la situazione delle route non cambia e quindi non potranno esserci loop. Potrebbero esserci però delle perdite di connettività (black hole) momentanee.

R imposta come attuale distanza da D il valore in base al nuovo costo di X: l(R,X) + d(X,D).

Il router R emette una speciale forma di update ("query") verso tutti i suoi vicini (tranne X), "comunicando" questa nuova distanza da D.

Il router Y che riceve l’update:

  Se il suo costo per raggiungere D è inferiore a quello comunicatogli da R, oppure se ha un "Vicino Accettabile" rimane in stato passivo e comunica la propria routing table a R (messaggio di Reply)

  Altrimenti entra in stato attivo ed inizia ad emettere la query di update verso tutti i vicini tranne quello da cui ha ricevuto la query

Quando un router riceve le risposte ("Reply") alla sua query, da tutti i vicini ai quali l’aveva inviata, crea la nuova routing table e provvede eventualmente a generare a sua volta il Reply al router precedente.

Torna all'inizio

 

I PACCHETTI

EIGRP definisce 6 tipi di messaggi:

  Hello - multicast; permettono di mantenere nota dei vicini attivi e di rilevare il down di un router

  Acknowledgement - unicast, come hello senza dati, con un numero di ack

  Update - unicast ad ogni vicino scoperto, multicast in caso di modifiche di topologia; trasporta un messaggio di aggiornamento delle route da parte di un router "passivo"

  Query - multicast/unicast: viene inviata da un router in stato "attivo" ed attiva l’algoritmo di diffusione

  Reply - multicast/unicast: viene inviata in risposta ad una query

  Request - utilizzato per ottenere informazioni specifiche dai vicini (come in RIP)

Torna all'inizio

 

LA NEIGHBOR TABLE

Per ogni entry contiene:

  L'indirizzo del vicino (ricevuto con il pacchetto Hello)

  L'hold time (ricevuto con il pacchetto Hello)

  L'interfaccia

  Il round-trip-timer

  Le informazioni per il Reliable Transfer Protocol

Torna all'inizio

 

LA TOPOLOGY TABLE

Contiene tutte le destinazioni annunciate dai router vicini.

Per ogni entry contiene:

Il destination address

  La lista del vicino che annuncia la destinazione e la metrica associata.

Torna all'inizio

 

ROUTE STATE

Ogni entry della topology table e' caratterizzata da due stati:

  Passive: quando il router non sta ricalcolando la destinazione

  Active: durante l’aggiornamento

Quando una destinazione è active, la corrispondente entry sulla routing table non può essere aggiornata.

Torna all'inizio

 

ROUTE TAGGING

Una route sulla tabella di routing può essere:

  I

  E

Le route esterne sono taggate con Router ID, AS di destinazione, ID del protocollo esterno, Metrica di importazione, Tag definita dall’amministratore e bit di flag per il default route

Torna all'inizio

 

COMPATIBILITA' CON IGRP

Di seguito si riportano i principali punti che riguardano la compatibilita' del protocollo EIGRP con il protocollo IGRP:

  Le route di IGRP sono automaticamente trasportate in E-IGRP e viceversa

  E-IGRP tratta le route apprese da IGRP come route esterne che possono essere facilmente "customizzate" dal gestore

E’ pertanto possibile fare un upgrade graduale da IGRP a EIGRP.

Torna all'inizio