Algoritmi di instradamento
...

In un instradamento di tipo link state, ogni nodo conosce la topologia di rete, ovvero ogni nodo conoscere le distanze tra sé stesso e tutti gli altri nodi della rete. Link state utilizza l'algoritmo di Dijkstra.

Sistemi autonomi
...

I router sono raggruppati in sistemi autonomi. Alcuni ISP hanno un singolo sistema autonomo composto da moltissimi router, altri invece hanno diversi sistemi autonomi. Router che fanno parte dello stesso sistema autonomo eseguono lo stesso algoritmo di instradamento (intra-AS).

OSPF
...

OSPF è un protocollo link state che utilizza l'inondazione (flooding) di informazioni riguardo lo stato dei collegamenti.
In OSPF ogni nodo ha un grafo della topologia del sistema autonomo e manda in esecuzione locale Dijkstra per determinare il percorso migliore verso tutte le sotto-reti.
I costi dei collegamenti vengono fissati dall'amministratore di rete. OSPF non impone una politica particolare per l'assegnazione di essi.

In OSPF ogni volta che si verifica un cambiamento nella rete (variazione di peso, cambiamento di disponibilità), il router lo comunica in broadcast a tutti gli altri router del sistema autonomo.
Inoltre, anche se non si sono verificate variazioni, periodicamente un router invia informazioni sullo stato dei collegamenti
Gli annunci OSPF (contenuti in messaggi OSPF) vengono trasportati da IP.

Vantaggi
...

Sicurezza
...

Lo scambio di informazioni può essere autenticato in due modi:

  • configurazione sui router della password, che verrà trasmessa in chiaro (meno sicuro);
  • attraverso hash MD5 cifrati (più sicuro), in ogni router viene salvata la chiave per creare l'hash. In questa modalità è possibile utilizzare i numeri di sequenza per evitare attacchi di duplicazione.
Percorsi con lo stesso costo
...

Quando più percorsi hanno lo stesso costo, OSPF consente di utilizzarli tutti per la trasmissione.

Supporto integrato per instradamento unicast e multicast
...
Supporto alle gerarchie in un dominio di instradamento
...

Con OSPF è possibile struttura i sistemi autonomi in modo gerarchico. In sistema autonomo può essere suddiviso in più aree. Ad ogni area fa capo un router di confine dell'area. Una zona di interconnessione tra tutte le aree è detta dorsale di cui fanno parte i router di dorsale (che interconnettono i le aree del sistema autonomo) alla dorsale fa capo un router di confine (di tutto il sistema autonomo)

Distance Vector (DV)
...

Distance vector a differenza di link state non usa informazioni globali.
Distance vector è:

  • distribuito: ogni nodo riceve parte dell'informazione da uno o più dei suoi vicini connessi a cui, dopo aver fatto i calcoli, restituisce i risultati;
  • iterativo: il processo continua se si ripetono scambi di informazioni (se essi non avvengono l'algoritmo rimane bloccato);
  • asincrono: i nodi non devono essere sincronizzati tra di loro durante l'esecuzione.

DV usa l'algoritmo di Bellman-Ford.

BGP instradamento tra ISP
...

Con OSPF vengono determinati percorsi ottimali per coppie di router all'interno di un sistema autonomo.
Con BGP vengono determinati percorsi ottimali tra coppie di sistemi autonomi.
In BGP i pacchetti vengono instradati verso sotto-reti e non verso dispositivi di rete specifici.

BGP consente a ogni router:

  • di comunicare la propria esistenza al resto di Internet;
  • di determinare percorsi "ottimi" verso le sotto-reti.
Funzionamento
...

Scenario:
Pasted image 20231018163056.png
ogni router in un AS è un router interno o di bordo.
In 3d vi è una sotto-rete X.
All'interno di ogni sistema autonomo vi sono connessi TCP per lo scambio di informazioni relative all'AS stesso.
Il router di bordo si scambia sia informazioni con gli altri router dell'AS, sia con gli altri AS (per esempio 1c comunica esternamente con 2a).

3a invia messaggio BGP esterno (eBGP) a 2c comunicando: "AS3 x".
2c inoltra il messaggio BGP all'interno (iBGP) a tutti gli altri nodi di AS2, compreso 2a.
Questo invia messaggio eBGP a 1c comunicando:
"AS2 AS3 x".
1c invia messaggi iBGP a tutti gli altri router di AS1.

Quando un router annuncia una sottorete, include alcuni attributi: AS-PATH e NEXT-HOP.
AS-PATH: elenca i sistemai autonomi attraverso i quali è passato l'annuncio.
NEXT-HOP è l'interfaccia del router che consente l'accesso all'AS-PATH.

Instradamento hot potato
...

Viene scelto il percorso il cui NEXT-HOP è più vicino.
Ovvero non si tiene conto di quanto sia lungo l'AS-PATH, viene scelto il NEXT-HOP che immette i pacchetti nell'AS-PATH con minimo percorso.

Instradamento con algoritmo di selezione delle rotte
...

Alle rotte viene assegnato un attributo di preferenza locale.
A parità di questo attributo, viene scelto l'AS-PATH più breve.
A parità di preferenza locale e AS-PATH, si sceglie quello con NEXT-HOP più breve.

Anycast
...

Anycast è utilizzato dai server DNS per fornire il root DNS più vicino all'utente che invia una query DNS.
La CDN (di server DNS in questo caso) assegna lo stesso IP a diversi server, ognuno di questi utilizza BGP per annunciare tale indirizzo. Quando un router BGP riceve l'annuncio di più percorsi per tale IP, lo tratta come se fossero diversi percorsi verso la stessa area fisica, anche se nella realtà sono percorsi diversi verso luoghi diversi. Ogni router per costruire la tabella di inoltro, utilizza BGP internamente per scegliere il percorso migliore (il più vicino in base al conteggio degli hop AS per esempio) per quell'IP, quindi in automatico viene assegnato il server della CDN più vicino al router in questione.

LV vs DV
...

  • LS stressa di più la CPU e la memoria in quanto è necessario conoscere l'intera topologia di rete per ciascun nodo, DV invece no.
  • LS richiede scambio di più messaggi, ogni nodo ha bisogno di conoscere il peso di tutti i collegamenti, inoltre ogni volta che cambia il peso di un collegamento deve essere comunicato a tutti i nodi, mentre DV scambia messaggi solo tra vicini.
  • DV può impiegare diverso tempo per convergere (i fattori in gioco sono tanti per stabilire quanto impiegherà), LS impiega .
  • DV può presentare cicli di instradamento e conteggio all'infinito, Dijkstra le oscillazioni.
  • LS contiene meglio eventuali errori trasmessi dai router poiché ognuno effettua i calcoli per sé stesso, mentre in DV gli errori si propagano tra tutti i router e vengono utilizzati da tutti i router nella scelta dei percorsi.
Nessuno dei due prevale sull'altro ed entrambi vengono utilizzati.
...

Oscillazioni di Dijkstra
...

Pasted image 20231016102410.png
In figura si vede che le tabelle di instradamento correnti dei router indicati fanno percorre gli instradamenti in senso antiorario.
indicano i pesi in senso di unità di traffico prodotte dai router.
Nell'iterazione successiva a quella che ha prodotto i risultati in figura, si accorge che il percorso verso è più breve se percorso passando per (costo 1), mentre passando da è , allora cambia le sue tabelle di inoltro. Allo stesso modo tutti gli altri fanno la stessa cosa (instradando verso il percorso meno costoso che corrisponde con quello prodotto in senso orario). La volta successiva si verificherà una situazione simile che porterà ad un'inversione del senso del percorso. Provocando delle oscillazioni.
Le soluzioni sono:

  • impedire l'instradamento basato sul traffico generato dai router (non ammissibile visto che si vogliono evitare tratti di rete congestionati)
  • impedire che tutti i router lancino Dijkstra allo stesso istante.

Conteggio all'infinito in Bellman-Ford
...

Quando il costo di un collegamento diminuisce non si verificano particolari problemi.
Quando il costo di un collegamento aumenta, per esempio in questo caso:
Pasted image 20231016140806.png
Prima del cambiamento sono note queste distanza:


  • sa che è in grado di raggiungere con costo .
    Dopo il cambiamento si accorge del cambiamento di costo tra sé stesso e , tuttavia per è vero che può raggiungere con costo (non sa del cambiamento). Allora aggiunge il costo tra sé stesso e () al costo , totale .
    Calcolati questi costi, comunica il suo nuovo vettore a .
    essendo distante da farà lo stesso ragionamento, la distanza nota a lui tra e è quella appena ricevuta da (), allora aggiunge 1 al costo e comunica il suo nuovo vettore.
    Cosa sta succedendo?
    manda i pacchetti diretti a , a .
    li manda invece a .
    Ogni volta verrà aggiunto che è la distanza tra loro due (), il pacchetto viene rimbalzato di continuo, finché tali continue somme non porteranno a scegliere il collegamento con peso .

Inversione avvelenata
...

Se instrada tramite per giungere a , comunica a che non ha un modo per instradare verso anche se ciò non è vero, in tal modo però non sceglie nuovamente per instradare verso impedendo la formazione di cicli.