|
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:
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. L'algoritmo è composto da due parti: 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. Ogni router R mantiene per ogni destinazione D e per ogni suo router adiacente A le seguenti informazioni:
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":
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"
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. 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:
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. EIGRP definisce 6 tipi di messaggi:
Per ogni entry contiene:
Contiene tutte le destinazioni annunciate dai router vicini. Per ogni entry contiene:
Ogni entry della topology table e' caratterizzata da due stati:
Quando una destinazione è active, la corrispondente entry sulla routing table non può essere aggiornata.
Una route sulla tabella di routing può essere:
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
Di seguito si riportano i principali punti che riguardano la compatibilita' del protocollo EIGRP con il protocollo IGRP:
E’ pertanto possibile fare un upgrade graduale da IGRP a EIGRP.
|