Difference between revisions of "STP Toolkit Cisco IOS"

From Teknologisk videncenter
Jump to: navigation, search
m (Uplinkfast)
m (Root Guard)
 
(13 intermediate revisions by 2 users not shown)
Line 12: Line 12:
 
</source>
 
</source>
 
Eksempel på konfigurering af portfast
 
Eksempel på konfigurering af portfast
=== BPDU guard ===
+
== BPDU guard ==
 
Hvis BPDU guard er konfiguret på en PortFast enablet port, vil porten straks lukke ned hvis der kommer en BPDU ind.
 
Hvis BPDU guard er konfiguret på en PortFast enablet port, vil porten straks lukke ned hvis der kommer en BPDU ind.
 
<source lang="cli">
 
<source lang="cli">
Line 37: Line 37:
 
</source>
 
</source>
 
UplinkFast enables globalt på switchen.
 
UplinkFast enables globalt på switchen.
=== BackboneFast ===
+
== BackboneFast ==
 
BackboneFast er en Cisco udvidelse til Spanning-Tree som anvendes i forbindelse med ''UplinkFast'' og nedsætter nedetiden på en switch der modtager BPDU'er fra en anden Switch som har mistet forbindelsen til Root-Switchen og selv tror den er Root-Switch. Se eksemplet herunder
 
BackboneFast er en Cisco udvidelse til Spanning-Tree som anvendes i forbindelse med ''UplinkFast'' og nedsætter nedetiden på en switch der modtager BPDU'er fra en anden Switch som har mistet forbindelsen til Root-Switchen og selv tror den er Root-Switch. Se eksemplet herunder
 
{|
 
{|
Line 43: Line 43:
 
|valign="top"|'''1'''
 
|valign="top"|'''1'''
 
|valign="top"|
 
|valign="top"|
 +
 
=== Normal drift ===
 
=== Normal drift ===
 
Netværket er stabilt og fungerer som tiltænkt. Switch-C er i Blocking state, fordi Switch-B har en bedre Bridge-ID end Switch-C. Switch-B er Secondary Root-Bridge.
 
Netværket er stabilt og fungerer som tiltænkt. Switch-C er i Blocking state, fordi Switch-B har en bedre Bridge-ID end Switch-C. Switch-B er Secondary Root-Bridge.
Line 60: Line 61:
 
|valign="top"|
 
|valign="top"|
 
=== Normal Spanning-Tree uden BackboneFast ===
 
=== Normal Spanning-Tree uden BackboneFast ===
Under normal Spanning-Tree vil Switch-C ignorere BPDU-pakkerne fra Switch-C indtil '''Max-Age''' timeren udløber. (normalt 20 sekunder) Hvis den stadig modtager BPDU-pakker fra Switch-B vil Switch-C begynde at sende BPDU-pakkerne fra Switch-A ud på Fa0/2 til Switch-C. Fa0/2 vil herefter skifte til '''Listening''' tilstand (15 sekunder) og '''Learning''' tilstand (15 sekunder).
+
Under normal Spanning-Tree vil Switch-C ignorere BPDU-pakkerne fra Switch-B indtil '''Max-Age''' timeren udløber. (normalt 20 sekunder) Hvis den stadig modtager BPDU-pakker fra Switch-B vil Switch-C begynde at sende BPDU-pakkerne fra Switch-A ud på Fa0/2 til Switch-C. Fa0/2 vil herefter skifte til '''Listening''' tilstand (15 sekunder) og '''Learning''' tilstand (15 sekunder).
  
 
I alt tager det Max-Age + Listening + Learning sekunder før netværket er i drift igen. 20 + 15 + 15 = 50 sekunder.  
 
I alt tager det Max-Age + Listening + Learning sekunder før netværket er i drift igen. 20 + 15 + 15 = 50 sekunder.  
Line 68: Line 69:
 
|valign="top"|'''4'''
 
|valign="top"|'''4'''
 
|valign="top"|
 
|valign="top"|
 +
 
=== Spanning-Tree med BackboneFast ===
 
=== Spanning-Tree med BackboneFast ===
 
Når '''backboneFast''' er enablet på alle switche, vil Switch-C reagere anderledes end beskrevet ovenfor når den modtager BPDU pakker fra Switch B.
 
Når '''backboneFast''' er enablet på alle switche, vil Switch-C reagere anderledes end beskrevet ovenfor når den modtager BPDU pakker fra Switch B.
Line 84: Line 86:
  
 
== Loop Guard ==
 
== Loop Guard ==
 +
Loop-Guard forhindrer at en '''Alternate-Port''' eller '''Root-Port''' bliver en '''Designated-Port''' hvis BPDU'erne udebliver. Dette kan forhindre en Loop - og dermed en '''Broadcast-storm''' hvis der skulle opstå en '''unidirectional''' link. Se også UDLD herunder.
 +
<source lang="cli">
 +
Dist-SW1#<input>configure terminal</input>
 +
Enter configuration commands, one per line.  End with CNTL/Z.
 +
Dist-SW1(config)#<input>interface gigabitEthernet 0/1</input>
 +
Dist-SW1(config-if)#<input>spanning-tree guard loop</input>
 +
</source>
 
== Root Guard ==
 
== Root Guard ==
== BPDU Guard ==
+
Root-Guard kan anvendes til at afvise en Switch som har en bedre '''Bridge-ID''' end den tiltænkte Root-Switch. Root-Guard tvinger en port til at være en '''Designated-port'''. Altså en port der vender væk fra ''' Root-Brigden. Hvis der kommer en Switch med en bedre Bridge-ID end den ''rigtige'' Root-Switch vil porten lukke ned, og derved stoppe BPDU pakkerne fra den ''falske'' Root-Switch.
 +
<source lang="cli">
 +
Dist-SW1#<input>configure terminal</input>
 +
Enter configuration commands, one per line.  End with CNTL/Z.
 +
Dist-SW1(config)#<input>interface gigabitEthernet 0/1</input>
 +
Dist-SW1(config-if)#<input>spanning-tree guard root</input>
 +
</source>
 +
{|
 +
|-
 +
[[Image:Root guard.png|300px|]]
 +
|-
 +
|}
 +
 
 
== UDLD - Unidirectional Link Detection ==
 
== UDLD - Unidirectional Link Detection ==
 
UDLD overvåger den fysiske konfiguration af portene og opdager hvis en port har en en-vejs forbindelse - Unidirectional - og lukker porten ned.
 
UDLD overvåger den fysiske konfiguration af portene og opdager hvis en port har en en-vejs forbindelse - Unidirectional - og lukker porten ned.
  
 +
Global enabling af UDLD
 +
<source lang="cli">
 +
Dist-SW1#<input>configure terminal</input>
 +
Enter configuration commands, one per line.  End with CNTL/Z.
 +
Dist-SW1(config)#<input>udld enable</input>
 +
</source>
 +
 +
Enabling af UDLD på interface
 +
<source lang="cli">
 +
Dist-SW1#<input>configure terminal</input>
 +
Enter configuration commands, one per line.  End with CNTL/Z.
 +
Dist-SW1(config)#<input>interface gigabitEthernet 0/1</input>
 +
Dist-SW1(config-if)#<input>udld enable</input>
 +
</source>
  
  
  
  
{{#css:
+
{{Source cli}}
   
+
[[Category:Cisco]][[Category:CCDP]][[Category:CCNP]][[Category:IOS]][[Category:Network]][[Category:Spanning Tree]]
    pre {  font-family: Lucida Console; font-weight: bold; font-size: 14px; color: #00FF00; background: black; margin: 10px 50px; width: 800px; line-height: 200%; overflow: auto;}
 
}}
 
[[Category:Cisco]][[Category:CCDP]][[Category:CCNP]][[Category:IOS]][[Category:Network]]
 

Latest revision as of 08:14, 3 February 2015

Der er adskillige tilføjelser til Ciscos implementering af STP heriblandt

PortFast

PortFast får et Lag 2 LAN interface til at skifte til forwarding tilstand straks. Dette foregår ved at springe over listening og learning og gå direkte til forwarding tilstand.

Anvend kun portfast på porten når den er tilsluttet en end-unit. (PC,Printer...)

AccessSW1#<input>configure terminal</input>
Enter configuration commands, one per line.  End with CNTL/Z.
AccessSW1(config)#<input>int range fastEthernet 0/1 - 24</input>
AccessSW1(config-if-range)#<input>spanning-tree portfast</input>

Eksempel på konfigurering af portfast

BPDU guard

Hvis BPDU guard er konfiguret på en PortFast enablet port, vil porten straks lukke ned hvis der kommer en BPDU ind.

AccessSW1#<input>configure terminal</input>
Enter configuration commands, one per line.  End with CNTL/Z.
AccessSW1(config)#<input>int range fastEthernet 0/1 - 24</input>
AccessSW1(config-if-range)#<input>spanning-tree portfast</input>
AccessSW1(config-if-range)#<input>spanning-tree bpduguard enable</input>

Uplinkfast

Giver tre til fem sekunders konvergens tid - det vil sige før linken er i drift igen - efter en link fejl. Dette foregår ved at springe over listening og learning og gå direkte til forwarding tilstand.

Anvend kun uplinkfast på links mellem switche som ikke er root-switchen.

Uplinkfast kan ligeledes load-balancing mellem redundante lag 2 links ved at anvende uplink groups.

En uplink group er en gruppe af porte der kører spanning tree i PVST - Per-Vlan Spanning Tree - hvor kun en port er i forwarding og resten er blocked. Load-Balancing kan opnås ved at have forskellige porte i forwarding hvor de andre er blocked

DistSW1#<input>configure terminal</input>
Enter configuration commands, one per line.  End with CNTL/Z.
DistSW1(config)#<input>spanning-tree uplinkfast</input>

UplinkFast enables globalt på switchen.

BackboneFast

BackboneFast er en Cisco udvidelse til Spanning-Tree som anvendes i forbindelse med UplinkFast og nedsætter nedetiden på en switch der modtager BPDU'er fra en anden Switch som har mistet forbindelsen til Root-Switchen og selv tror den er Root-Switch. Se eksemplet herunder

1

Normal drift

Netværket er stabilt og fungerer som tiltænkt. Switch-C er i Blocking state, fordi Switch-B har en bedre Bridge-ID end Switch-C. Switch-B er Secondary Root-Bridge.

1: Netværket under normal drift.
2

Linkfejl

Der sker en linkfejl mellem Switch-A og Switch-B. Switch-B har nu mistet sin Root-port og tror nu at den er Root-Bridge, og begynder nu at sende sine egne BPDU pakker ud af Fa0/2.

Switch-C modtager nu BPDU-pakker fra Switch-A og Switch-B. Pakkerne fra Switch-B har en dårligere Bridge-ID end dem fra Switch-A.

BPDU-pakker sendes og modtages også igennem blockede porte.

2: Linkfejl mellem Switch-A og Switch-B.
3

Normal Spanning-Tree uden BackboneFast

Under normal Spanning-Tree vil Switch-C ignorere BPDU-pakkerne fra Switch-B indtil Max-Age timeren udløber. (normalt 20 sekunder) Hvis den stadig modtager BPDU-pakker fra Switch-B vil Switch-C begynde at sende BPDU-pakkerne fra Switch-A ud på Fa0/2 til Switch-C. Fa0/2 vil herefter skifte til Listening tilstand (15 sekunder) og Learning tilstand (15 sekunder).

I alt tager det Max-Age + Listening + Learning sekunder før netværket er i drift igen. 20 + 15 + 15 = 50 sekunder.

2: Linkfejl mellem Switch-A og Switch-B.
4

Spanning-Tree med BackboneFast

Når backboneFast er enablet på alle switche, vil Switch-C reagere anderledes end beskrevet ovenfor når den modtager BPDU pakker fra Switch B.

Når Switch-C modtager en BPDU-pakke fra Switch-B tyder det på at Switch-B har tabt kontakten med Root-Brigden(Switch-A). Det kunne også betyde at Switch-C måske har mistet kontakten til Root-Brigden(Switch-A). Derfor vil Switch-C udsende RLQ (Root-Link Query) ud på alle porte som ikke er Designated-Ports(Upstream). I eksemplet udsender Switch-C RLQ pakker på port Fa0/1 til Switch-A.

Switch-A - som er Root-Bridge og har enablet BackboneFast - sender Switch-A en RLQ response pakke tilbage til Switch-C. Denne pakke fortæller Switch-C at den stadig har kontakt med Root-Bridgen. Derfor behøver Switch-C ikke vente i Max-Age (20 sekunder) men kun at sende fa0/2 igennem Listening (15 sekunder) og Learning (15 sekunder) tilstandende. Nedetiden er hermed nedbragt fra 50 sekunder til 30 sekunder.

2: Linkfejl mellem Switch-A og Switch-B.
DistSW1#<input>configure terminal</input>
Enter configuration commands, one per line.  End with CNTL/Z.
DistSW1(config)#<input>spanning-tree uplinkfast</input>
DistSW1(config)#<input>spanning-tree backbonefast</input>

Loop Guard

Loop-Guard forhindrer at en Alternate-Port eller Root-Port bliver en Designated-Port hvis BPDU'erne udebliver. Dette kan forhindre en Loop - og dermed en Broadcast-storm hvis der skulle opstå en unidirectional link. Se også UDLD herunder.

Dist-SW1#<input>configure terminal</input>
Enter configuration commands, one per line.  End with CNTL/Z.
Dist-SW1(config)#<input>interface gigabitEthernet 0/1</input>
Dist-SW1(config-if)#<input>spanning-tree guard loop</input>

Root Guard

Root-Guard kan anvendes til at afvise en Switch som har en bedre Bridge-ID end den tiltænkte Root-Switch. Root-Guard tvinger en port til at være en Designated-port. Altså en port der vender væk fra Root-Brigden. Hvis der kommer en Switch med en bedre Bridge-ID end den rigtige Root-Switch vil porten lukke ned, og derved stoppe BPDU pakkerne fra den falske Root-Switch.

Dist-SW1#<input>configure terminal</input>
Enter configuration commands, one per line.  End with CNTL/Z.
Dist-SW1(config)#<input>interface gigabitEthernet 0/1</input>
Dist-SW1(config-if)#<input>spanning-tree guard root</input>
Root guard.png

UDLD - Unidirectional Link Detection

UDLD overvåger den fysiske konfiguration af portene og opdager hvis en port har en en-vejs forbindelse - Unidirectional - og lukker porten ned.

Global enabling af UDLD

Dist-SW1#<input>configure terminal</input>
Enter configuration commands, one per line.  End with CNTL/Z.
Dist-SW1(config)#<input>udld enable</input>

Enabling af UDLD på interface

Dist-SW1#<input>configure terminal</input>
Enter configuration commands, one per line.  End with CNTL/Z.
Dist-SW1(config)#<input>interface gigabitEthernet 0/1</input>
Dist-SW1(config-if)#<input>udld enable</input>