Syftet med STP


Som tidigare avsnitt visade är redundans en viktig del i designen av Layer 2-nätverk. Genom att ha flera alternativa vägar mellan switchar kan nätverket fortsätta fungera även vid fel, vilket eliminerar single points of failure.

Men denna design innebär en utmaning. Om flera vägar är aktiva samtidigt kan det uppstå Layer 2-loopar, vilket leder till allvarliga störningar i nätverket. För att hantera detta utvecklades Spanning Tree Protocol (STP).

Vad STP gör

Syftet med STP är att skapa en balans mellan redundans och stabilitet. Protokollet:

  • förhindrar att loopar uppstår i Layer 2-topologin
  • behåller redundanta länkar som backup
  • säkerställer att endast en aktiv väg används mellan switchar

STP uppnår detta genom att analysera nätverkets topologi och bygga en loopfri logisk struktur, kallad ett spanning tree. I denna struktur väljs vissa länkar som aktiva (forwarding), medan andra sätts i ett blockerat läge (blocking)

De blockerade länkarna är inte bortkopplade — de finns kvar och kan snabbt aktiveras om den aktiva vägen skulle sluta fungera.

Standard och betydelse

Den ursprungliga STP-standarden definieras i IEEE 802.1D. Trots att modernare varianter (som RSTP och MSTP) idag används i praktiken, bygger de fortfarande på samma grundidé:

att skapa en loopfri Layer 2-topologi utan att offra redundans.

I exemplet nedan blockeras vägen via Trunk 2.

Observera att broadcast-trafik som skickas från PC1 inte kommer att vidarebefordras över denna länk. Istället stoppas trafiken vid Trunk 2, vilket förhindrar att ramar cirkulerar i nätverket och därmed eliminerar risken för en Layer 2-loop.

Problem med redundanta switch baserade länkar

När redundans införs i ett Ethernet-nätverk skapas flera möjliga vägar mellan nätverksenheter. Om Spanning Tree Protocol (STP) inte används kan detta leda till att Layer 2-loopar uppstår. Dessa loopar kan snabbt orsaka allvarliga problem i nätverket.

I värsta fall kan hela nätverket bli obrukbart inom några sekunder.

Varför uppstår problemet?

För att förstå varför dessa problem uppstår behöver vi titta på en grundläggande skillnad mellan Layer 2 och Layer 3.

I Layer 3-protokoll finns en inbyggd mekanism som begränsar hur länge ett paket kan existera i nätverket. I IPv4 används TTL (Time To Live) och i IPv6 används Hop Limit. Varje gång ett paket passerar en router minskas detta värde. När det når 0 förkastas paketet, vilket förhindrar att det cirkulerar oändligt.

Ethernet fungerar annorlunda. Ethernet-ramar saknar ett motsvarande fält som TTL eller Hop Limit. Det innebär att det inte finns någon automatisk mekanism som stoppar en ram som hamnar i en loop.

L2 loopar och deras konsekvenser

Om STP inte är aktiverat i ett nätverk med redundanta länkar kan vissa typer av trafik börja cirkulera okontrollerat. Detta gäller särskilt:

  • broadcast
  • okända unicast-ramar
  • Instabil MAC-adresstabell
  • Broadcast Storm

Eftersom Ethernet saknar en mekanism som stoppar ramar som fastnar i en loop kan problemet eskalera mycket snabbt. Ett typiskt scenario illustreras med följande exempel:

PC1 skickar ett broadcast-meddelande. I ett nätverk med loopar kan denna trafik börja cirkulera mellan switchar och snabbt växa till en situation där nätverket överbelastas.

Broadcast-trafik

När en enhet skickar ett broadcast-meddelande (t.ex. en ARP-förfrågan) vidarebefordrar switchen ramen ut på alla portar i samma VLAN, förutom ingångsporten. I en loopad topologi kan denna ram återkomma till samma switch, dupliceras vid varje varv och skickas vidare igen.

Detta leder snabbt till en exponentiell ökning av trafik.

Okända unicast-ramar

Okända unicast-ramar uppstår när switchen saknar information om destinations-MAC-adressen i sin MAC-tabell. I detta fall floodas ramen ut på alla portar (förutom ingångsporten), precis som broadcast. I en loop kan även dessa ramar cirkulera och bidra till trafikökningen.

Instabil MAC-adresstabell

När samma MAC-adress plötsligt dyker upp från olika portar uppstår ett fenomen som kallas MAC address flapping (instabil MAC-adressinlärning). Switchens MAC-adresstabell uppdateras då kontinuerligt, vilket gör att switchen inte längre kan avgöra vilken port som ska användas för att nå en viss enhet.

Detta gör att switchen får svårt att vidarebefordra ramar korrekt.

Broadcast-storm

En broadcast storm uppstår när en mycket stor mängd broadcast-ramar snabbt sprids i nätverket. Dock är broadcast-trafik normalt i Ethernet-nätverk. Exempelvis använder ARP broadcast för att hitta MAC-adresser. Men i en Layer 2-loop kan broadcast-ramar dupliceras, cirkulera kontinuerligt och spridas okontrollerat.

Resultatet blir en kraftig ökning av trafik i nätverket. Switchar och slutenheter måste då behandla en mycket stor mängd ramar, vilket leder till:

  • hög CPU-belastning
  • överbelastade länkar
  • försämrad nätverksprestanda

I många fall blir nätverket praktiskt taget otillgängligt.

Eftersom switchar dessutom behandlar multicast-ramar på liknande sätt som broadcast-ramar, kan även multicast-trafik bidra till att förstärka problemet.

STP som lösning

För att förhindra dessa problem används Spanning Tree Protocol (STP). STP analyserar nätverkstopologin mellan switchar och väljer automatiskt vilka länkar som ska vara aktiva och vilka som ska blockeras. Detta skapar en loopfri logisk topologi, samtidigt som redundanta länkar finns kvar som reserv.

Om en aktiv länk skulle sluta fungera kan STP aktivera en tidigare blockerad länk, vilket gör att trafiken snabbt kan ta en alternativ väg genom nätverket. På detta sätt kombinerar STP två viktiga egenskaper i ett Layer 2-nätverk: redundans och loopfri drift.