STP(生成樹協議)、RSTP(快速生成樹協議)、MSTP(多生成樹協議),這三個協議都是二層交換網絡中為了防止環路和實現鏈路冗余而設計的,他們之間有什么區別與聯系呢?本文為您詳細介紹。
STP、RSTP、MSTP基本概念
1、STP(802.1d)
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)
RSTP的出現解決了延時的問題,它的收斂速度很快,當然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只使用了其中的兩個位,另外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是無法運行的。
STP、RSTP、MSTP的對比分析總結
1、STP不能使端口狀態快速遷移,即使是在點對點鏈路或邊緣端口,也必須等待2 倍的Forward delay 的時間延遲,端口才能遷移到轉發狀態。
2、RSTP可以快速收斂,但是和STP 一樣存在以下缺陷:局域網內所有網橋共享一棵生成樹,不能按VLAN 阻塞冗余鏈路,所有VLAN 的報文都沿着一棵生成樹進行轉發。
3、MSTP將環路網絡修剪成為一個無環的樹型網絡,避免報文在環路網絡中的增生和無限循環,同時還提供了數據轉發的多個冗余路徑,在數據轉發過程中實現VLAN 數據的負載均衡。
4、MSTP兼容STP 和RSTP,並且可以彌補STP 和RSTP的缺陷。它既可以快速收斂,也能使不同VLAN的流量沿各自的路徑分發,從而為冗余鏈路提供了更好的負載分擔機制