Cisco STP

From HackerNet
Revision as of 17:52, 24 January 2016 by Helikopter (talk | contribs)
Jump to: navigation, search

IEEE 802.1D. STP blockar portar på switchar så att det skapas en logisk trädtopologi och på så sätt hålls ethernetsegment loopfri. Enheter som använder STP skickar BPDU-meddelanden mellan varandra för att utbyta information. Den BPDU som är superior har företräde och övriga kan ignoreras. För att avgöra vilken som är bäst jämförs följande värden i skriven ordning: Root Bridge ID, Root Path Cost, Sender Bridge ID, Sender Port ID, Receiver Port ID (RPID följer ej med i BPDUn utan switchen själv vet ju detta). Det första värdet där det skiljer sig avgör och lägst vinner. BPDUer skickas ej på non-designated portar eftersom de inte är superior och därmed onödiga att skicka.

Varenda port på varenda switch i STP sparar superior BPDUn på det segmentet. Non-designated portar sparar BPDU från andra sidan och Designated portar sparar sin egen BPDU. Kommer det inte in någon BPDU innan MaxAge (minus MessageAge) har gått ut måste STP räkna om. Rotbryggan avgör dessa timers. Root Path Cost skickas med i varje Hello och genom att addera det med costen på interfacet där Hellon kom in vet switchen hur långt det är till rotbryggan.

Timers

Det finns flera olika typer av timers som skickas med i BPDUerna. MessageAge är en uppskattning på hur länge sedan BPDUn lämnade rotbryggan (med detta satt till 0). Övriga switchar brukar plussa på 1 innan de skickar det vidare. MaxAge, HelloTime och ForwardDelay är värden satta på rotbryggan, har andra switchar andra värden konfigurerade spelar det ingen roll för det är rotbryggan som bestämmer. Hellos skickas default var 2 sekund.

Process

STP-processen börjar med att alla switchar ser sig själva som root och skickar ut Hellos. Sedan görs följande val:

  1. Root Bridge: Lowest BID = Priority + MAC (Den ursprungliga STP-varianten hade ej med VLAN ID)
  2. Root Port: Av alla BPDUer på alla portar vilken är superior. Dvs bästa vägen bandbreddsmässigt till rotbryggan, en per nonroot switch.
  3. Designated Port: Superior BPDU på ett segment
  4. Non Designated: Övriga

På rotbryggan finns det ingen root port utan alla är designated. STP-processen slutar aldrig utan varje BDPU som kommer in ska jämföras.

Interface states

När nätverket konvergerar kan portar byta mellan Blocking och Forwarding men detta kan inte göras direkt utan att riskera tillfälliga loopar. Därför går interfacen igenom olika tillstånd. Längden på transitory statesen avgörs av ForwardDelay, 15 sek default.

State Forwards data frames Learns source MACs of received frames Stable
Blocking No No Stable
Listening No No Transitory
Learning No Yes Transitory
Forwarding Yes Yes Stable
Disabled No No Stable

Topology Change

Det finns en slags BPDU i 802.1D som heter TCN (Topology Change Notification), den används för att informera övriga om en förändring. Detta skickas om: det kommer in en TCN BPDU på en designated port, en port går från Learning till Forwarding eller Blocking, en switch blir rotbrygga. Kom ihåg att vanliga BPDUer som inte är superior ignoreras därför måste en TCN skickas till root (görs genom root port) som sedan kan skicka ut det till alla. En TCN skickas med varje Hello tills en TCA (Acknowledgement) fås som svar, sedan gör nästa switch samma sak till det når root. Rotbryggan sätter nu TC-biten i sina utgående BPDUer som instruerar övriga att förkorta Aging Time till ForwardDelay för att påskynda konvergens.


Konfiguration

Bridge ID med VLAN

spanning-tree extend system-id

Detta är default och går ej att ta bort på nyare switchar för det konsumerar fler MAC-adresser.

Cost
802.1D-2004, 1G = 20000

spanning-tree pathcost method long

802.1D-1998, 1G = 4

spanning-tree pathcost method short

Manipulera processen

Root Bridge:

spanning-tree priority
spanning-tree root primary

Root Port och Designated Port

cost
priority

Restart the protocol migration process

clear spanning-tree detected-protocols

PVST

Per VLAN Spanning Tree.

PVST-processen skiljer sig lite grann:

  • Root Bridge: Lowest BID (Priority + VLANID + MAC)

Tillägg

Det finns många tillägg till Spanning-tree.

PortFast

Anslutningar ut till servrar och andra end hosts.

BPDU Guard

Err disablea interface om det kommer en BPDU.

Root Guard

Skydda så att ingen annan än den enhet man valt ut från början kan bli root.

Loop Guard

Stoppar den vanliga STP-konvergeringen.

Others

Se MST.