Teoria Terzo Modulo Cccna Lezione 5

Spanning Tree protocoll

Definizioni

In questo seminario parleremo solo di lan ethernet.
Segmento è quando per comunicare tra due stazioni non c'erano dispositivi intelligenti (che analizzano il livello 2) come gli switch, ma solo cavo (tipo coassiale) o un hub

I bridge connettono due segmenti, quelli che vediamo sono trasparenti e quindi i terminali non devono conoscere niente di questi bridge. In precedenza vi erano quelli non trasparenti di cui il terminale doveva conoscere l'indirizzo mac del bridge. Dovevano manipolare la frame considerando tutti i bridge della lan.
I frame trasparenti mandano le cose in sequenza.
Filtering database evitano di mandare frame a porte che non sono destinatarie. All'inizio le manda su tutte le porte poi migliora. Sono tabelle che si formano in maniera dinamica osservendo le frame che entrano nel bridge. Si possono mettere anche le entry statiche. Le entry dinamiche hanno un tempo di scadenza che di default è di 300 secondo ma può essere modficato.

Un bridge e uno switch sono la stessa cosa. Il termine più antico è bridge poi commercialmente è entrano anche lo switch. All'inizio il bridge era solo fra due segmenti.

Il trasparente bridge non può funzionare se tra due segmenti esiste più di un percorso. A causa del meccanismo che impara in base alle frame che entrano. Una magliatura (che produce un loop) di livello due è pericolosa perchè al contrario del livello 3 dove c'è il ttl e quindi il danno viene limitato, non ha fine e quindi cresce continuamente.

Scopo

Il protocollo spanning tree assicura che non ci siano magliature e che quindi il cammino sia un albero.
La funzione secondaria è avvertire i bridge quando sta cambiando l'architettura della rete e quindi loro diminuiscano il tempo di scadenza a un valore minore del default che è 300 come abbiamo detto prima.

Frame

Il protocollo manda delle frame ethernet dei bridge protocoll data unit su alcune porte e ascoltano da quelle di altre porte. Se vede su una porta una data unit che ha mandato su una sua porta sceglierà che una delle due deve essere bloccato in base ad alcune regole. Se il collegamento funzionante viene interrotto le data unit non arriveranno più a quello inattivo che verrà riattivato.

Porte

Dopo un po' si otterrà una configurazione stabile tra i bridge che porta all'elezione di un root bridge. Sui bridge non root ci sarà una porta che conduce al root bridge tramite il cammino migliore che sarà la root port.
Fra tutte le porte affacciate a un segmento viene individuata la porta migliore che conduce al root bridge che sarà la designated port.
Solo le porte che sono root e designated sono messe in stato di forwarding mentre le altre vengono messe in state di lock.

Il bridge che ha il bridge identifier più basso è quello che diventa il root bridge.

Per scegliere i cammini verso il root bridge si sceglie per prima la distanza e dopo l'identificatore di porta.

Stati delle porte

  • disable: porta inattiva, se non è attaccata a niente, o perchè l'administrator l'ha proprio spenta. La porta non è interessata al protocollo.
  • blocking: il bridge ritiene che non sia ne root ne designeted. Non trasmette nessuna bpdu ma ascolta in caso arrivi qualcosa che la faccia uscire dallo stato di blocking.
  • listening e learning sono due stati temporanei in cui la porta deve passare per evitare problemi prima di giungere ad essere forwarding. Quindi in questi due stati non fa passare traffico. In entrambi degli stati temporanei ci rimane per qualche secondo
  • listening trasmette e riceve bpdu ma non tramette e riceve traffico. Dopo passa in
  • learning ancora non trasmette dati ma comincia a popolare il filtering database. Dopo passa in
  • forwarding funziona sul serio

Parametri associati ai bridge

  • bridge identifier a 64 bit, è univoco. I 48 bit di destra sono uno dei mac address del bridge stesso, che sono univoci. I 16 bit a sinistra (quindi quelli più significativi) sono configurabili dall'amministratore. Se l'amministratore non sceglie allora ci sarà il valore 2^15
  • port identifier 16 bit: la configurazione di un numero di 8 bit più il numero della porta negli altri 8 bit
  • path cost 32 bit, un valore che assomiglia di più a una distanza, per far preferire una parta a un altra. Ogni porta di un bridge a un costo che dipende dalla velocità della porta, 1 GBit , 100 Mbit , 10 Mbit . Anche questo è variabile.

Variando i valori di questi tre si varia la topologia delle rete. Quelli sotto sono i timer che variandoli si varia il tempo di convergenza.

  • forward delay (root bridge)
  • maximun age (root bridge)
  • hello time (root bridge)

Variando male questi parametri si rischia di rallentare molto la convergenza o danneggiare il processo di creazione della rete. Usare le tabelline dei manuali o lasciarli di default. I timer in una rete grande sono diversi da quelli di una rete piccola.

Messaggi

  • Configuration BPDU : trasmesse solo sulle porte designate, learning e listening.
  • Topology Change Notification: trasmessa solo sulle porte root, se cambia qualcosa sui bridge foglia e lo devono dire a quelli a monte dell'albero
  • Sono tutti messaggi ethernet, quindi con source e mac address. Il source è quello della porta da cui viene la destinazione è un indirizzo di gruppo multicast su cui stanno in ascolto qualunque bridge con un spanning tree attivo. Su un bridge che non ha il protocollo spanning tree attivo il messaggio viene propagato su tutte le sue porte.

Contenuto della configuration BPDU

Viene creata dal bridge e dice ai vicini cosa pensa dello stato della rete

  • root identifier: l'identificativo del root bridge vero o presunto
  • root path cost: somma dei path cost per arrivare al root bridge. La root bridgequando manda un bpdu dice che il costo è zero, ogni router intermediario aggiunge il suo costo per raggiungerlo.
  • bridge identifier: identificativo del bridge che trasmette il la bpdu
  • port identifier: la porta attraverso cui il bridge ha trasmetto la bpdu
  • message age: età delle informazioni vedremo meglio più avanti.
  • timer vari: valori dei timer visti sopra. Il root brige mette i valori del proprio apparato, i bridge non root ripetono a valle i valori che hanno ricevuto dallo switch a monte. Quindi si ripetono i valori del root bridge.
  • flag vari necessari quando si effettua una riconfigurazione

Formato Config BPDU

Ci sono vari formati per l'ethernet. Per il livello 2 visto per i dati se ne utilizza un tipo le bpdu ne utilizzano un tipo un po' diverso.
Formato:

  • tipo di frame ethernet
  • versione del protocollo che è la 0
  • configurazione che è 0
  • flag che abbiamo visto prima
  • root identifier
  • bridge identifier
  • Poi ci sono tutti i valori visti prima su cui lo switch ci mette del suo: root path , cost , bridge, id, port, message age,
  • poi ci sono gli altri invece su cui vengono ricopiati i timer ricevuti

La Configuration BPDU

Chi ritiene di essere root bridge trasmette una configuration BPDU su tutte le porte ritenute designated.
Tutti i bridge esaminano le porte in ingresso. Anche il root se riceve un identifier più basso di lui smette di essere root.
Se entra un bpdu che indica un root identifier che ritiene che sia uguale o minore a quello che ha già lui deve verificare. Quindi memorizza il nuovo root identifier, il root path cost + il path cost della porta ricevente , il message age e i valori dei tre timer
Ogni hello time immettono sul nuovo bpdu il contenuto calcolato. Incrementa il valore di message age di un secondo o maggiore.
Se dopo un hello time non riceve più bpdu tiene conto che l'età delle informazioni che ha sta aumentando. Continua ad inviare a valle le sue info ma aumenta il message age.
Se non arrivano più info e si supera il max age allora presuppone che il root bridge sia morto.

I valori dei timer sono espressi tutti in 256 esimi di secondo.

Scelta del ruolo delle porte.

La root bridge viene selezionata in questo modo
Per ogni bpdu che entra in una porta costruiamo il vettore delle distanza concatenando questi valori

  • root identifier
  • root path cost
  • path cost della porta ricevente
  • bridge identifier
  • port identifier
  • port identifier della porta ricevente

Questo diventa un numerone si sceglie per ogni porta.
Per scegliere la porta di root si prende quella che ha il numerone più grosso.
Le porte non root sono quelle designated.

La procedura di topology change

Le pdu dello spanning tre versione 0 sono due , abbiamo parlato della configuration spanning tree. Ma c'è anche la bpdu di topology change.
Quest'ultima dice che l'ageing time del filtering database deve essere ridotto al forwarding delay.
Lo scopo appena detto si avvale di entrambi i tipi di bpdu da foglia verso radice si usa la TCN BPDU (Topology Change Notification)
Viene trasmessa dalla valle fino al bridge a monte finche riceve una topology chang acknolowdgment , dopo capisce che il messaggio dal bridge a monte è stato ricevuto e smette di inviare.
Nella direzione inversa da radice a foglie viene unsato il topology change delle configuration bpdu.

Timer

Tutti i bridge arrivano con i valori dei timer di default scelti dall'itripoli. C'è la slides con le tabelle.
Un diametro di una rete è il numero di segmenti per andare da una parte all'altra della rete. Dipende ovviamente dalla conformazione fisica della rete. Più grande è il diametro più saranno alti i timer e quindi ci vorrà più tempo per convergere.
Il tempo di convergenza è il doppio del forward delay più il max age.

Formule

Con questi valori non si corrono rischi, forse abbassando i valori si può ancora ottenere una rete stabile.

  • forward-delay = 2 + D
  • max-age = parte-intera(( 3* (D+2)/ 2) da controllare erroreeeee
  • tempo convergenza = (2 * forward-delay ) + max-age

Una rete di diametro 10 con hello time = 1 ci vogliono 42 secondi che è molto tempo per convergere la rete. E con valori di default anche 90 secondi 2 * forward-delay + max age + 2* forward-delay.

Questo perchè prima, nel 1990, i segmenti non comprendevono i pc erano molto rari i cambi di stato della porta. Ogni volta adesso che un pc si accedende deve essere rilanciato il sistema per il cambio della topologia.
Nel 98 è stato possibile disabilitare il change detection su specifiche porte.
Dopo è stato possibile definire le porte come edge port, una edge port passa immediatamente da disable a forwarding. Ma appena riceve una bpdu la porta cessa di essere edge port. Le porte dei pc non ricevono bpdu e quindi sono edge port.

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License