Syftet med STP

Genom att implementera redundans i nätverket kan man eliminera enstaka felkällor och undvika att nätverkstjänster blir störda för användarna när L2-loopar uppstår. Detta avsnitt utforskar de faktorer som kan leda till L2-loopar. Syftet är att ge en kort översikt över hur Spanning Tree Protocol (STP) hanterar detta.

STP är ett nätverksprotokoll som utvecklats för att förhindra uppkomsten av loopar samtidigt som man tillåter användningen av redundanta vägar i nätverket. Ursprungligen standardiserades STP enligt IEEE 802.1D och har sedan dess använts för att skapa loopfria L2-topologier.

Observera att broadcast-meddelanden som skickas från PC1 kommer att blockeras vid trunk 2 för att förhindra uppkomsten av en L2-loop.

Problem med redundanta switch baserade länkar

I ett Ethernet-nätverk med flera vägar mellan två nätverksenheter och utan STP aktiverat på switchar kan leda till uppkomsten av en L2-loop. Denna loop kan skapa instabilitet i MAC-adresstabellen, överbelasta länkar och orsaka hög CPU-användning på switchar och slutenheter såsom datorer, vilket i sin tur kan göra nätverket oanvändbart.

Till skillnad från L3-protokoll som IPv4 och IPv6, saknar L2 Ethernet en inbyggd mekanism för att identifiera och hantera oändliga loopar i ett nätverk. I L3-protokoll begränsas antalet hopp som ett paket kan göra genom att minska TTL (Time to Live) för IPv4-paket och Hop Limit-fältet för IPv6-paket. När dessa fält når noll förkastas paketet av en router. På Ethernet-nivå har switchar ingen motsvarande mekanism för att hantera antalet gånger en ram återsänds. Därför utvecklades STP specifikt för att förhindra bildandet av L2-loopar i Ethernet-nätverk.

L2 loopar

Lager 2-loopar kan uppstå om STP inte är aktiverat, vilket kan leda till att broadcast-, multicast- och okända unicast-ramar (ramar utan destinationsadress) cirkulerar oändligt i nätverket. Detta kan snabbt orsaka nätverksavbrott, ibland på bara några sekunder. Till exempel när broadcast-ramar sprids, såsom en ARP-förfrågan, ut på alla switchportar förutom den ursprungliga ingångsporten för att säkerställa att alla enheter i samma broadcast-domän får ramen. Om det finns flera vägar för broadcast-ramar i ett switch-baserat nätverk kan en loop uppstå. När en loop inträffar kommer switchens MAC-adresstabell att uppleva ständiga förändringar med uppdateringar från broadcast-ramar, vilket resulterar i instabilitet i MAC-databasen. Detta kan i sin tur hindra switchen från att effektivt vidarebefordra ramar.

Förutom broadcast-ramar inkluderas även okända unicast-ramar som förstärker L2-loopar. Okända unicast-ramar uppstår när switchen inte har destinations-MAC-adressen i sin MAC-adresstabell och därför måste vidarebefordra ramen ut på alla portar förutom ingångsporten.

PC1 sänder ut ett broadcast-meddelande, vilket snabbt resulterar i en ökning av L2-loopar som fortgår tills nätverket slutar fungera.

Broadcast-storm

En broadcast-storm uppstår när en ovanligt hög mängd broadcast-ramar plötsligt översvämmar nätverket under en kort tidsperiod. Dessa stormar kan snabbt lamslå ett nätverk genom att överbelasta switchar och slutenheter anslutna till switcharna. Orsakerna till broadcast-stormar kan vara varierande, från hårdvarufel såsom defekta nätverkskort till L2-loopar i nätverket.

I ett nätverk är L2-broadcast meddelande vanligt förekommande, exempelvis ARP-förfrågningar. En Lager 2-loop kan ha omedelbara och allvarliga konsekvenser för nätverket. Dessutom behandlar switchar L2-multicast meddelande på samma sätt som broadcast-meddelande.

En server eller någon annan slutenhet som hamnar i en L2-loop blir otillgänglig för övriga nätverksenheter i nätverket. Dessutom, på grund av de kontinuerliga förändringarna i dess MAC-adresstabell, blir switchen osäker på vilken port som ska användas för att vidarebefordra unicast-ramar till slutenheterna. Denna ökande mängd av ramar som loopar runt i nätverket resulterar i en så kallad broadcast-storm. För att förebygga dessa problem i ett redundant nätverk måste STP-protokollet aktiveras på switcharna.

Spanning Tree algoritmen

Spanning Tree Protocol (STP) bygger på en algoritm som utvecklades av Radia Perlman under hennes tid på Digital Equipment Corporation. Algoritmen presenterades i en artikel från 1985 med titeln ”An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN”. Hennes algoritm syftar till att skapa en loopfri topologi genom att välja en enda rotbrygga (Root Bridge), medan alla andra switchar bestämmer en enkel, minimal kostnadsväg till denna rotbryggan. Hur fungerar denna teknik? Låt oss utforska de olika tekniska aspekterna av STP i ett scenario som inkluderar 8 L2-switchar.

Blocking state

STP (Spanning Tree Protocol) är utformat för att förhindra bildandet av loopar i nätverk genom att blockera vissa portar och placera dem i ”blocking-state”. Genom att dynamiskt justera portstatusen kan switchar som kör STP hantera fel och temporärt ändra deras portstatus för att möjliggöra trafik att passera genom de tidigare blockerade portarna när det är nödvändigt.

Root Bridge

I denna topologi har Switch S1 valts som rotbrygga och alla länkar har samma kostnad, vilket innebär samma bandbredd. Varje switch kommer att bestämma en enda, lägsta kostnadsväg från sig själv till rotbryggan.

Obs: STA algoritm och STP protokoll använder termen ”brygga” för switchar, eftersom switchar kallades för bryggor (bridge) i de tidiga dagarna av Ethernet.

Blockera redundanta vägar

STP säkerställer att det endast finns en logisk väg mellan alla destinationer i nätverket genom att medvetet blockera redundanta vägar som kan orsaka en loop. När en port är blockerad förhindras nätverkstrafik från att passera genom den porten.

Loop-fri topologi

När en port är blockerad, fungerar länken som den är ansluten till som en icke-vidarebefordrande länk mellan de två switcharna, vilket illustreras i figuren. Detta resulterar i en topologi där varje switch har en enda väg till rotbryggan.

Felaktiga länkar leder till omräkning

Även om de fysiska vägarna fortfarande finns för redundans, är de inaktiverade funktionsmässigt för att förhindra loopar. Vid behov, till exempel vid byte av nätverkskabel- eller switchfel, beräknas om STP vägarna och blockerar nödvändiga portar av för att aktivera den nya redundanta vägen. Omräkningar av STP kan också ske när en ny switch läggs till i nätverket. I figuren visas en felaktig länk mellan switcharna S2 och S4, vilket orsakar en omräkning av STP.

Notera att den tidigare redundanta länken mellan S4 och S5 nu blockeras av för att kompensera den felaktiga länken mellan S2 och S4. Trots detta finns det fortfarande endast en väg mellan varje switch och rotbryggan.