Problema del loop di instradamento - Routing loop problem

Un ciclo di instradamento è un problema comune con vari tipi di reti , in particolare le reti di computer . Si formano quando si verifica un errore nel funzionamento dell'algoritmo di instradamento e, di conseguenza, in un gruppo di nodi, il percorso verso una particolare destinazione forma un ciclo.

Nella versione più semplice, un ciclo di instradamento di dimensione due, il nodo A pensa che il percorso verso una destinazione (chiamiamolo C) sia attraverso il suo nodo vicino, il nodo B. Allo stesso tempo, il nodo B pensa che il percorso verso C inizi a nodo A.

Pertanto, ogni volta che il traffico per C arriva ad A o B, verrà ripetuto all'infinito tra A e B, a meno che non esista un meccanismo per impedire quel comportamento.

Come può formarsi un ciclo di instradamento

Image
Rete interrotta

Ad esempio, in questa illustrazione, il nodo A sta trasmettendo dati al nodo C tramite il nodo B. Se il collegamento tra i nodi B e C si interrompe e B non ha ancora informato il nodo A della rottura, il nodo A trasmette i dati al nodo B supponendo che il collegamento ABC sia operativo e di minor costo. Il nodo B conosce il collegamento interrotto e cerca di raggiungere il nodo C tramite il nodo A, inviando così i dati originali al nodo A. Inoltre, il nodo A riceve i dati che ha avuto origine dal nodo B e consulta la sua tabella di instradamento. La tabella di instradamento del nodo A dirà che può raggiungere il nodo C tramite il nodo B (perché ancora non è stato informato dell'interruzione) inviando così i suoi dati al nodo B creando un loop infinito. Questo problema del loop di routing è anche chiamato loop a due nodi .

Come può persistere un ciclo di routing

Considera ora cosa succede se sia il collegamento da A a C che il collegamento da B a C svaniscono contemporaneamente (questo può accadere se il nodo C è andato in crash). A crede che C sia ancora raggiungibile tramite B e B crede che C sia raggiungibile tramite A. In un semplice protocollo di raggiungibilità, come EGP , il ciclo di instradamento persisterà per sempre.

In un ingenuo protocollo del vettore di distanza, come il protocollo delle informazioni di instradamento , il ciclo persisterà finché le metriche per C raggiungono l' infinito (il numero massimo di router che un pacchetto può attraversare in RIP è 15. Il valore 16 è considerato infinito e il pacchetto viene scartato).

Prevenzione e mitigazioni

In un protocollo di routing con stato del collegamento , come OSPF o IS-IS , un loop di routing scompare non appena la nuova topologia di rete viene invasa da tutti i router all'interno dell'area di routing. Ipotizzando una rete sufficientemente affidabile, ciò avviene in pochi secondi.

I protocolli di routing del vettore di distanza più recenti come BGP , EIGRP , DSDV e Babel hanno la prevenzione dei loop incorporata: utilizzano algoritmi che assicurano che i loop di routing non possano mai verificarsi, nemmeno in modo transitorio. I protocolli di routing più vecchi come RIP e IGRP non implementano le forme più recenti di prevenzione dei loop e implementano solo mitigazioni come lo split horizon , il route poisoning e i timer di holddown .