RSTP
1.RSTP概述:(Rapid Spanning Tree Protocol,RSTP)快速生成樹,RSTP(IEEE 802.1w)是爲了彌補STP(IEEE 802.1d)的缺陷而制定的.
在網絡拓撲中使用IEEE 802.1生成樹協議來保證網絡中沒有環路,但是當網絡拓撲發生變化時,通常至少需要30秒才能恢復網絡,30秒的故障恢復時間是在當前的網絡中是不能忍受的。爲了解決這個問題,有了RSTP,RSTP採用了STP的基本概念,加快了收斂速度。
1)RSTP端口角色
RSTP協議中除規定了根端口、制定端口和阻塞端口外,又規定了兩種端口類型,即替代端口和備用端口.
替代端口:能夠到達根網橋的替代路徑,在非根網橋上,當根端口出現故障,替代端口將成爲根端口。
備用端口:能夠提供網段冗餘連接的備份端口,當指定端口出現故障,替代端口就會成爲指定端口。
2)RSTP端口狀態
RSTP協議只定義了三種端口狀態:丟棄、學習、轉發
丟棄:此狀態合併了IEEE 802.1d的禁用、阻塞和偵聽狀態,端口如果處於此狀態將丟棄入站的幀,並且不學習MAC地址。
學習:與IEEE 802.1d的學習狀態相同,學習MAC地址但是丟棄入站的幀。
轉發:發送和接收數據幀,並且能夠學習MAC地址。
3)RSTP的收斂
在RSTP的網絡中,每臺交換機主動維護網絡拓撲,即所有的交換機所有端口都定期(hello時間)發送BPDU報文(STP網絡中交換機只是中繼根網橋的BPDU報文,所以STP網絡中只有根網橋的BPDU報文)。入如果交換機連續3次沒有收到鄰接交換機的BPDU報文,則認爲鄰接交換機出現故障,默認的hello時間是2秒,所以RSTP發現故障的時間是6秒,STP的最大壽命是20秒。
爲了實現端口的快速轉發,在RSTP中定義了兩種新的變量
邊緣端口:邊緣端口即在網絡邊緣,這種端口不會形成環路,所以這種端口可以立即進入轉發狀態。和STP中的速端口基本相同,當端口收到BPDU報文的時候,它就會失去邊緣端口的狀態,成爲正常的生成樹端口。命令如下:
Switch(config-if)#spanning-tree portfast
鏈路類型:Cisco交換機默認情況下,如果端口工作在全雙工模式下,則認爲其是點到點的鏈路(point-to-point);如果端口工作在半雙工模式下則不是點到點的鏈路,而是認爲其工作在共享介質上。
點到點的鏈路通過和鄰接交換機交換BPDU快速確定端口狀態。例如:一臺交換機提議將自身的端口變爲指定的端口,如果對端的交換機同意,則它會是同相同的消息回覆。當提議和回覆消息完成後,就完成了指定端口的選擇,而不需要經過STP的計時器的等待時間。但是有時候,由於某種原因導致交換機端口工作在半雙工模式,這時可以通過命令將端口變爲點到點的鏈路,命令如下:
Switch(config-if)#spanning-tree link-type point-to-point
RSTP通過對STP的改進,大幅度加快了收斂的速度。
2.快速PVST+
RSTP和STP一樣都是一種底層技術,在啓用MST或者RPVST+(快速PVST+)後纔會使用RSTP。Cisco交換機默認運行PVST+,使用傳統的8021.d生成樹。如果需要將PVST+模式更改爲RPVST+,可以通過如下命令實現:
Switch(config)#spanning-tree mode rapid-pvst
RPVST+和PVST+相同,爲每一個VLAN生成一個單獨的RSTP實例,可以通過show spanning-tree 查看RPVST+的狀態。
如上圖所示:中斷SW1和SW2直連的鏈路,如果是PVST+,則SW2將中斷50秒左右。如果使用RPVST+,則SW2向SW3發送BPDU報文,認爲自己的根網橋,在點到點的鏈路上通過和鄰接交換機交換BPDU快速確定端口狀態。當SW2收到次BPDU報文並同意後,F0/23端口成爲新的根端口,SW3的F0/24成爲指定端口,整個過程持續時間很短。
MST(Multiple Spanning Tree Protocol,MST)多生成樹
1.MST概述
無論是PVST+還是RPVST+,都爲每一個VLAN生成一個生成樹,如果VLAN數量過多的話,將佔用太多的交換機資源。
IEEE 802.1s定義的多生成樹 (MST或者MSTP)就是用於解決STP實例過多的問題。
MST是對RSTP的擴展,所以MST有RSTP的快速特性,並且MST可以將一個或者多個VLAN映射到一個STP實例中,從而減少STP實例的數量。
2.MST配置
(1)啓用MST模式
Switch(config)#spanning-tree mode mst
(2)進入MST配置模式,在交換機啓動了MST模式後,要對MST配置需要進入到MST配置模式,命令如下:
Switch(config)#spanning-tree mst configuration
(3)配置MST區域名
Switch(config-mst)#name name
其中,name爲配置MST的區域名,最多32個字符,一般網絡中只是用一個MST區域名.
(4)配置區域配置修訂號
Switch(config-mst)#revision version
其中,version的範圍是0-65535,在提交新的MST配置時,配置修訂號不會自動增加,另外,交換機的區域配置必須相同(區域名/區域修訂號等).
(5)將VLAN映射到MST實例
Switch(config-mst)#instance instance-id vlan vlan-list
(6)設置MST實例的優先級
Switch(config)#spanning-tree mst instance-id priority bridge-priority
或者
Switch(config)#spanning-tree mst instance-id root { primary | secondary }
(7)查看mst生成樹協議
Switch#show spanning-tree
3.MST配置實例
如圖:交換機之間都是100Mb/s鏈路,交換機爲默認配置,要求實現VLAN的負載均衡。
配置如下:
(1)配置交換機之間的鏈路爲trunk
SW1(config-if-range)#switchport mode trunk
SW2、SW3上一樣配置
(2)配置鏈路的負載均衡
在配置負載均衡前,首先要在交換機上配置MST
###############
由於IOS不支持MST,截不了圖,手寫命令吧
SW1(config)#spanning-tree mode mst
SW1(config)#spanning-tree mst configuration
SW1(config-mst)#name aaa
SW1(config-mst)#revision 10
SW1(config-mst)#instance 1 vlan 1-2
SW1(config-mst)#instance 2 vlan 3-4
SW2/SW3上做一樣的MST配置
然後配置負載均衡
SW1(config)#spanning-tree mst 1 priority 4096
SW2(config)#spanning-tree mst 2 priority 4096
然後使用show spanning-tree mst instance-id 查看生成樹狀態