Protocolli e architetture di instradamento/IGRP e EIGRP

Indice del libro

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

modifica

Il 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

modifica

L'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.

L'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.