拓撲圖
實驗一:STP之PVST(基于每個vlan的生成樹)的配置
(1)将交換機之間的鍊路都設定為trunk,利用vtp在交換機上建立vlan2
s1(config)#interface range fastEthernet 0/1-3
s1(config-if-range)#switchport mode trunk
s2(config)#interface range fastEthernet 0/1-3
s2(config-if-range)#switchport mode trunk
s3(config)#interface range fastEthernet 0/1-2
s3(config-if-range)#switchport mode trunk
s3(config)#vtp domain xu.com
s3(config)#vtp mode server
s3(config)#vlan 2
(2)檢查預設的STP樹
s3#show spanning-tree
(3)控制s1為vlan1的根橋
s1(config)#spanning-tree vlan 1 priority 4096(如果要s1成為vlan2的根,則将vlan1改為vlan2)
(4)控制指定端口
s3(config)#spanning-tree vlan 1 root secondary (通過修改優先級為僅低于根優先級來控制指定端 口)
(5)修改端口優先級
s3(config)#interface fastEthernet 0/1
s3(config-if)#spanning-tree vlan 1 port-priority 112 (優先級是16的倍數,預設為128)
(6)關掉某個vlan(如vlan1)的STP
s1(config)#no spanning-tree vlan 1(若想開啟則把no去掉)
實驗二:STP之portfast,uplinkfast,backbonefast的配置
配置portfast
s1(config)#interface fastEthernet 0/4
s1(config-if)#switchport mode access
s1(config-if)#switchport access vlan 1
s1(config-if)#spanning-tree portfast (端口配置了portfast後會立即進入轉發狀态,不需要30秒的 等待時間)
配置uplinkfast
s3(config)#spanning-tree uplinkfast (快速收斂,隻需在接入層交換機上配置)
s3(config)#spanning-tree uplinkfast max-update-rate 200 (配置每秒鐘發送的多點傳播數為200個)
配置backbonefast
s3(config)#spanning-tree backbonefast (需要在每台交換機上都配置)
實驗三:STP之RSTP的配置
清除實驗二中的配置
s3(config)#no spanning-tree backbonefast (需要在每台交換機上都配置)
s3(config)#no spanning-tree uplinkfast
配置RSTP
s1(config)#spanning-tree mode rapid-pvst (需要在每台交換機上都配置)
配置鍊路類型配置(如果接口上配置了spanning則接口為邊緣接口,如果接口是全雙工則接口為點到點接口,如果接口為半雙工則接口為共享接口)
s3(config-if)#duplex full
s3(config-if)#spanning-tree link-type point-to-point
s1(config)#interface fastEthernet 0/3
s1(config-if)#duplex full
s1(config-if)#spanning-tree link-type point-to-point
檢視
s1h#show spanning-tree summary
實驗四:STP之MSTP的配置
s1(config)#spanning-tree mode mst (把以上生成樹模式改為MSTP,預設時是PVST+)
s1(config)#spanning-tree mst configuration(進入MSTP的配置模式)
s1(config-mst)#name cisco(命名MSTP的名字)
s1(config-mst)#revison 1 (配置MST的revision号,隻有名字和revision号相同的交換機才是同一個 MST區域)
s1(config-mst)#instance 1 vlan 1-2 (把vlan1和vlan2的生成樹映射到執行個體1)
s1(config-mst)#instance 2 vlan 3-4 (把vlan3和vlan4的生成樹映射到執行個體2,這裡一共有3個MST實 例。執行個體0是預設的執行個體,預設時所有的vlan都映射到該執行個體上)
s1(config-mst)#exit
s1(config)#spanning-tree mst 1 priority 8192 (配置s1為MST執行個體1的根橋)
s1(config)#spanning-tree mst 1 priority 12288
s2(config)#spanning-tree mode mst
s2(config)#spanning-tree mst configuration
s2(config-mst)#name cisco
s2(config-mst)#revison 1
s2(config-mst)#instance 1 vlan 1-2
s2(config-mst)#instance 2 vlan 3-4
s2(config-mst)#exit
s2(config)#spanning-tree mst 1 priority 12288
s2(config)#spanning-tree mst 1 priority 8192 (配置s2為MST執行個體1的根橋)
實驗五:STP之STP樹保護的配置
<a href="http://s3.51cto.com/wyfs02/M01/6B/97/wKiom1UxvCrQglKfAABdt8nhXMY218.jpg" target="_blank"></a>
(1)配置s1、s2、s3之間的鍊路為trunk
(2)配置s1為根橋
s1(config)#spanning-tree vlan 1 Priority 8192
(3)在s2的fa0/2上配置Guard Root
s2(config)#int fa0/2
s2(config-if)#spanning-tree guard root (此時便可以阻止s3成為根橋,如果将s3的優先級改為4096,則s2的fa0/2端口将阻塞,當威脅消除後,接口将自動恢複正常)
(4)配置BPDU Guard
s3(config)#interface fastEthernet 0/2
s3(config-if)#sWitchport mode access
s2(config-if)#no spanning-tree guard (去掉之前的配置)
s2(config-if)#switchport mode access
s2(config-if)#spanning-tree portfast
s2(config-if)#spanning-tree bpduguard enable(此時,交換機s2從fa0/2接口收到s3的BPDU,fa0/2被disable了,s2從fa0/2接口應該接入不會發送BPDU的計算機。要重新開啟這個端口,請先移除BPDU源,在該接口上執行shutdown和no shutdown)
s2(config)#errdisable recovery cause bpdugard(允許因為 bpdugard而關閉的接口在故障解除後自 動恢複)
s2(config)#errdisable recovery interval 60(配置自動恢複的時間為60秒)
(5)配置BPDU Filter
s2(config)#default intface fa0/2
s2(config-if)#spanning-tree bpdufilter enable
實驗六:STP之環路防護的配置
<a href="http://s3.51cto.com/wyfs02/M02/6B/93/wKioL1UxzXLBqAREAACRXaiwV2w666.jpg" target="_blank"></a>
(1)把每條鍊路都配置trunk,将s1配置為root
(2)配置Guard Loop
s3(config-if)#spanning-tree guard loop
(2)配置UDLD
s3(config-if)#no spanning-tree guard loop (清除上步的配置)
s2(config)#udld aggressive(配置UDLD為主動模式,這樣監測到單向鍊路故障後,将關閉接口。udldenable指令則是配置UDLD為普通模式)
s2(config)#int fa0/2
s2(config-is)#udld port aggressive
s3(config)#udld aggressive
s3(config)#udld message time 15(配置每15秒發送一次探測包,預設為15秒)
s3(config)#int fa0/2
s3(config-is)#udld port aggressive(隻有鍊路兩邊都配置了UDLD才能建立鄰居關系,UDLD發現原有的鄰居不在了才認為發生了單向故障,如果隻有一端配置了UDLD,是無法監測單向鍊路故障的。單向故障排除後,可以使用udld reset指令來使接口從新可用,也可以使用errdisable recovery case udld 全局指令讓接口自動重新可用)
s3#show udld neighbors
實驗七:STP之FlexLink的配置
<a href="http://s3.51cto.com/wyfs02/M01/6B/99/wKiom1Ux866BHd-sAACU6kmqVIc215.jpg" target="_blank"></a>
(1)把每條鍊路都配置trunk,并配置管理位址(供測試)
s1(config)#int vlan 1
s1(config-if)#ip add 192.168.1.1 255.255.255.0
s2(config)#int vlan 1
s2(config-if)#ip add 192.168.1.3 255.255.255.0
(2)配置FlexLink
s3(config)#int fa0/2
s3(config-if)#switchport backup interface fa0/1(配置fa0/1是fa0/2的備份接口)
s3(config-if)#switchport backup interface fa0/1 premmption mode forced(配置搶占模式。preemface mode 有forced、bandwith和off三種模式,off是預設模式,主用接口故障而備用接口激活後,在主用接口恢複正常後,如果preemption mode是off,則主用接口不會激活,如果preemption mode是forced,則主用接口會激活,如果preemption mode是bandwidth,則帶寬大的接口會激活 )
s3(config-if)#switchport backup interface fa0/1 premmption delay 30(配置搶占延時,機關是秒)
s3(config)#mac address-table move update transmit
s3(config)#int fa 0/2
s3(config-if)#switchport backup interface fa0/1 mmu primary vlan 1 (配置MAC address-table move update 當主用接口發生=故障後,備用接口啟用,這時交換機s1和s2的MAC位址表并沒有及時更新。配置MAC address-table move update 後,交換機s3将發送更新消息給s1和s2)
s1(config)#mac address-table move update receive
s2(config)#mac address-table move update receive(“MAC address-table move update”功能不僅需要在接入層配置,也需要在分布層交換機配置,s3發送,s1和s2接收)
(3)測試
從s3連續ping s1(192.168.1.1),然後在s2上關閉fa0/2,從s3上看到通信時連續的
s3#ping 192.168.1.1 repeat 1000000
STP總結:交換機通過stp協定有選擇性地阻斷了某些接口,進而建構無環路的轉發路徑,stp需要選擇根橋、根口、和指定端口,IEEE802.1d的stp需要較長時間才收斂,通常為30-50秒。
本文轉自shangshanyang51CTO部落格,原文連結:http://blog.51cto.com/qqran/1633927 ,如需轉載請自行聯系原作者