STP(四)
CST:
CST的協議號為IEEE 802.1D,如果交換機運行在CST,則整個交換機只進行一次STP的計算,無論交換機上有多少個VLAN,所有VLAN的流量都會走相同的路徑。
RSTP:
RSTP的協議號是IEEE 802.1W,稱為快速生成樹,在CST中,端口有五種狀態,分別是disabled、blocking、listening、learning、forwarding,在disabled、blocking、listening這三種狀態中都不發送數據,在RSTP中,將這三種狀態歸為一種,稱為discarding狀態,因此RSTP中端口的狀態有3種,分別是discarding、learning、forwarding。
如果交換機運行的是CST,當根交換機失效后,其他的交換機需要等待Max-age(20s)的時間才能夠知道根交換機出現了問題(BPDU是每隔hello間隔發送一次,即2s,如果在max-age時間內都收不到根交換機發送的配置BPDU,則認為根交換機出現了問題,重新選舉根交換機)。然后會啟用處于blocking狀態的端口,過濾到forwarding狀態,需要經歷兩個forward delay的時間,即從listening到learning、從learning到forwarding,而forward delay的時間是15s,因此從blocking狀態到forwarding狀態需要經歷30s,因此當CST網絡出現故障時,啟用blocking狀態的端口需要至少經過50s才能切換到forwarding狀態,收斂速度比較慢。而RSTP只需要3個Hello時間,即6秒收不到根交換機BPDU,便認為根交換機已經失去連接,就立刻啟用discarding狀態的接口,RSTP在根交換機失效后,并不會進行完整的STP計算,會在該啟用備用端口時立即啟用,因此網絡收斂速度快,RSTP會在低于1秒的時間內恢復網絡。
PVST+:
PVST+是思科自己的協議,在之前有一個PVST,但由于PVST只能支持ISL Trunk,所以思科為了擴展PVST支持IEEE 802.1Q,誕生了PVST+,在多數三層交換機,如3550、3560及以上型號,默認運行的STP版本為PVST+。PVST+是基于CST(IEEE 802.1D)運行的,但運行了PVST+的交換機并不像CST那樣只進行一次STP計算,PVST+會在每個VLAN進行一次STP計算,也就是會根據VLAN數的不同,計算STP的次數也不同,并且每個VLAN的STP信息是單獨保存的。
PVST+ 只支持128個實例(instance),如果交換機上配置的VLAN數超過128個, 那 么128個以外的VLAN將沒有STP在運行,所以此時剩余的VLAN將出現環路。可以單獨在特定的VLAN上打開或關閉STP功能,即使一臺沒有運行STP的交換機或沒有運行STP的VLAN,在收到BPDU時,也會轉發的,所以在對單個VLAN進行開啟或關閉STP時,請確保交換機能夠計算出無環的網絡,否則網絡將出現預想不到的故障。在PVST+可以配置全局關閉某VLAN的STP,如關閉VLAN 10 的STP no spanning-tree vlan 10,恢復使用命令spanning-tree vlan 10
Extended System ID:
默認交換機的Bridge-ID 的優先級為32768,當開啟Extended System ID功能后,每個VLAN的默認的Bridge-ID 優先級就不再是32768了,需要再加上VLAN號碼,如VLAN 1的Bridge-ID優先級就是32768+1=32769,VLAN 8的Bridge-ID優先級就是32768+8=32776。如果網絡中即有開啟了Extended System ID功能的交換機,也有關閉的,那么關閉Extended System ID功能的交換機有更大的機會成為根交換機,因為自己默認的優先級就比其它開啟了Extended System ID功能的優先級更高(數字更小)。
RPVST+:
Rapid PVST+就是具有RSTP特性的PVST+,是像RSTP一樣基于IEEE 802.1w運行
的,其它所有運行與規則與PVST+完全相同
MSTP:
MSTP的協議號為IEEE 802.1s,因為在交換機存在多個VLAN時,CST會將所有流量放在單條路徑中傳輸,而PVST+則可以通過為每個VLAN運行一個STP實 例, 從而將不同VLAN的流量放在不同的路徑上傳輸。但正是由于PVST+為每個VLAN都運行了一個STP實例,可能會多達128個STP實例,所以PVST+會極其消耗系統資源。比如交換機上有20個VLAN,而PVST+會維護20個STP實例,但是這20個VLAN的流量也許只需要被分擔到幾條不同路徑上,那就只需要維護幾個STP實例即可,而并不需要維護20個STP實例。MSTP正因為這個原因,將需要進行相同STP計算的VLAN映射到同一個STP實例中,即無論有多少個VLAN,只要實際需要多少條不同的路徑,就根據需要的路徑維護相同的STP實例數,從而大大節省系統資源。
MSTP是在RSTP的基礎之上運行的,所以具有快速收斂的功能,但不能不運行RSTP時運行MSTP,RSTP是隨著開啟MSTP時自動開啟的。MSTP最多支持65個STP實例,但是映射到實例的VLAN數量是沒有限制的。默認所有VLAN都在實例0。
MSTP還需要通過分區域管理,即region,交換機要在同一region進行相同的STP計算,必須region name和revision number一致,最重要的是VLAN和實例的映射也要一致,否則STP計算出來的網絡,將不是你想要的網絡,一個VLAN只能被映射到一個實例,一個網絡可以有多個MSTP revision,便于各自獨立。
轉載于:https://blog.51cto.com/hezhang/1376325
總結
- 上一篇: Linux上DNS实现工具之bind详叙
- 下一篇: 大批量插入数据如何优化