Protocolli e architetture di instradamento/IGRP e EIGRP
L'Interior Gateway Routing Protocol (IGRP) è un protocollo di instradamento intra-dominio, proprietario di Cisco, basato sull'algoritmo Distance Vector (DV).
Anche nell'IGRP è assente il supporto all'indirizzamento classless (netmask), ma rispetto al RIP ha delle funzionalità aggiuntive "orientate al marketing" che tuttavia nascondono degli errori tecnici non previsti:
- metriche più sofisticate: introducono maggiore complessità e minore stabilità delle rotte;
- multipath routing: il multipath routing a costi differenziati può dare origine a cicli;
- supporto per reti eterogenee: un intervallo ampio per i costi dei link può rallentare la convergenza ad infinito;
- meno traffico legato al protocollo di instradamento: l'aggiornamento dei DV avviene ogni 90 secondi;
- maggiore stabilità: i triggered update sono inviati solo se il costo è cambiato più del 10% per evitare la frequente riconfigurazione della rete;
- non più di una frammentazione IP: i messaggi IGRP trasportano anche informazioni sulle MTU supportate dai router lungo il percorso → il pacchetto può essere frammentato subito in base alla minima MTU, evitando che in un secondo tempo venga ri-frammentato con una MTU più piccola.
Metriche
modificaIl costo è ottenuto dalla combinazione di 4 metriche:
- - larghezza di banda: è direttamente proporzionale alla larghezza di banda del link (valori da 1 a 224 con 1 = 1,2 kbit/s);
- - ritardo: è inversamente proporzionale alla larghezza di banda del link, e considera solo il ritardo di trasmissione ignorando altri componenti come il ritardo di propagazione e il ritardo di accodamento (valori da 1 a 224 con 1 = 10 ms);
- - affidabilità: può essere piuttosto variabile nel tempo (valori da 1 a 255 con 255 = 100%);
- - carico: dipende dal traffico istantaneo (valori da 1 a 255 con 255 = 100%).
Con i valori predefiniti dei coefficienti , il costo tiene conto solo del ritardo e della larghezza di banda :
I comandi IGRP richiedono la specificazione di una classe di servizio (TOS), ma in pratica l'instradamento basato sulle classi di servizio non è stato mai implementato in questo protocollo, perché richiederebbe una tabella di instradamento e una funzione di costo differenti per ogni classe di servizio.
- Problemi
Una metrica così sofisticata soffre in realtà di alcuni problemi dal punto di vista tecnico:
- è difficile capire le scelte di instradamento: gli esseri umani guardano la topologia della rete e misurano la distanza in "numero di hop" → non è facile determinare qual è il percorso migliore quando viene adottata una metrica più sofisticata;
- è difficile capire come regolare i coefficienti : che cosa succede alla rete quando i parametri vengono modificati? quali valori bisogna dare a essi al fine di ottenere il comportamento voluto?
- alcune metriche (ad es. carico), non essendo molto stabili, forzano la rete ad adattare continuamente i percorsi perché questi ultimi cambiano spesso di costo → la necessità di aggiornare frequentemente le rotte porta a più transitori con conseguenti buchi neri e bouncing effect, più traffico di instradamento e più risorse della CPU dedicate ai protocolli di instradamento;
- è difficile definire il giusto valore soglia per l'infinito: IGRP lo definisce a 224, ma è necessario troppo tempo per aumentare i costi fino al valore soglia quando sono coinvolti link a basso costo.
Multipath routing
modificaL'IGRP supporta il multipath routing a costi differenziati: sono ammesse più rotte per la stessa destinazione, anche se quelle rotte hanno costi differenti ( ), e il carico è distribuito proporzionalmente al costo della rotta.
- Problema
Il traffico può entrare in un ciclo quando percorsi differenti vengono scelti da due router: uno può scegliere il percorso primario (rotta ottimale) e l'altro il percorso secondario (rotta sub-ottimale) → nell'ultima versione di IGRP è consentito solo il multipath routing a costi equivalenti (il coefficiente è impostato a 1) al fine di impedire queste problematiche.
EIGRP
modificaL'Enhanced IGRP introduce diversi miglioramenti all'IGRP, soprattutto dal punto di vista della scalabilità:
- supporta l'indirizzamento classless: le reti sono finalmente annunciate con le coppie indirizzo-netmask corrette;
- implementa il Diffusing Update Algorithm (DUAL): la rete è libera da cicli, anche durante i transitori, e la convergenza è più rapida (nessun fenomeno di count to infinity);
- disaccoppia la funzione di neighbor discovery dal meccanismo di aggiornamento delle rotte: i router si scambiano periodicamente dei piccoli messaggi di Hello, mentre i DV vengono generati solo quando è cambiato qualcosa nella rete:
- i messaggi di Hello possono essere mandati ad alta frequenza, rendendo più veloci il rilevamento dei guasti e quindi la convergenza, perché:
- consumano meno banda → il traffico di instradamento è ridotto;
- consumano meno risorse della CPU rispetto all'elaborazione e al calcolo dei DV;
- i DV devono essere inviati tramite un protocollo affidabile: ogni DV deve essere confermato da un messaggio di acknowledgment, e deve essere ritrasmesso se è andato perso.
- i messaggi di Hello possono essere mandati ad alta frequenza, rendendo più veloci il rilevamento dei guasti e quindi la convergenza, perché: