Teoria Secondo Modulo Ccna Lezione 3

Algoritmi di routing dinamico parte seconda.

Un algoritmo di routing si accorge che la rete è andata giù perché non riceve più segnali a livello data link oppure perché non riceve più informazioni di protocollo.
Il rischio dei cicli nei protocolli è parecchio probabile. Causa di informazioni vecchie e inconsistenti girino continuamente in rete.
Per evitare questo viene inserito una distanza infinita (che nel rip è 16), quando una rete raggiunge distanza 16 viene dichiarata irraggiungibile.

Slip Horizon

Un altro modo per evitare i cicli è che un router non manda informazioni su interfaccia se quelle informazioni le ho apprese da quell'interfaccia. Se io ho appreso info su una rete A dal router1 attraverso l'interfaccia1 non manderò informazioni su A al router1, perché sarebbe inutile.

Route Poisoning

Informare gli altri router che una rete è diventata irraggiungibile quindi ha raggiunto distanza infinita.

Slip Horinzon e Route Poisoning

Mettiamo insieme i concetti. Comunico alla router che mi ha fornito le informazioni che per me la rete che mi ha passato lui è a distanza infinita. In questo modo anche se lui perde la rotta per la rete che mi ha fornito non ha la tentazioni di raggiungerla verso di me. La rete così converge molto velocemente.

Holddown timer

Il problema dei cicli è che si usava informazioni vecchie di prima del guasto dopo il guasto. Una volta che una rete non è più raggiungibile si attiva un timer. Quando un router riceve un aggiornamento che dice che una rete che non è più raggiungibile oltre a modificare la sua tabella di routing fa partire un holddown timer.
Cosa succede se mentre il timer è attivo al router arriva un'informazione sulla rotta che è andata giù? Se il valore è minore di quello che aveva prima allora la rotta è buona perché non può essere un ciclo dato che il costo è minore. Se questo accade blocco il timer e aggiorno la mia tabella di routing.
Se invece mentre il timer è attivo ricevo una info con valore maggiore può essere potenzialmente un ciclo.
Se settiamo un buon valore di holdtime timer abbastanza alto non avendo più informazioni sulle rotte la rotta scadrà e quindi verrà eliminata.
Dopo la scadenza del timer invece posso accettare anche rotte con metriche più alte perché saranno buone. È anche probabile che un router abbia un'altra rotta più alta rispetto a quella di prima

RIP versione 1 e 2

La distanza massima di rip è 15, quando è 16 vuol dire che non c'è raggiungibilità.
Dato che la metrica del rip è il numero di hop, il protocollo potrebbe scegliere il percorso più lento.
Rip verione 1 non trasferisce le maschere, usa quelle A-B-C è classfull
Rip versione 2 invece trasferisce le maschere insieme all'indirizzo.
Ogni router invia in broadcast ogni 30 secondi il vettore di istanze

Per attivare il rip devo lanciare prima il processo e poi dirgli che interfacce comunicare.

r1(config)#router rip
r1(config-router)# network 192.168.13.0
r1(config-router)# network 192.168.14.0

Messaggi

Rip utilizza scambiarsi messaggi appogiandosi al protocollo udp.
Analizziamo la pila protocollare dei messaggi

Data Link 
mac source address 
mac destination address: broadcast

IP livello
ip source address
ip destination address: broadcast 255.255.255.255 , nella versione 2 invece utilizza un indirizzamento di tipo multicast , indirizzo di classe D 224.0.0.9 

UDP LIVELLO  
port number 520 che è per i messaggi rip

RIP MESSAGE
rotte: network ip address
hopes: metric,

Rip versione 1

Vediamo nel dettaglio com'è fatto un messaggio rip

Header

  • Campo comando: può essere per richieste o per le risposte. perché può anche chiedere ai vicini di mandargli qualcosa, per non aspettare 30 secondi o più quando si accende. La maggior parte dei messaggi in questo campo hanno come valore delle risposte.
  • Versione 1 o 2
  • 16 bit non utilizzati nella versione 1

Route Entry

Rip è stato fatto per essere usato anche su reti non ip quindi è più generica di quello che serve.
In un messaggio abbiamo al massimo 25 route.
Per ogni rotta abbiamo una entry e per ogni entry troviamo:
Sempre righe a 32 bit
riga 1 primi 16 bit: il tipo di indirizzo, il valore 2 identifica ip,
riga 1 secondi 16 bit: non utilizzati devono essere zero
riga 2 indirizzo ip della rete di destinazione che voglio annunziare
riga 3-4 inutilizzata
riga 5 usata per identificare la metrica, nel caso di rip il numero di hop per raggiungere la network di destinazione

Il messaggio totale header e route entry è massimo 512 bytes.

Trigger update

Quando un router modifica la sua tabella di routing, perché per esempio un'interfaccia è andata giù, oppure ho aggiunto una rotta statica ecc, manda un aggiornamento triggerato. Cioè invia le informazioni ai vicini non aspetta i 30 secondi, questo per velocizzare il propagarsi delle info. Non è necessario inviare tutta la tabella ma basta inviare solo la modifica. Per esempio se avessi 100 rotte nella tabella dovrei inviare 4 messaggi rip, invece se modifico una rotta basta un solo messaggio. Ogni 30 secondi invece devo inviare tutto.

RIP Timers

Dato che si usa udp non si sa se i messaggi vengono ricevuti correttamente. Oppure alcuni messaggi solamente vanno persi. Per questo esistono i timer.
Timer di aggiornamento scatta ogni 30 secondi per inviare le info di routing, in verità vengono mandati con una varianza tra 25,5 e 30 secondi, per evitare un eventuale intasamento di rete.
Invalid Timer non scatta finchè ricevo gli aggiornamenti. Se scatta questo timer segnerò quella rotta come non più valida, costo infinito. Scatta ogni 180 secondi. Aspetto ancora 60 secondi e dopo scatta il Flush Timer (Garbage-collection timer) elimino la rotta dalla mia tabella di routing e invio i vicini che non ho più la rotta.
I valori di default dei timer, sono quelli sotto che possono essere modificati. Ma sono valori studiati quindi non conviene modificarli.

r1(config-router)# timer basic 30 180 180 240

In ordine Update, Invalid, Holdtime, Flush.

Load Balancing

Tra due router possono esistere più percorso con la stessa metrica. In questo caso si può creare un load balancing della rete, inviando un pacchetto per ogni percorso. Per default rip utilizza al massimo 4 percorsi paralleli anche questo valore si può modificare.

r1(config-router)# maximum-paths 5

Per vedere i percorsi basta show ip route, se ci sono più percorsi per la stessa destinazione allora abbiamo un load balancing.

Vediamo alcune opzioni dello show ip route.
flag della rotta, R indica che la rotta è stata scoperta con rip, C direttamente connessa, S statica
ip destnazione / mask
[distanza amministrativa/distanza di protocollo]
via ip :
tempo indica quando tempo è passato dall'ultimo aggiornamento.
serial0/0/0 interfaccia dove la rotta è definita.

show ip protocols

si vedono le informazioni sui protocolli di routing configurate sul router, vediamone riga per riga
che protocollo si sta usando
aggiornamento sui timer
informazioni che si vedranno nei corsi successivi
che versioni posso utilizzare del rip in ricezione e trasmissioni. Per esempio sono rip1, ricevo anche rip versione 2 e poi utilizzo solo la parte della versione 1. Questo perché il 2 è un'estensione dell'1

Passive interface

Se in una interfaccia non ho nessun router non si devono spedire info di routing, per non sprecare banda e anche per problemi di sicurezza. Devo inviare agli altri router informazioni su quella interfaccia ma non il contrario.

r1(config-router)#passive-interface interface-type interface-number
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License