======STP RSTP======
STP,RSTP及MSTP一開始設計就是要**防止Level 2 switch網路造成迴圈(Loop)**和**實現鏈路冗餘(redundancy)**。
* 網路造成迴圈(Loop)當網路發生Loop時,透過STP演算法適當地將其它界面Broke掉。如下圖 會將左邊switch Fa0/2 Block
{{:network:link:防止loop_stp.png|}}
* 鏈路冗餘(redundancy)假若網路線路發生斷掉或其中網路介面壞掉等問題時,會自動再透過STP演算法將壞掉界面Broke,
原本被Broke 掉介面會再度被打開,這樣就有利於形成網路線路的備援機制。
下圖左邊switch Fa0/1壞掉(紅色),透過STP演算法會將左方switch fa0/2界面打開
{{:network:link:1實現鏈路冗餘_stp.png|}} {{:network:link:2實現鏈路冗餘_stp.png|}}
======STP======
STP(Spanning Tree Protocol)定義在IEEE 802.1D標準中,STP主要利用在Level 2 Bridge 或Switch 網路設備連接成網路時,避免網路迴圈(LOOP)的情形發生。STP是用STP演算法將網路迴圈結構以樹狀型式呈現,造成**兩個節點之間只有一個唯一路徑**,這唯一路徑就是轉送目的MAC address 的路徑。
===Bridge Port 狀態圖===
STP在進行演算法其間,會依照下圖的模式進行switch Port角色的選擇。
* Root Port(根阜)--->可以轉送使用者傳來的訊框(Frame)
* Designated Port(委任阜)--->可以轉送使用者傳來的訊框(Frame)
* Block Port--->無法轉送使用者傳來的訊框(Frame)
另外,STP演算法在運算其間,forward delay time(轉送時間)約為15秒。整個STP要達成收斂時間約為30~50秒;即是Listening ->(15秒)Learning-->(15秒)Forwarding。因此STP通常最快也需要30 秒才能收斂完成,對於網路服務無法忍受中斷30秒以上來說,STP收斂過慢
就是一個嚴重缺點。
{{:network:link:bridge_port_狀態圖.png|}}
(資料來源:[[http://mooc.nthu.edu.tw/sharecourse/course/view/courseList|MOOCS計算機網路概論]])
======RSTP======
為要解決STP收斂過慢問題,IEEE在2001年制定IEEE 802.1w的RSTP(Rapid Spanning Tree Protocol)標準,透過減少Bridge Port Status 轉換時間及新增Alternate port及Backup Port兩種角色來減少收斂時間。通常約1秒內即可收斂。
* Root Port(根阜) —>可以轉送使用者傳來的訊框(Frame)
* Designated Port(委任阜) —>可以轉送使用者傳來的訊框(Frame)
* Disabled Port —>無法轉送使用者傳來的訊框(Frame)
* Alternate port —>無法轉送使用者傳來的訊框(Frame)
* Backup Port —>無法轉送使用者傳來的訊框(Frame)
===Alternate port及Backup Port===
* Alternate port參考下圖所示,當Bridge B失效時,Bridge A的Alternate port就會接管該區域的委任阜角色
(Designated Port),以提供Root Bridge 另一個替代路徑。
{{:network:link:rstp_alternate_port.png|}}
(資料來源:[[http://routemyworld.com/2009/06/18/bcmsn-rapid-spanning-tree-protocol-802-1w/|routemyworld-Alternate Port vs Backup Port]])
* Backup Port參考下圖所示,當同一個Bridge B 的委任阜(Designated Port)失效時,備份阜(Backup Port)
就馬上接管原本Designated Port角色。備份阜的Port id 會比委任阜來的大
{{:network:link:rstp_backup_port.png|}}
(資料來源:[[http://routemyworld.com/2009/06/18/bcmsn-rapid-spanning-tree-protocol-802-1w/|routemyworld-Alternate Port vs Backup Port]])
===RSTP Port Status vs STP Port Status===
如下表所示,RSTP只有三種 Port Status,**disable,Learning及Forwarding**。傳統的STP(802.1d) port Status,disable,Blocking及Listening都統一由RSTP(802.1w)取代成disable。
(此表資料來源:[[http://baike.baidu.com/view/123854.htm|百度-RSTP]])
^STP Port Status^RSTP Port Status^Port 是否為Active狀態^Port 是否學習來源Mac Address^
|disable |disable |NO |NO |
|Blocking |disable |NO |NO |
|Listening |disable |YES |NO |
|Learning |Learning |YES |YES |
|Forwarding |Forwarding |YES |YES |
===RSTP Port Costs及Dell Force 10 相關指令===
(此表資料來源: Dell Taiwan Networking Partner Training Book-A)
^Link Speed^Default Cost STP^Default Cost RSTP^
|100M |19 |200000 |
|1G |4 |20000 |
|10G |2 |2000 |
|100M LAG |18 |180000 |
|1G LAG |3 |18000 |
|10G LAG |1 |1800 |
(此表資料來源: Dell Taiwan Networking Partner Training Book-A)
^Task^Command Syntax^Command Mode^
|Default Port Cost:如上表所示|**spanning-tree rstp cost** cost|INTERFACE|
|改變Port Cost Range:0-65535|::: | ::: |
|改變port介面的優先權,Default為128|**Spanning-tree rstp** **priority** priority-value|INTERFACE|
|改變Port Cost Range:0-25|:::|:::|
======MSTP======
當網路規模較很大需要Switch特別多時,使用RSTP還是會導致較長收斂時間,若是將網路架構用VLAN方式切割成多個VLAN,或需是可以解決
的方法,但實際上RSTP及STP無法跨越不同VLAN來運作,因為以RSTP及STP觀點來看,雖然切割成不同VLAN,不同Vlan之間還是共用一樣的Spanning Tree。
======參考資料======
* [[http://en.wikipedia.org/wiki/Rapid_Spanning_Tree_Protocol#Rapid_Spanning_Tree_Protocol|Spanning Tree Protocol]]
* [[http://xuzhiming302.blog.51cto.com/2377258/1241211|STP、RSTP、MSTP ]]
* [[http://hasanmansur.com/2012/10/15/cisco-and-force10-stp-spanning-tree-interoperability/|Cisco and Force10 – STP Spanning Tree Interoperability]]
* Dell Taiwan Networking Partner Training Book-A