Routing Protocols: EIGRP

EIGRP – Enchanted IGRP

Eigrp un protocollo di routing IGP sviluppato da Cisco sulla base di IGRP. E’ un protocollo Ibrido, che utilizza concetti propri dei protocolli Link-state e Distance Vector.

Eigrp mantiene una tabella topologica, che viene utilizzata per scegliere la route migliore ed eventuali successori, ossia next-hops che siano utilizzabili nel caso la route migliore smettesse di essere raggiungibile.

Eigrp ha tempi di convergenza assolutamente brevi, eccezionalmente scalabile (adatto quindi a reti di grandi dimensioni) e richiede un traffico minimo a regime.

Eigrp invia alcuni pacchetti in modo affidabile, utilizzando RTP (Reliable Transport Protocol), utilizza HELLOs per scoprire nuovi vicini ed identificare eventuali cadute e utilizza l’algoritmo DUAL (Diffusing Update Algorithm) per definire la lista dei nodi successori. I pacchetti IP vengono identificati dal protocol type 88 e sono spediti quasi tutti sull’indirizzo multicast 224.0.0.10 (ad eccezione di alcuni specifici spediti in unicast).

Messaggi

Eigrp utilizza 5 tipi di messaggi (Packet Type si riferisce al campo type del pacchetto eigrp):

  • Hello (Packet Type: 5) viene utilizzato per scoprire eventuali vicini. Viene spedito in multicast periodicamente e non necessita acks.
  • Update (Packet Type: 1) inviato in multicast solo quando viene avvertito un cambio nella topologia. Comprende le routes (solo quelle che hanno sub?to modifiche) e viene inviato utilizzando RTP (Reliable Trasmission Protocol)
  • Ack (Packet Type: 8) conferma la ricezione di un Update.
  • Query (Packet Type: 3) usato per richiedere eventuali nuovi percorsi per una route che prima era presente nella propria tabella di routing e che stata persa (e per la quale non esiste un successore). Viene inviata in multicast e, se non si riceve una risposta, in unicast ai propri vicini. Vengono fatti un massimo di 16 tentativi prima di trovare una risposta positiva o di abbandonare la ricerca. Anch’esso viene inviato con RTP.
  • Reply (Packet Type: 4) un messaggio unicast inviato come risposta ad una Query. Contiene il percorso per la destinazione richiesta oppure nulla.

Neighbors Discovery

Eigrp usa il concetto di Neighbor per costruire la propria tabella di neighboring. Quando il router viene abilitato ad usare eigrp, invia in multicast un messaggio Hello, cui tutti i vicini rispondono in unicast. Per mantenere il rapporto di vicinato, gli hello messages continuano ad essere scambiati. Inoltre, per stabilire il rapporto di vicinato, necessario che i routers concordino sull’AS e sui K-values.

I Timers

Eigrp utilizza due timers per gestire il rapporto di vicinato. Gli Hello messages vengono inviati di default ogni 5 secondi sui link veloci (>T1) e 60 secondi sui link multipunto o lenti. Un vicino viene considerato irragiungibile quando non viene visto un hello message in un tempo equivalente a 3 volte l’hello timer. Entrambi i valori possono essere personalizzati con i comandi appositi.

La Metrica

La metrica in eigrp una formula che pu tenere? in considerazione molti fattori:

metric = 256*(K1*bandwidth + (K2*bandwidth/256-load) + K3*delay)* K5/(reliability+K4)

Dove K1,K2,K3,K4,K5 sono i pesi usati dalla metrica per valutare l’importanza delle varie propriet?. Una nota: se K5 e K4 sono zero, matematicamente l’intera metrica viene posta a zero, mentre IOS semplicemente ignora l’ultima parte dell’espressione (ponendola ad 1). I K-values di default sono K1 e K3 = 1 ed i restanti uguali a 0, questo significa che EIGRP, di norma, considera soltanto bandwidth e delay per la metrica.

DUAL

Diffusing Update Algorithm l’algoritmo utilizzato da EIGRP per trovare la route migliore verso una destinazione e gli eventuali successors che non diano luogo a dei loops. Ogni vicino espone la propria distanza dalla route, chiamata advertised distance e la distanza dall’endpoint del link su cui viene inviato il messaggio, detto feasible distance (ossia advertised distance + link cost).

Basandosi sui dati ricevuti, ogni router ha una mappa topologica completa e su di questa, applica l’algoritmo SPF (Shortest Path First o Djkstra) che si occupa di calcolare il percorso a minor costo (quindi il router con feasible distance minima) e piazza tutti gli altri routers che offrono una advertised distance inferiore alla feasible distance del successor (ossia il router scelto come next-hop per la destinazione) come feasible successors (ossia routers che, in caso di caduta dell’attuale successor, ne prendono il posto senza scatenare un cambio topologico) per la route scelta, in quanto sicuramente non porteranno a loops.

Questo algoritmo permette di minimizzare il traffico in presenza di cambi topologici di lieve entit? (come la caduta di un link), sostituendo immediatamente il successor non piu’ raggiungibile con un feasible successor, questa modalit? di recovery chiamata passiva, in quanto non coinvolge nessun altro router ed avviene in tempi inferiori al secondo.

Nel caso non siano presenti feasible successors, la rotta viene marcata A (nella topology table), ossia Active, e viene inviato un pacchetto multicast ti tipo 3 (Eigrp Query) a tutti i restanti vicini. Ogni vicino deve rispondere con il proprio successor per la route oppure con la mancanza di successori verso la destinazione. Se la risposta non arriva, viene inviato lo stesso pacchetto in unicast al vicino che non ha risposto.

Se il vicino interrogato non ha una route valida, invia a sua volta un Query packet ai propri vicini. Se, durante questo iter, i vicini interrogati non rispondono, la route viene marcata con SIA (Stuck in Active).

Tabelle

Eigrp mantiene in memoria 3 tabelle:

  • Tabella di routing (Routing Table – show ip route eigrp), i records della tabella di routing imparati tramite eigrp.
  • Tabella topologica (Topology Table – show ip eigrp topology). In questo database vengono mantenute le routes apprese tramite eigrp (esiste un database differente per ogni AS di cui il router f? parte) con alcune informazioni:
    • Lo stato, attivo, passivo, [...]
    • La route
    • La feasible distance
    • L’elenco dei successori con i due valori di metrica
      • Il primo valore indica la distanza tra il nostro router e la route, passando per il successore dato (FD), ossia la distanza del successore verso la route pi il costo di link.
      • Il secondo valore indica invece la distanza che il successore dato riporta verso la route (AD)
    • L’interfaccia tramite la quale si appresa la route (che sar? anche l’interfaccia da cui gli eventuali pacchetti usciranno.
  • Tabella di vicinato (Neighbouring Table – show ip eigrp neighbors), ossia la tabella mantenuta tramite gli Hello packets che offre:
    • H, che semplicemente il numero progressivo che indica l’ordine in cui gli eventuali vicini sono stati scoperti
    • Indirizzo L3 del vicino
    • Interfaccia tramite la quale si conosce il vicino
    • Holdtime, ossia entro quanti secondi tale vicino verr? dichiarato defunto nel caso non arrivi un Hello packet
    • Uptime, ossia da quanto tempo si instaurato il rapporto di vicinanza
    • SRTT, Smooth Round Trip Time, ossia il tempo che viene impiegato affinch un messaggio sia inviato al vicino e la risposta possa tornare indietro.
    • RTO, Retransmission Time Out, ossia il tempo massimo entro il quale un pacchetto di cui viene richiesto l’ack non viene rispedito.
    • Q Cnt il numero di pacchetti EIGRP in coda, in attesa di essere spediti. Se superiore a 0, probabilmente c’ una congestione in atto.
    • Seq No, l’ultimo numero? numero sequenziale ricevuto dal vicino ed al quale si dato un Ack.

Le Tabelle – Esempi

Routing Table

R1>sh ip route eigrp
     2.0.0.0/32 is subnetted, 1 subnets
D       2.2.2.2 [90/409600] via 172.16.0.10, 01:34:25, Ethernet1/0
     3.0.0.0/32 is subnetted, 1 subnets
D       3.3.3.3 [90/409600] via 172.16.0.6, 01:34:25, Ethernet1/1
     172.16.0.0/30 is subnetted, 3 subnets
D       172.16.0.0 [90/284160] via 172.16.0.10, 01:34:25, Ethernet1/0
                   [90/284160] via 172.16.0.6, 01:34:25, Ethernet1/1
D    192.168.0.0/24 [90/284160] via 172.16.0.10, 01:34:25, Ethernet1/0
D    192.168.1.0/24 [90/284160] via 172.16.0.6, 01:34:25, Ethernet1/1

Neighbors Table

R1>sh ip eigrp neighbors
IP-EIGRP neighbors for process 65501
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
1   172.16.0.10             Et1/0             11 01:34:47    2   200  0  25
0   172.16.0.6              Et1/1             10 01:41:33    2   200  0  38

Topology Table

R1>sh ip eigrp topology
IP-EIGRP Topology Table for AS(65501)/ID(1.1.1.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status 

P 3.3.3.3/32, 1 successors, FD is 409600
        via 172.16.0.6 (409600/128256), Ethernet1/1
        via 172.16.0.10 (412160/156160), Ethernet1/0
P 2.2.2.2/32, 1 successors, FD is 409600
        via 172.16.0.10 (409600/128256), Ethernet1/0
        via 172.16.0.6 (412160/156160), Ethernet1/1
P 1.1.1.1/32, 1 successors, FD is 128256
        via Connected, Loopback0
P 192.168.0.0/24, 1 successors, FD is 284160
        via 172.16.0.10 (284160/28160), Ethernet1/0
        via 172.16.0.6 (286720/30720), Ethernet1/1
P 192.168.1.0/24, 1 successors, FD is 284160
        via 172.16.0.6 (284160/28160), Ethernet1/1
        via 172.16.0.10 (286720/30720), Ethernet1/0
P 192.168.2.0/24, 1 successors, FD is 281600
        via Connected, Ethernet1/2
P 192.168.3.0/24, 1 successors, FD is 281600
        via Connected, Ethernet1/3
P 172.16.0.8/30, 1 successors, FD is 281600
        via Connected, Ethernet1/0
P 172.16.0.4/30, 1 successors, FD is 281600
        via Connected, Ethernet1/1
P 172.16.0.0/30, 2 successors, FD is 284160
        via 172.16.0.6 (284160/28160), Ethernet1/1
        via 172.16.0.10 (284160/28160), Ethernet1/0

Load Balancing

Tutti i protocolli di routing supportano Equal Cost Load Balancing, ossia il bilanciamento di carico su routes di eguale metrica. Eigrp supporta anche una seconda modalit?, molto interessante, Proportional Unequal Cost Load Sharing.

Come possiamo vedere dall’esempio di topology table, R1 ha due successori per la subnet 172.16.0.0/30, il primo 172.16.0.6 mentre il secondo 172.16.0.10, entrambi con la stessa FD, AD. In questo caso, come possiamo immaginare, entrambe le routes vengono aggiunte alla routing table ed il traffico verso questa subnet verr? equamente distribuito tra i due routers.

EIGRP considera bilanciabili tutte le routes con FD minima, inoltre inserisce nella propria tabella dei successors, tutti quelli con FD <= FD_minima*variance. Variance un parametro configurabile nella sottosezione router di ios con valori compresi tra 1 e 128. La cosa realmente comoda, che questi successori vengono caricati proporzionalmente alla propria metrica.

Laboratori

Laboratorio EIGRP #0 – configurazione di base

EIGRP Lab 0

EIGRP Lab 0

Scenario:

I tre routers appartengono ad un’azienda di piccole dimensioni che ha interconnesso le 3 sedi mediante 3 routers (R1, R2, R3) cui confluiscono 4 subnets totali. L’azienda, essendo intestataria di un ASN ed avendo un parco macchine interamente Cisco, decide di optare per EIGRP per il routing interno. Il nostro compito fare in modo che ogni router sia a conoscenza delle subnets dell’azienda.

Obiettivi:

  • Raggiungere la distribuzione delle subnets servite dai vari routers appartenenti allo stesso AS

Richieste

  • Configurazione di base dei routers
    • hostname
    • enable su “ciscolab1″
    • banner adeguato
    • lock delle vty e console con login
    • Indirizzo ip /30 sulle punto-punto ethernet
    • Loopback 0 congruente con hostname (R1 = 1.1.1.1)
    • Subnets secondo lo schema
  • Configurazione EIGRP secondo l’ASN dell’azienda

Download dei files del laboratorio: Laboratorio EIGRP 0

Laboratorio EIGRP #1 – redistribuzione eigrp su AS differenti

EIGRP Lab 1

EIGRP Lab 1

Scenario:

La stessa azienda del laboratorio 0, acquisisce una nuova piccola realt? della zona. Questa nuova acquisizione porta all’annessione della nuova rete (che gi? possiede un ASN proprio), al tessuto di rete esistente. Il compito quello di configurare i routers affinch le routes dei due AS differenti, vengano ridistribuiti reciprocamente.

Obiettivi:

  • Il router dell’azienda acquisita deve possedere le routes dell’azienda acquisente
  • I routers dell’azienda acquisente, deve poter raggiungere le subnets dell’acquisita

Richiesta

  • Applicare la redistribuzione tra i due AS

Download dei files del laboratorio:

Webografia

Eigrp draft su cisco

CCNP BSCI Official Exam Certification Guide, 4th Ed – Brent D. Stewart, Clare Gough (ISBN13: 987-1-58720-147-9) – Pagine 63-82