STP/RSTP/MSTP的分析與對比

一. 生成樹相關的幾個概念STP/RSTP/MSTP
STP:IEEE Std 802.1D-1998定義,不能快速遷移。即使是在點對點鏈路或邊緣端口,也必須等待2倍的forward delay的時間延遲,網絡才能收斂。

RSTP:IEEE Std 802.1w定義,可以快速收斂,卻存在以下缺陷:
局域網內所有網橋共享一棵生成樹,不能按vlan阻塞冗餘鏈路。

MSTP可以彌補這樣缺陷,它允許不同vlan的流量沿各自的路徑分發,從而爲冗餘鏈路提供了更好的
負載分擔機制。

MSTP:Multiple Spanning Tree Protocol多生成樹協議
在規範IEEE Std 802.1s中第13節描述。MSTP算法通過應用MSTP、STP或RSTP的橋任意互連的橋接網絡,爲分配給任一個特定VLAN的幀提供了簡單而完備的連通性。MSTP允許不同VLAN的數據從各自的路徑分發。各條路徑建立在由LAN和MST橋組成的MST域中的各個獨立的多生成樹實例的基礎上。

二.生成樹相關的負載分擔STP/RSTP/MSTP

1STPSpanning-Tree Protocol

STP協議生來就是爲了冗餘而存在的,單純樹型的網絡無法提供足夠的可靠性,由此我們引入了額外的鏈路,這纔出現了環路這樣的問題。但單純是標準的802.1D STP協議並不能實現真正的冗餘與負載分擔。

STP爲IEEE 802.1D標準,它內部只有一棵STP tree,因此必然有一條鏈路要被blocking,不會轉發數據,只有另外一條鏈路出現問題時,這條被blocking的鏈路纔會接替之前鏈路所承擔的職責,做數據的轉發。無論怎樣,總會有一條鏈路處於不被使用的狀態,冗餘是有了,但是負載分擔是不可想象的。

cisco對STP做了改進,它使得每個VLAN都運行一棵stp tree,這樣第一條鏈路可以爲vlan 1 2 3服務,對vlan 4 5 6 blocking,第二條鏈路可以爲vlan 4 5 6 forwarding,對vlan 1 2 3關閉,無形中實現了鏈路的冗餘,負載分擔。這種技術被稱之爲PVST+

隨着網絡的發展,人們發現傳統的STP協議無法滿足主備快速切換的需求,因爲STP協議將端口定義了5種狀態,分別爲:blocking、 listening、 learning、 forwarding、 disabling,想要從blocking切換至forwarding狀態,必需要經過50秒的週期,這50秒我們只能被動地去等待。20秒的blocking狀態下,如果沒有檢測到鄰居發來的BPDU包,則進入listening,這時要做的是選舉Root Bridge、Designate Port、Root Port,15秒後,進入learning,learning狀態下可以學習MAC地址,爲最後的forwarding做準備,同樣是15秒,最後到達轉發狀態。這樣的延時在現代網絡環境下是讓人極爲難以忍受的。

2、RSTP(802.1w的出現解決了延時的問題,它的收斂速度很快,當然CISCO也針對這種技術推出了自已的RPVST+技術。RSTP在STP基礎上額外定義了兩種port role(注意這裏的概念,端口角色),分別是alternate與backup。另外重新規定了port state(端口狀態),分別爲discarding、Learning、Forwarding.

STP的一大失敗之處在於混淆了port role與port state兩種概念,在RSTP上,這樣的問題不再存在了,port state與port role無關了。alternate port責任是爲另一臺交換機上的鏈路作備份,而backup port是爲本交換機上的端口作備。

RSTP最重要的變化在於對BPDU中type字段的利用上,之前STP只使用了其中的兩個位

7

6

5

4

3

2

1

0

TC

Proposal

Port-

role

learning

forwarding

Agreement

TCA

另外6個位中實現了很多的功能,包括不再需要去等待50秒的時間完成主備切換,直接利用proposal與agreement協商即可,這樣大大縮短了收斂時間。

RSTP還定義了兩個新的概念:edge port與link type,如果是edge port,表明下面接的只能是主機,環路的存在是不可能的,所以我們可以直接將其從discarding切換到forwarding狀態,類似於STP中的port fast技術。而link type定義了這條鏈路是point-to-point的還是shared。如果有pt-pt環境下,我們就可以做快速的切換了

3、MSTP(802.1s)

STP和RSTP都採用了一棵STP tree,負載分擔不可實現,而CISCO的PVST+與RPVST+採用了每個VLAN一棵生成樹,雖然實現了負載分擔,但是會佔用非常多的CPU時間。這也正是MSTP(802.1s)產生的原因

MSTP可以將多個VLAN的生成樹映射爲一個實例,即vlan map to a instance,我們不需要那麼多的生成樹,只需要按照冗餘鏈路的條數來得出需要幾棵生成樹。

如果只有兩條鏈路,並且有1-1000個VLAN,我們可以將1-500定義爲instance 1,將501-1000定義到instance 2。只生成兩棵樹1和2,同樣實現了冗餘與負載分擔。

MSTP是基於RSTP的,沒有RSTP,MSTP是無法運行的。

另:

PVST+ 與 RPVST+ 模式下:交換機可支持128個STP instance

MSTP模式下:交換機可支持65個MST instance,當然每個實例中的VLAN數目是無限的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章