Il pro­to­col­lo spanning tree permette di prevenire le tempeste di tra­smis­sio­ni e le in­ter­ru­zio­ni di rete. Tuttavia, i lunghi tempi di inat­ti­vi­tà causati dalla ri­strut­tu­ra­zio­ne dell’omonimo albero di spanning rendono il metodo vul­ne­ra­bi­le agli attacchi.

Che cos’è il pro­to­col­lo spanning tree?

Il pro­to­col­lo spanning tree, in inglese “Spanning Tree Protocol (STP)”, è un metodo uti­liz­za­to nelle reti Ethernet per impedire la for­ma­zio­ne di frame duplicati. STP è stato inventato da Radia Perlman, un ingegnere di rete e svi­lup­pa­to­re di software sta­tu­ni­ten­se, e definito come standard 802.1D dall’Institute of Elec­tri­cal and Elec­tro­nics Engineers (IEEE) nel 1990. Il pro­to­col­lo spanning tree impedisce la creazione di due o più frame paralleli esa­mi­nan­do la rete alla ricerca di percorsi ri­don­dan­ti e di­sat­ti­van­do­li, pre­ve­nen­do così la for­ma­zio­ne di cicli. Questa procedura forma un albero con la rete fisica senza con­nes­sio­ni multiple tra la sorgente e la de­sti­na­zio­ne.

Perché il pro­to­col­lo spanning tree è im­por­tan­te?

Il pro­to­col­lo spanning tree previene la for­ma­zio­ne di cicli, che si verifica quando vi sono più percorsi di dati si­mul­ta­nei tra due switch di rete. Infatti, quando i pacchetti di dati possono essere in­stra­da­ti at­tra­ver­so più frame, l’intero sistema potrebbe com­por­tar­si in modo anomalo. Una possibile con­se­guen­za della presenza di due o più percorsi si­mul­ta­nei tra due punti è la co­sid­det­ta tempesta di tra­smis­sio­ne. In questo caso, tutto il traffico broadcast o multicast di una rete viene trasmesso e ac­cu­mu­la­to con­tem­po­ra­nea­men­te, il che può portare a un effetto valanga e, nel peggiore dei casi, pa­ra­liz­za­re l’intera co­mu­ni­ca­zio­ne. Grazie al pro­to­col­lo spanning tree questo viene evitato e la rete non subisce va­ria­zio­ni.

La tec­no­lo­gia ad albero di STP

Per evitare la du­pli­ca­zio­ne dei frame, il pro­to­col­lo spanning tree sta­bi­li­sce un albero di spanning, tra­du­ci­bi­le in italiano come “albero ri­co­pren­te”. In questo modo, la con­nes­sio­ne tra due punti della rete avviene at­tra­ver­so un solo percorso. Inoltre, con questo metodo si trova la migliore con­nes­sio­ne possibile. Tuttavia, se un frame è guasto o affetto da un errore, STP rior­ga­niz­za l’albero di spanning il più ra­pi­da­men­te possibile e apre un nuovo percorso di con­nes­sio­ne. In questo modo si riducono i ritardi e la con­nes­sio­ne tra i singoli switch rimane intatta.

Come funziona il pro­to­col­lo spanning tree?

Con il pro­to­col­lo spanning tree, la co­mu­ni­ca­zio­ne tra due switch o bridge all’interno di una rete avviene tramite Bridge Protocol Data Units (BPDU). Questi vengono scambiati a brevi in­ter­val­li e inviati come frame multicast all’indirizzo MAC 01-80-C2-00-00-10. Ogni due secondi, questa tra­smis­sio­ne viene ef­fet­tua­ta alla porta più vicina e più bassa. In questo modo, il pro­to­col­lo spanning tree non solo ottiene un riepilogo di tutti i percorsi di­spo­ni­bi­li, ma determina anche la con­nes­sio­ne più veloce. In questo caso, la velocità dei dati e le distanze tra due punti sono de­ter­mi­nan­ti. Una volta de­ter­mi­na­to il percorso migliore, le porte rimanenti vengono di­sat­ti­va­te fino a nuovo ordine.

Se una Bridge Protocol Data Unit non compare, lo switch di de­sti­na­zio­ne la in­ter­pre­ta come un guasto del col­le­ga­men­to e avvia un rio­rien­ta­men­to della topologia ad albero. In caso di di­spo­si­zio­ni com­pli­ca­te, il processo di ricalcolo può ri­chie­de­re un minimo di 30 secondi. Una volta rio­rien­ta­to l’albero di spanning, la tra­smis­sio­ne può avvenire tramite una con­nes­sio­ne di riserva pre­ce­den­te­men­te di­sa­bi­li­ta­ta. In questo modo si ga­ran­ti­sce la massima velocità di tra­smis­sio­ne dei dati no­no­stan­te il guasto.

Il pro­to­col­lo rapid spanning tree

Purtroppo, il processo di ricalcolo e i tempi di inat­ti­vi­tà più lunghi di STP rendono la rete vul­ne­ra­bi­le agli attacchi. Se un frame errato non venisse bloccato dal sistema, la rior­ga­niz­za­zio­ne innescata potrebbe mettere fuori uso la rete per almeno 30 secondi. Per questo motivo, nel 2003 è stato svi­lup­pa­to il pro­to­col­lo rapid spanning tree (IEEE 802.1w), il quale è com­pa­ti­bi­le con le versioni pre­ce­den­ti e ga­ran­ti­sce il man­te­ni­men­to della struttura attuale della rete fino alla so­sti­tu­zio­ne del col­le­ga­men­to guasto. Solo a questo punto l’albero viene ri­strut­tu­ra­to. Questo passaggio richiede circa un secondo.

Stati delle porte nel pro­to­col­lo spanning tree

Il pro­to­col­lo spanning tree distingue un totale di cinque stati di porta. In questo modo si evita la for­ma­zio­ne di un ciclo e si ga­ran­ti­sce che non vengano perse in­for­ma­zio­ni sulla topologia dell’albero. I singoli stati sono elencati di seguito:

  • For­war­ding (inoltro): le porte elencate come for­war­ding possono inoltrare frame, ap­pren­de­re indirizzi e ricevere, elaborare e tra­smet­te­re Bridge Protocol Data Units.
  • Blocking (blocco): le porte impostate come blocking scartano i frame e non imparano gli indirizzi ma ricevono ed elaborano Bridge Protocol Data Units.
  • Listening (ascolto): le porte in listening scartano i frame, non imparano gli indirizzi ma ricevono, elaborano e tra­smet­to­no Bridge Protocol Data Units.
  • Learning (ap­pren­di­men­to): le porte elencate come learning scartano i frame ma ap­pren­do­no gli indirizzi e ricevono, elaborano e tra­smet­to­no Bridge Protocol Data Units.
  • Disabled (di­sa­bi­li­ta­te): le porte impostate su disabled scartano i frame, non ap­pren­do­no gli indirizzi e non possono ricevere o elaborare Bridge Protocol Data Units.

Se il pro­to­col­lo spanning tree è abilitato, ogni porta passa in sequenza at­tra­ver­so gli stati di blocco, ascolto, ap­pren­di­men­to e inoltro.

Root bridge nel pro­to­col­lo spanning tree

Il primo passo di STP è la selezione di un root bridge (ovvero della radice dell’albero ri­co­pren­te), che funge da punto di partenza per l’albero di spanning. I singoli percorsi vengono poi espansi dall’algoritmo attivando o di­sat­ti­van­do le porte. Le im­po­sta­zio­ni e i timer possono essere mo­di­fi­ca­ti solo at­tra­ver­so il root bridge.

  • Hello Timer: questo timer definisce l’in­ter­val­lo di tempo tra due Bridge Protocol Data Units, di solito due secondi.
  • Ritardo di inoltro: il secondo timer determina il tempo di per­ma­nen­za negli stati di ascolto e ap­pren­di­men­to, so­li­ta­men­te di 30 secondi.
  • Età massima: il terzo timer è chiamato Età massima (“Maximum Age” in inglese) e specifica il tempo per cui una porta può con­ser­va­re le in­for­ma­zio­ni di con­fi­gu­ra­zio­ne. Il valore pre­de­fi­ni­to è di 20 secondi.

Vantaggi e svantaggi del pro­to­col­lo spanning tree

Il vantaggio prin­ci­pa­le del pro­to­col­lo spanning tree è quello di evitare con­ge­stio­ni o in­ter­fe­ren­ze all’interno della rete esclu­den­do i cicli ed evitando i percorsi paralleli. Anche l’iden­ti­fi­ca­zio­ne della con­nes­sio­ne più breve ef­fet­tua­ta da STP presenta un vantaggio per la rete. Uno svan­tag­gio di questo pro­to­col­lo è invece il lungo tempo di con­ver­gen­za che gioca a favore degli attacchi alla rete. Tuttavia, l’in­tro­du­zio­ne del Rapid Spanning Tree Protocol e del Multiple Spanning Tree Protocol, che con­sen­to­no di creare diversi alberi di spanning in­di­pen­den­ti all’interno di una LAN, riduce al minimo questi tempi di inat­ti­vi­tà pro­teg­gen­do la rete da possibili attacchi.

Consiglio

Per saperne di più sui diversi tipi di rete e sugli standard di pro­to­col­lo, con­sul­ta­te la nostra Digital Guide:

Vai al menu prin­ci­pa­le